修改KTV房间编码模式

修改点唱房编码模式
优化展示麦位布局
优化Mqtt,变更成单例模式
This commit is contained in:
2025-08-30 19:02:09 +08:00
parent 04da1917d5
commit fe4ff5655a
18 changed files with 2950 additions and 1612 deletions

View File

@@ -41,9 +41,9 @@
<!-- android:exported="true" --> <!-- android:exported="true" -->
<!-- tools:ignore="Instantiatable" /> --> <!-- tools:ignore="Instantiatable" /> -->
<!-- <service android:name=".service.EMqttService" />--> <!-- <service android:name=".service.EMqttService" />-->
<service <!-- <service-->
android:name=".service.MyMqttService" <!-- android:name=".service.MyMqttService"-->
android:foregroundServiceType="dataSync" /> <!-- android:foregroundServiceType="dataSync" />-->
</application> </application>
</manifest> </manifest>

View File

@@ -109,7 +109,14 @@ public class CommonAppContext extends MultiDexApplication {
AgoraManager.getInstance(this).init(currentEnvironment.getSwSdkAppId()); AgoraManager.getInstance(this).init(currentEnvironment.getSwSdkAppId());
MessageListenerSingleton.getInstance(); MessageListenerSingleton.getInstance();
CrashReport.initCrashReport(this, "ac3ed4d89f", true);/*bugly初始化*/ CrashReport.initCrashReport(this, "ac3ed4d89f", true);/*bugly初始化*/
ServiceUtils.startService(MyMqttService.class);/*Mqtt初始化*/ // ServiceUtils.startService(MyMqttService.class);/*Mqtt初始化*/
// 初始化MQTT服务
// 获取单例实例
MyMqttService mqttService = MyMqttService.getInstance(this);
// 启动服务
mqttService.startService();
// 每次启动应用时重置状态 // 每次启动应用时重置状态
SpUtil.getInstance().setBooleanValue("youth_model_shown", false); SpUtil.getInstance().setBooleanValue("youth_model_shown", false);
} }

View File

@@ -1,27 +1,20 @@
package com.xscm.moduleutil.service; package com.xscm.moduleutil.service;
import android.app.Notification; import android.app.Notification;
import android.app.NotificationChannel; import android.app.NotificationChannel;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.app.Service;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.pm.ServiceInfo;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.HandlerThread; import android.os.HandlerThread;
import android.os.IBinder;
import android.os.Looper; import android.os.Looper;
import android.util.Log; import android.util.Log;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ServiceUtils;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import com.xscm.moduleutil.R; import com.xscm.moduleutil.R;
import com.xscm.moduleutil.event.RoomGiftRunable; import com.xscm.moduleutil.event.RoomGiftRunable;
@@ -35,35 +28,32 @@ import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.jetbrains.annotations.Nullable;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class MyMqttService implements MyEmqttConnectListener, MyEmqttMesgListener, MyEmqttSubscribeListener {
public class MyMqttService extends Service implements MyEmqttConnectListener, MyEmqttMesgListener, MyEmqttSubscribeListener {
private final static String TAG = "lxj"; private final static String TAG = "lxj";
private static int qos = 2; private static int qos = 2;
// private static String HOST ="tcp://81.70.45.221";//正式
private static String HOST = "tcp://1.13.181.248";//测试 private static String HOST = "tcp://1.13.181.248";//测试
// private static String HOST = "tcp://47.120.21.132";//测试
private static MqttAndroidClient mqttAndroidClient; private static MqttAndroidClient mqttAndroidClient;
private MqttConnectOptions mMqttConnectOptions; private MqttConnectOptions mMqttConnectOptions;
private static boolean b = true; private static boolean b = true;
// 使用单例模式
private static MyMqttService instance;
private static MyEmqttConnectListener mMyEmqttConnectListener; // 使用线程安全的集合存储监听器
private static MyEmqttMesgListener mMyEmqttMesgListener; private static final CopyOnWriteArrayList<MyEmqttMesgListener> messageListeners = new CopyOnWriteArrayList<>();
private static MyEmqttSubscribeListener mMyEmqttSubscribeListener; private static final CopyOnWriteArrayList<MyEmqttConnectListener> connectListeners = new CopyOnWriteArrayList<>();
private static final CopyOnWriteArrayList<MyEmqttSubscribeListener> subscribeListeners = new CopyOnWriteArrayList<>();
private static final String TOPIC_BOSS = "qx_room_topic"; private static final String TOPIC_BOSS = "qx_room_topic";
private static final String TOPIC_XLH = "qx_xunlehui"; private static final String TOPIC_XLH = "qx_xunlehui";
private static final int NOTIFICATION_ID = 1;
// 添加后台线程处理 // 添加后台线程处理
private HandlerThread mqttHandlerThread; private HandlerThread mqttHandlerThread;
@@ -74,27 +64,31 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
private static final int MAX_RETRY_ATTEMPTS = 5; private static final int MAX_RETRY_ATTEMPTS = 5;
private int retryCount = 0; private int retryCount = 0;
@Override // 服务状态
public int onStartCommand(Intent intent, int flags, int startId) { private static boolean isServiceRunning = false;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { // API 31+
// 设置前台服务类型为 "connectedDevice" 或其他合适类型 private Context mContext;
setForegroundServiceBehavior(ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST);
// 私有构造函数
private MyMqttService(Context context) {
this.mContext = context.getApplicationContext();
initService();
}
public static MyMqttService getInstance(Context context) {
if (instance == null) {
synchronized (MyMqttService.class) {
if (instance == null) {
instance = new MyMqttService(context);
}
}
} }
// ⚠️ 必须在这个方法开始就调用 startForeground() return instance;
Notification notification = createNotification();
startForeground(NOTIFICATION_ID, notification);
return START_STICKY;
} }
private void setForegroundServiceBehavior(int foregroundServiceTypeManifest) { private void initService() {
// 空实现,仅用于兼容性处理 isServiceRunning = true;
}
@Override
public void onCreate() {
super.onCreate();
// 创建专用的HandlerThread处理MQTT操作 // 创建专用的HandlerThread处理MQTT操作
mqttHandlerThread = new HandlerThread("MqttServiceThread"); mqttHandlerThread = new HandlerThread("MqttServiceThread");
mqttHandlerThread.start(); mqttHandlerThread.start();
@@ -105,77 +99,127 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
try { try {
init(); init();
} catch (MqttException e) { } catch (MqttException e) {
throw new RuntimeException(e); Log.e(TAG, "MQTT初始化异常", e);
} }
} }
private Notification createNotification() {
// 创建你的前台通知
// Notification.Builder builder = null;
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// builder = new Notification.Builder(this, "channel_id")
// .setContentTitle("MQTT Service")
// .setSmallIcon(R.mipmap.default_avatar);
// }
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// NotificationChannel channel = new NotificationChannel(
// "channel_id", "MQTT Channel",
// NotificationManager.IMPORTANCE_LOW);
// NotificationManager manager = getSystemService(NotificationManager.class);
// manager.createNotificationChannel(channel);
// }
// return builder.build();
// 创建你的前台通知
Notification.Builder builder = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
builder = new Notification.Builder(this, "mqtt_channel")
.setContentTitle("消息服务")
.setContentText("正在接收实时消息")
.setSmallIcon(R.mipmap.default_avatar);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(
"mqtt_channel", "MQTT Channel",
NotificationManager.IMPORTANCE_LOW);
NotificationManager manager = getSystemService(NotificationManager.class);
if (manager != null) {
manager.createNotificationChannel(channel);
}
}
return builder != null ? builder.build() : null;
}
/** /**
* 开启服务 * 启动MQTT连接
*/ */
public static void startService(Context mContext) { public void startService() {
b = true; b = true;
boolean serviceRunning = ServiceUtils.isServiceRunning(MyMqttService.class.getCanonicalName()); if (!isServiceRunning) {
if (!serviceRunning) { initService();
mContext.startService(new Intent(mContext, MyMqttService.class));
} }
} }
public static void stopService(Context context) { /**
* 停止MQTT服务
*/
public void stopService() {
b = false; b = false;
boolean serviceRunning = ServiceUtils.isServiceRunning(MyMqttService.class.getCanonicalName()); isServiceRunning = false;
if (serviceRunning) { cleanup();
try { }
context.stopService(new Intent(context, MyMqttService.class));
} catch (Exception e) { /**
Log.e(TAG, "Failed to stop MQTT service", e); * 初始化
} */
private void init() throws MqttException {
String CLIENTID = "android-" + MqttClient.generateClientId();
mqttAndroidClient = new MqttAndroidClient(mContext, HOST, CLIENTID);
mqttAndroidClient.setCallback(mqttCallback); //设置监听订阅消息的回调
mMqttConnectOptions = new MqttConnectOptions();
mMqttConnectOptions.setCleanSession(true); //设置是否清除缓存
mMqttConnectOptions.setConnectionTimeout(10); //设置超时时间,单位:秒
mMqttConnectOptions.setKeepAliveInterval(10); //设置心跳包发送间隔,单位:秒
mMqttConnectOptions.setUserName("public"); //设置用户名
mMqttConnectOptions.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1);
if (mqttAndroidClient != null && !mqttAndroidClient.isConnected()) {
doClientConnection();
} }
} }
private void doClientConnection() throws MqttException {
@Nullable // 在后台线程执行连接操作
@Override mqttHandler.post(() -> {
public IBinder onBind(Intent intent) { if (mqttAndroidClient != null && !mqttAndroidClient.isConnected() && isConnectIsNomarl() && b) {
return null; try {
mqttAndroidClient.connect(mMqttConnectOptions, null, iMqttActionListener);
} catch (Exception e) {
Log.e(TAG, "MQTT连接异常", e);
handleConnectionFailure();
}
}
});
} }
private void handleConnectionFailure() {
retryCount++;
if (retryCount < MAX_RETRY_ATTEMPTS) {
// 延迟重试
mqttHandler.postDelayed(() -> {
if (b) {
try {
doClientConnection();
} catch (MqttException e) {
Log.e(TAG, "MQTT连接异常", e);
}
}
}, 5000); // 5秒后重试
} else {
Log.w(TAG, "达到最大重试次数,停止重试");
retryCount = 0;
}
}
public static void closeConnection() {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(() -> {
try {
if (mqttAndroidClient != null && mqttAndroidClient.isConnected()) {
IMqttToken disconnect = mqttAndroidClient.disconnect();
disconnect.setActionCallback(new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
Logger.e(TAG, "断开链接", "断开链接成功");
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
Logger.e(TAG, "断开链接", "断开链接失败" + exception.getMessage());
}
});
}
} catch (Exception e) {
Log.e(TAG, "关闭连接异常", e);
}
});
}
/**
* 判断网络是否连接
*/
private boolean isConnectIsNomarl() {
try {
ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info != null && info.isAvailable()) {
String name = info.getTypeName();
Log.i(TAG, "当前网络名称:" + name);
return true;
} else {
Log.i(TAG, "没有可用网络");
return false;
}
}
} catch (Exception e) {
Log.e(TAG, "检查网络状态异常", e);
}
return false;
}
/** /**
* 发布 (模拟其他客户端发布消息) * 发布 (模拟其他客户端发布消息)
@@ -221,8 +265,10 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
subToken.setActionCallback(new IMqttActionListener() { subToken.setActionCallback(new IMqttActionListener() {
@Override @Override
public void onSuccess(IMqttToken asyncActionToken) { public void onSuccess(IMqttToken asyncActionToken) {
if (mMyEmqttSubscribeListener != null) { for (MyEmqttSubscribeListener listener : subscribeListeners) {
mMyEmqttSubscribeListener.onSubscribeSuccess(topic); if (listener != null) {
listener.onSubscribeSuccess(topic);
}
} }
Logger.e(TAG, "订阅成功:" + topic); Logger.e(TAG, "订阅成功:" + topic);
} }
@@ -230,9 +276,12 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
@Override @Override
public void onFailure(IMqttToken asyncActionToken, public void onFailure(IMqttToken asyncActionToken,
Throwable exception) { Throwable exception) {
if ((!TOPIC_BOSS.equals(topic) && mMyEmqttSubscribeListener != null) for (MyEmqttSubscribeListener listener : subscribeListeners) {
|| (!TOPIC_XLH.equals(topic) && mMyEmqttSubscribeListener != null)) { if (listener != null &&
mMyEmqttSubscribeListener.onSubscribeFailure(); !TOPIC_BOSS.equals(topic) &&
!TOPIC_XLH.equals(topic)) {
listener.onSubscribeFailure();
}
} }
Logger.e(TAG, "订阅失败:" + topic + ", error: " + exception.getMessage()); Logger.e(TAG, "订阅失败:" + topic + ", error: " + exception.getMessage());
} }
@@ -270,118 +319,20 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
}); });
} }
/**
* 初始化
*/
private void init() throws MqttException {
String CLIENTID = "android-" + MqttClient.generateClientId();
mqttAndroidClient = new MqttAndroidClient(this, HOST, CLIENTID);
mqttAndroidClient.setCallback(mqttCallback); //设置监听订阅消息的回调
mMqttConnectOptions = new MqttConnectOptions();
mMqttConnectOptions.setCleanSession(true); //设置是否清除缓存
mMqttConnectOptions.setConnectionTimeout(10); //设置超时时间,单位:秒
mMqttConnectOptions.setKeepAliveInterval(10); //设置心跳包发送间隔,单位:秒
mMqttConnectOptions.setUserName("public"); //设置用户名
// mMqttConnectOptions.setPassword(new char[0]); //设置密码
mMqttConnectOptions.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1);
if (mqttAndroidClient != null && !mqttAndroidClient.isConnected()) {
doClientConnection();
}
}
private void doClientConnection() throws MqttException {
// 在后台线程执行连接操作
mqttHandler.post(() -> {
if (mqttAndroidClient != null && !mqttAndroidClient.isConnected() && isConnectIsNomarl() && b) {
try {
mqttAndroidClient.connect(mMqttConnectOptions, null, iMqttActionListener);
} catch (Exception e) {
Log.e(TAG, "MQTT连接异常", e);
handleConnectionFailure();
}
}
});
}
private void handleConnectionFailure() {
retryCount++;
if (retryCount < MAX_RETRY_ATTEMPTS) {
// 延迟重试
mqttHandler.postDelayed(() -> {
if (b) {
try {
doClientConnection();
} catch (MqttException e) {
throw new RuntimeException(e);
}
}
}, 5000); // 5秒后重试
} else {
Log.w(TAG, "达到最大重试次数,停止重试");
retryCount = 0;
}
}
public static void closeConnection() {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(() -> {
try {
if (mqttAndroidClient != null && mqttAndroidClient.isConnected()) {
IMqttToken disconnect = mqttAndroidClient.disconnect();
disconnect.setActionCallback(new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
Logger.e(TAG, "断开链接", "断开链接成功");
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
Logger.e(TAG, "断开链接", "断开链接失败" + exception.getMessage());
}
});
}
} catch (Exception e) {
Log.e(TAG, "关闭连接异常", e);
}
});
}
/**
* 判断网络是否连接
*/
private boolean isConnectIsNomarl() {
try {
ConnectivityManager connectivityManager = (ConnectivityManager) this.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info != null && info.isAvailable()) {
String name = info.getTypeName();
Log.i(TAG, "当前网络名称:" + name);
return true;
} else {
Log.i(TAG, "没有可用网络");
return false;
}
}
} catch (Exception e) {
Log.e(TAG, "检查网络状态异常", e);
}
return false;
}
//MQTT是否连接成功的监听 //MQTT是否连接成功的监听
private IMqttActionListener iMqttActionListener = new IMqttActionListener() { private IMqttActionListener iMqttActionListener = new IMqttActionListener() {
@Override @Override
public void onSuccess(IMqttToken arg0) { public void onSuccess(IMqttToken arg0) {
retryCount = 0; // 重置重试计数 retryCount = 0; // 重置重试计数
if (mMyEmqttConnectListener != null) {
mMyEmqttConnectListener.onConnectSuccess(); // 通知所有连接监听器
for (MyEmqttConnectListener listener : connectListeners) {
if (listener != null) {
listener.onConnectSuccess();
}
} }
Logger.e(TAG, "链接状态:", "链接成功"); Logger.e(TAG, "链接状态:", "链接成功");
subscribe(TOPIC_BOSS); subscribe(TOPIC_BOSS);
subscribe(TOPIC_XLH); subscribe(TOPIC_XLH);
@@ -389,12 +340,15 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
@Override @Override
public void onFailure(IMqttToken arg0, Throwable arg1) { public void onFailure(IMqttToken arg0, Throwable arg1) {
if (mMyEmqttConnectListener != null) { // 通知所有连接监听器
mMyEmqttConnectListener.onConnectFailure(); for (MyEmqttConnectListener listener : connectListeners) {
if (listener != null) {
listener.onConnectFailure();
}
} }
// if (arg0 instanceof MqttException) {
//// Logger.e(TAG, "链接状态:", "链接失败" + ((MqttException) arg1).getMessage()); Logger.e(TAG, "链接状态:", "链接失败: " + arg1.getMessage());
// }
// 在后台线程处理重连 // 在后台线程处理重连
mqttHandler.postDelayed(() -> { mqttHandler.postDelayed(() -> {
if (b) { if (b) {
@@ -404,7 +358,6 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
} }
}; };
//订阅主题的回调 //订阅主题的回调
private MqttCallback mqttCallback = new MqttCallback() { private MqttCallback mqttCallback = new MqttCallback() {
@@ -417,23 +370,29 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
Logger.e(TAG, "收到的消息", "主题:" + topic + " 收到的消息:" + messageStr); Logger.e(TAG, "收到的消息", "主题:" + topic + " 收到的消息:" + messageStr);
if (topic.equals(TOPIC_BOSS)) { if (topic.equals(TOPIC_BOSS)) {
// 处理消息 // 处理消息
receiveMessage(topic, messageStr); // receiveMessage(topic, messageStr);
// new Handler(Looper.getMainLooper()).post(() -> {
receiveMessage(topic, messageStr);
// });
// 通知监听器 // 通知监听器
if (mMyEmqttMesgListener != null) { // for (MyEmqttMesgListener listener : messageListeners) {
// 切换到主线程通知 // if (listener != null) {
new Handler(Looper.getMainLooper()).post(() -> { // // 切换到主线程通知
mMyEmqttMesgListener.messageArrived(topic, messageStr); //// new Handler(Looper.getMainLooper()).post(() -> {
}); ////// listener.messageArrived(topic, messageStr);
} //// });
// }
// }
} else if (topic.equals(TOPIC_XLH)) { } else if (topic.equals(TOPIC_XLH)) {
receiveXlhMessage(messageStr); // receiveXlhMessage(messageStr);
// new Handler(Looper.getMainLooper()).post(() -> {
receiveXlhMessage(messageStr);
// });
} }
} catch (Exception e) { } catch (Exception e) {
Log.e(TAG, "处理MQTT消息异常", e); Log.e(TAG, "处理MQTT消息异常", e);
} }
}); });
} }
@Override @Override
@@ -443,9 +402,13 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
@Override @Override
public void connectionLost(Throwable arg0) { public void connectionLost(Throwable arg0) {
if (mMyEmqttConnectListener != null) { // 通知所有连接监听器
mMyEmqttConnectListener.onConnectFailure(); for (MyEmqttConnectListener listener : connectListeners) {
if (listener != null) {
listener.onConnectFailure();
}
} }
Logger.e(TAG, "链接状态:", "链接断开: " + arg0.getMessage()); Logger.e(TAG, "链接状态:", "链接断开: " + arg0.getMessage());
// 在后台线程处理重连 // 在后台线程处理重连
@@ -454,7 +417,7 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
try { try {
doClientConnection(); doClientConnection();
} catch (MqttException e) { } catch (MqttException e) {
throw new RuntimeException(e); Log.e(TAG, "MQTT连接异常", e);
} }
} }
}, 1000); }, 1000);
@@ -463,14 +426,12 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
private void receiveXlhMessage(String messageStr) { private void receiveXlhMessage(String messageStr) {
try { try {
String newdata = messageStr;//TextLengthUtil.decode(data); String newdata = messageStr;
JSONObject jsonObject = JSON.parseObject(newdata); JSONObject jsonObject = JSON.parseObject(newdata);
int type = jsonObject.getIntValue("type"); int type = jsonObject.getIntValue("type");
String message = jsonObject.getString("msg"); String message = jsonObject.getString("msg");
// 将事件处理放到主线程执行 // 将事件处理放到主线程执行
new Handler(Looper.getMainLooper()).post(() -> { new Handler(Looper.getMainLooper()).post(() -> {
processMessageType(type, message); processMessageType(type, message);
@@ -482,7 +443,7 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
private void receiveMessage(String topic, String data) { private void receiveMessage(String topic, String data) {
try { try {
String newdata = data;//TextLengthUtil.decode(data); String newdata = data;
JSONObject jsonObject = JSON.parseObject(newdata); JSONObject jsonObject = JSON.parseObject(newdata);
int type = jsonObject.getIntValue("type"); int type = jsonObject.getIntValue("type");
@@ -644,10 +605,10 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
} }
} }
@Override /**
public void onDestroy() { * 清理资源
b = false; */
public void cleanup() {
try { try {
// 清理资源 // 清理资源
if (messageExecutorService != null) { if (messageExecutorService != null) {
@@ -658,6 +619,7 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
} }
} catch (InterruptedException e) { } catch (InterruptedException e) {
messageExecutorService.shutdownNow(); messageExecutorService.shutdownNow();
Thread.currentThread().interrupt();
} }
} }
@@ -672,47 +634,61 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
mqttAndroidClient.unregisterResources(); mqttAndroidClient.unregisterResources();
mqttAndroidClient = null; mqttAndroidClient = null;
} }
stopForeground(true); // 停止前台服务
Logger.e(TAG, "服务关闭", "资源释放成功"); Logger.e(TAG, "服务关闭", "资源释放成功");
} catch (Exception e) { } catch (Exception e) {
Log.e(TAG, "服务关闭异常", e); Log.e(TAG, "服务关闭异常", e);
} }
super.onDestroy();
} }
// 修改监听器管理方法
public static void addMyEmqttMesgListener(MyEmqttMesgListener myEmqttMesgListener) { public static void addMyEmqttMesgListener(MyEmqttMesgListener myEmqttMesgListener) {
mMyEmqttMesgListener = myEmqttMesgListener; if (myEmqttMesgListener != null && !messageListeners.contains(myEmqttMesgListener)) {
messageListeners.add(myEmqttMesgListener);
}
}
public static void removeMyEmqttMesgListener(MyEmqttMesgListener myEmqttMesgListener) {
messageListeners.remove(myEmqttMesgListener);
} }
public static void addMyEmqttConnectListener(MyEmqttConnectListener myEmqttConnectListener) { public static void addMyEmqttConnectListener(MyEmqttConnectListener myEmqttConnectListener) {
mMyEmqttConnectListener = myEmqttConnectListener; if (myEmqttConnectListener != null && !connectListeners.contains(myEmqttConnectListener)) {
connectListeners.add(myEmqttConnectListener);
}
}
public static void removeMyEmqttConnectListener(MyEmqttConnectListener myEmqttConnectListener) {
connectListeners.remove(myEmqttConnectListener);
} }
public static void addMyEmqttSubscribeListener(MyEmqttSubscribeListener myEmqttSubscribeListener) { public static void addMyEmqttSubscribeListener(MyEmqttSubscribeListener myEmqttSubscribeListener) {
mMyEmqttSubscribeListener = myEmqttSubscribeListener; if (myEmqttSubscribeListener != null && !subscribeListeners.contains(myEmqttSubscribeListener)) {
subscribeListeners.add(myEmqttSubscribeListener);
}
} }
public static void removeMyEmqttSubscribeListener(MyEmqttSubscribeListener myEmqttSubscribeListener) {
subscribeListeners.remove(myEmqttSubscribeListener);
}
@Override @Override
public void onConnectSuccess() { public void onConnectSuccess() {
// 实现接口方法
} }
@Override @Override
public void onConnectFailure() { public void onConnectFailure() {
// 实现接口方法
} }
@Override @Override
public void messageArrived(String topic, String mesg) { public void messageArrived(String topic, String mesg) {
LogUtils.e("lxj", "messageArrived:"+mesg); LogUtils.e("lxj", "messageArrived:" + mesg);
} }
@Override @Override
public void onSubscribeSuccess(String topic) { public void onSubscribeSuccess(String topic) {
LogUtils.e("lxj", "onSubscribeSuccess:"+topic); LogUtils.e("lxj", "onSubscribeSuccess:" + topic);
} }
@Override @Override

View File

@@ -40,9 +40,15 @@ public class RoomSingSongWheatView extends BaseWheatView {
@Override @Override
protected void initPit(Context context, AttributeSet attrs) { protected void initPit(Context context, AttributeSet attrs) {
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.RoomDefaultWheatView); TypedArray typedArray = null;
pitNumber = typedArray.getString(R.styleable.RoomDefaultWheatView_room_wheat_number); try {
typedArray.recycle(); typedArray = context.obtainStyledAttributes(attrs, R.styleable.RoomDefaultWheatView);
pitNumber = typedArray.getString(R.styleable.RoomDefaultWheatView_room_wheat_number);
} finally {
if (typedArray != null) {
typedArray.recycle();
}
}
mIvTagBoss = findViewById(R.id.iv_tag_boos); mIvTagBoss = findViewById(R.id.iv_tag_boos);
mTvTime = findViewById(R.id.tv_time); mTvTime = findViewById(R.id.tv_time);
tv_time_pk = findViewById(R.id.tv_time_pk); tv_time_pk = findViewById(R.id.tv_time_pk);
@@ -55,83 +61,96 @@ public class RoomSingSongWheatView extends BaseWheatView {
@Override @Override
protected void setPitData(RoomPitBean bean) { protected void setPitData(RoomPitBean bean) {
if (bean == null) return;
sex = bean.getSex(); sex = bean.getSex();
pitBean = bean; // 统一使用参数 bean
if (isOn()) { if (isOn()) {
//开启声浪 handleOnState(bean);
mIvRipple.stopAnimation();
mIvRipple.setVisibility(VISIBLE);
mTvName.setText(bean.getNickname());
ImageUtils.loadHeadCC(bean.getAvatar(), mRiv);
if (TextUtils.isEmpty(pitBean.getDress())) {
mIvFrame.setVisibility(INVISIBLE);
} else {
mIvFrame.setVisibility(VISIBLE);
mIvFrame.setSource(pitBean.getDress(), 1);
// ImageUtils.loadDecorationAvatar(pitBean.getDress_picture(), mIvFrame);
}
if (showBoss && WHEAT_BOSS.equals(pitNumber)) {
mIvTagBoss.setVisibility(GONE);
}
} else { } else {
mTvName.setText( handleOffState(bean);
"-1".equals(pitNumber) ? "" :
"9".equals(pitNumber) ? "主持位" :
"10".equals(pitNumber) ? "嘉宾位" :
pitNumber + "号麦位"
);
//麦位上锁
if (showBoss && WHEAT_BOSS.equals(pitNumber)) {
mIvTagBoss.setVisibility(VISIBLE);
ImageUtils.loadRes(isLocked() ? R.mipmap.room_ic_wheat_default_suo : R.mipmap.room_ic_wheat_default, mRiv);
} else {
// mIvTagBoss.setVisibility(GONE);
// @DrawableRes int origin = getOriginImage();
// ImageUtils.loadRes(isLocked() ? R.mipmap.room_ic_wheat_default_suo :
// (origin == 0 ? R.mipmap.room_ic_wheat_default : origin), mRiv);
mRiv.setImageResource(bean.getIs_lock() == 1 ? R.mipmap.room_ic_wheat_default_suo : R.mipmap.room_ic_wheat_default);
// ImageUtils.loadRes(isLocked() ? R.mipmap.room_ic_wheat_default_suo : R.mipmap.room_ic_wheat_default, mRiv);
}
if (isMute()) {
ImageUtils.loadRes(R.mipmap.room_microphone_off, mIvSex);
}
mIvFrame.setVisibility(INVISIBLE);
mIvFace.remove();
//停止声浪
mIvRipple.stopAnimation();
mIvRipple.setVisibility(GONE);
} }
updateSexIcon();
updateCharmViewVisibility(bean);
updatePkState(bean);
}
private void handleOnState(RoomPitBean bean) {
stopAndClearAnimation(); // 清理之前的动画资源
mIvRipple.setVisibility(VISIBLE);
mTvName.setText(bean.getNickname());
ImageUtils.loadHeadCC(bean.getAvatar(), mRiv);
if (TextUtils.isEmpty(bean.getDress())) {
mIvFrame.setVisibility(INVISIBLE);
} else {
mIvFrame.setVisibility(VISIBLE);
mIvFrame.setSource(bean.getDress(), 1);
}
if (showBoss && TextUtils.equals(WHEAT_BOSS, pitNumber)) {
mIvTagBoss.setVisibility(GONE);
}
}
private void handleOffState(RoomPitBean bean) {
stopAndClearAnimation(); // 下麦时停止并清理动画
mTvName.setText(getPitNumberText());
if (showBoss && TextUtils.equals(WHEAT_BOSS, pitNumber)) {
mIvTagBoss.setVisibility(VISIBLE);
int resId = bean.getIs_lock() == 1 ? R.mipmap.room_ic_wheat_default_suo : R.mipmap.room_ic_wheat_default;
mRiv.setImageResource(resId);
} else {
mRiv.setImageResource(bean.getIs_lock() == 1 ? R.mipmap.room_ic_wheat_default_suo : R.mipmap.room_ic_wheat_default);
}
if (isMute()) {
ImageUtils.loadRes(R.mipmap.room_microphone_off, mIvSex);
}
mIvFrame.setVisibility(INVISIBLE);
mIvFace.remove();
mIvRipple.setVisibility(GONE);
}
private String getPitNumberText() {
if ("-1".equals(pitNumber)) return "";
if ("9".equals(pitNumber)) return "主持位";
if ("10".equals(pitNumber)) return "嘉宾位";
return pitNumber + "号麦位";
}
private void updateSexIcon() {
if (showSexIcon) { if (showSexIcon) {
checkSex(); checkSex();
} }
if (pitBean.getNickname() == null || pitBean.getNickname().isEmpty()) { }
mCharmView.setVisibility(GONE);
} else {
mCharmView.setVisibility(VISIBLE);
}
if (pitBean.is_pk() ){ private void updateCharmViewVisibility(RoomPitBean bean) {
if (pitBean.getUser_id()!=null && !pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) { boolean isEmptyNickname = bean.getNickname() == null || bean.getNickname().isEmpty();
mCharmView.setVisibility(isEmptyNickname ? GONE : VISIBLE);
}
private void updatePkState(RoomPitBean bean) {
if (bean.is_pk()) {
String userId = bean.getUser_id();
if (userId != null && !userId.equals("0") && !userId.isEmpty()) {
tv_time_pk.setVisibility(VISIBLE); tv_time_pk.setVisibility(VISIBLE);
setSex(pitBean.getCharm(),false); setSex(bean.getCharm(), false);
mCharmView.setVisibility(GONE); mCharmView.setVisibility(GONE);
}else { } else {
tv_time_pk.setVisibility(GONE); tv_time_pk.setVisibility(GONE);
} }
// ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mCharmView.getLayoutParams(); } else {
// params.width = 35;
// mCharmView.setLayoutParams(params);
}else {
tv_time_pk.setVisibility(GONE); tv_time_pk.setVisibility(GONE);
mCharmView.setVisibility(VISIBLE); mCharmView.setVisibility(VISIBLE);
// ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mCharmView.getLayoutParams();
// params.width = 52;
// mCharmView.setLayoutParams(params);
} }
// setCardiac(pitBean.getPit_number(), 0.0f);
} }
public void setSex( String value, boolean format) {
public void setSex(String value, boolean format) {
if (format) { if (format) {
tv_time_pk.setText(value); tv_time_pk.setText(value);
} else { } else {
@@ -139,12 +158,12 @@ public class RoomSingSongWheatView extends BaseWheatView {
long xd = Long.parseLong(value); long xd = Long.parseLong(value);
if (xd > 9999 || xd < -9999) { if (xd > 9999 || xd < -9999) {
tv_time_pk.setText(String.format("%.2fw", xd / 10000.0f)); tv_time_pk.setText(String.format("%.2fw", xd / 10000.0f));
// mBinding.tvValue.setText(String.valueOf(xd));
} else { } else {
tv_time_pk.setText(value); tv_time_pk.setText(value);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
tv_time_pk.setText("0"); // 设置默认值防止UI异常
} }
} }
} }
@@ -210,38 +229,91 @@ public class RoomSingSongWheatView extends BaseWheatView {
if (maozi != null) maozi.setVisibility(GONE); if (maozi != null) maozi.setVisibility(GONE);
} }
// 添加内存释放方法
public void releaseResources() {
stopAndClearAnimation();
// 清理头像加载
if (mRiv != null) {
mRiv.setImageBitmap(null);
}
// 清理框架视图
if (mIvFrame != null) {
mIvFrame.release(); // 清理SVGA资源
}
// 清理表情视图
if (mIvFace != null) {
mIvFace.remove();
}
// 清理其他图片资源
if (mIvSex != null) {
mIvSex.setImageBitmap(null);
}
if (mIvTagBoss != null) {
mIvTagBoss.setImageBitmap(null);
}
}
// 停止并清理动画资源
private void stopAndClearAnimation() {
if (mIvRipple != null) {
mIvRipple.stopAnimation();
// 清理SVGA资源避免内存泄漏
mIvRipple.clear();
}
}
@Override
protected void onDetachedFromWindow() {
// 视图从窗口分离时释放资源
releaseResources();
super.onDetachedFromWindow();
}
@Override @Override
public void onRemoteSoundLevelUpdate(String userId, int soundLevel) { public void onRemoteSoundLevelUpdate(String userId, int soundLevel) {
// 暂无实现
} }
@Override @Override
public void onLocalSoundLevelUpdate(int volume) { public void onLocalSoundLevelUpdate(int volume) {
if (volume==0){ if (volume == 0) {
mIvRipple.stopAnimation(); if (mIvRipple != null) {
} else {
if (pitBean.getUser_id().equals(SpUtil.getUserId()) && closePhone) {
mIvRipple.stopAnimation(); mIvRipple.stopAnimation();
}else { }
mIvRipple.post(() -> { } else {
if (!mIvRipple.isAnimating()) { // 增加空指针检查
mIvRipple.startAnimation(); if (pitBean != null && pitBean.getUser_id() != null &&
} pitBean.getUser_id().equals(SpUtil.getUserId()) && closePhone) {
mIvRipple.setVisibility(VISIBLE); if (mIvRipple != null) {
}); mIvRipple.stopAnimation();
}
} else {
if (mIvRipple != null) {
mIvRipple.post(() -> {
if (mIvRipple != null && !mIvRipple.isAnimating()) {
mIvRipple.startAnimation();
}
if (mIvRipple != null) {
mIvRipple.setVisibility(VISIBLE);
}
});
}
} }
} }
} }
@Override @Override
public void userJoined(int userId, int elapsd) { public void userJoined(int userId, int elapsd) {
// 暂无实现
} }
@Override @Override
public void userOffline(int userId, int reason) { public void userOffline(int userId, int reason) {
// 暂无实现
} }
} }

View File

@@ -22,13 +22,12 @@ public class WheatLayoutManager {
private int currentSinglePit = -1; private int currentSinglePit = -1;
private RoomDefaultWheatView singleWheatView; private RoomDefaultWheatView singleWheatView;
// 麦位索引映射9,10,1~8
private final int[] pitIndexMap = {9, 10, 1, 2, 3, 4, 5, 6, 7, 8}; private final int[] pitIndexMap = {9, 10, 1, 2, 3, 4, 5, 6, 7, 8};
public interface OnWheatClickListener { public interface OnWheatClickListener {
void onWheatClick(RoomDefaultWheatView view, int pitNumber); void onWheatClick(RoomDefaultWheatView view, int pitNumber);
void onMakeWheatClick(RoomDefaultWheatView view, int pitNumber); void onMakeWheatClick(RoomDefaultWheatView view, int pitNumber);
} }
private @Nullable OnWheatClickListener wheatClickListener; private @Nullable OnWheatClickListener wheatClickListener;
@@ -39,11 +38,13 @@ public class WheatLayoutManager {
} }
public void setWheatData(List<RoomPitBean> pitList) { public void setWheatData(List<RoomPitBean> pitList) {
if (pitList == null || pitList.size() < 10) return;
this.pitList = pitList; this.pitList = pitList;
restoreMultiWheat(); restoreMultiWheat();
} }
public void setWheatDataPk(List<RoomPitBean> pitList, int layoutType) { public void setWheatDataPk(List<RoomPitBean> pitList, int layoutType) {
if (pitList == null || pitList.size() < 10) return;
this.pitList = pitList; this.pitList = pitList;
restoreMultiWheatPk(layoutType); restoreMultiWheatPk(layoutType);
} }
@@ -54,19 +55,15 @@ public class WheatLayoutManager {
public void showSingleWheat(int pitNumber) { public void showSingleWheat(int pitNumber) {
if (isSingleMode && this.currentSinglePit == pitNumber) return; if (isSingleMode && this.currentSinglePit == pitNumber) return;
if (pitNumber < 1 || pitNumber > 10 || pitList == null || pitList.size() < 10) return;
container.removeAllViews(); container.removeAllViews();
if (pitNumber < 1 || pitNumber > 10 || pitList == null || pitList.size() < 10)
return;
RoomPitBean bean = pitList.get(pitNumber - 1); RoomPitBean bean = pitList.get(pitNumber - 1);
singleWheatView = new RoomDefaultWheatView(context); singleWheatView = new RoomDefaultWheatView(context);
singleWheatView.pitNumber = String.valueOf(pitNumber); singleWheatView.pitNumber = String.valueOf(pitNumber);
singleWheatView.setData(bean); singleWheatView.setData(bean);
// 默认设置为 MATCH_PARENT也可以自定义
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT LinearLayout.LayoutParams.WRAP_CONTENT
@@ -74,7 +71,6 @@ public class WheatLayoutManager {
params.setMargins(20, 20, 20, 20); params.setMargins(20, 20, 20, 20);
singleWheatView.setLayoutParams(params); singleWheatView.setLayoutParams(params);
// 添加点击事件
singleWheatView.setOnClickListener(v -> { singleWheatView.setOnClickListener(v -> {
if (wheatClickListener != null) { if (wheatClickListener != null) {
wheatClickListener.onWheatClick(singleWheatView, pitNumber); wheatClickListener.onWheatClick(singleWheatView, pitNumber);
@@ -91,42 +87,24 @@ public class WheatLayoutManager {
container.removeAllViews(); container.removeAllViews();
int screenWidth = getScreenWidth(); int screenWidth = getScreenWidth();
int itemWidth = screenWidth / 4; // 每个控件宽度为屏幕宽度的 1/4 int itemWidth = screenWidth / 4;
LinearLayout row = new LinearLayout(context); LinearLayout row = new LinearLayout(context);
row.setOrientation(LinearLayout.HORIZONTAL); row.setOrientation(LinearLayout.HORIZONTAL);
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
int pitNumber = pitIndexMap[i]; int pitNumber = pitIndexMap[i];
RoomDefaultWheatView wheatView = new RoomDefaultWheatView(context); RoomDefaultWheatView wheatView = createWheatView(pitNumber);
wheatView.pitNumber = String.valueOf(pitNumber);
wheatView.setData(pitList.get(pitNumber - 1));
LinearLayout.LayoutParams params; LinearLayout.LayoutParams params;
if (i == 0 || i == 1) {
if (i == 0) { int fixedHeightInPx = dpToPx(110);
int fixedHeightInDp = 110; // 固定高度为 100dp
int fixedHeightInPx = dpToPx(fixedHeightInDp); // 调用已有的 dpToPx 方法
// 第一个控件:左边距 86dp右边距 100dp
params = new LinearLayout.LayoutParams(itemWidth, fixedHeightInPx);
params.rightMargin = dpToPx(50);
} else if (i == 1) {
int fixedHeightInDp = 110; // 固定高度为 100dp
int fixedHeightInPx = dpToPx(fixedHeightInDp); // 调用已有的 dpToPx 方法
// 第二个控件:右边距 86dp
params = new LinearLayout.LayoutParams(itemWidth, fixedHeightInPx); params = new LinearLayout.LayoutParams(itemWidth, fixedHeightInPx);
if (i == 0) params.rightMargin = dpToPx(50);
} else { } else {
int fixedHeightInDp = 90; // 固定高度为 100dp int fixedHeightInPx = dpToPx(90);
int fixedHeightInPx = dpToPx(fixedHeightInDp); // 调用已有的 dpToPx 方法
params = new LinearLayout.LayoutParams(itemWidth - 30, fixedHeightInPx + 30); params = new LinearLayout.LayoutParams(itemWidth - 30, fixedHeightInPx + 30);
// 其他控件保持原有逻辑 params.setMargins(0, 0, 0, 0);
// if (i > 1 && (i - 2) % 4 != 0) {
// params.leftMargin = 12;
// params.rightMargin = 12;
// }
params.setMargins(0, 0, 0, 0); // 不设右边距,由 row padding 控制
} }
wheatView.setLayoutParams(params); wheatView.setLayoutParams(params);
@@ -134,143 +112,48 @@ public class WheatLayoutManager {
if (wheatClickListener != null) { if (wheatClickListener != null) {
wheatClickListener.onWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber)); wheatClickListener.onWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber));
} }
// showSingleWheat(Integer.parseInt(wheatView.pitNumber));
}); });
row.addView(wheatView); row.addView(wheatView);
// 第一行添加两个后换行 if (i == 1 || (i > 1 && (i - 2) % 4 == 3)) {
if (i == 1) {
container.addView(row);
row = new LinearLayout(context);
row.setOrientation(LinearLayout.HORIZONTAL);
} else if (i > 1 && (i - 2) % 4 == 3) {
container.addView(row); container.addView(row);
row = new LinearLayout(context); row = new LinearLayout(context);
row.setOrientation(LinearLayout.HORIZONTAL); row.setOrientation(LinearLayout.HORIZONTAL);
} }
} }
// 添加最后一行可能存在的剩余 view
if (row.getChildCount() > 0) { if (row.getChildCount() > 0) {
container.addView(row); container.addView(row);
} }
isSingleMode = false; isSingleMode = false;
currentSinglePit = -1; currentSinglePit = -1;
} }
// public void restoreMultiWheatPk(int layoutType, int width) {
// container.removeAllViews();
//
// int screenWidth = getScreenWidth();
// int itemWidth = screenWidth / 8; // 每个控件宽度为屏幕宽度的 1/4
//
// LinearLayout row = new LinearLayout(context);
// row.setOrientation(LinearLayout.HORIZONTAL);
//
// for (int i = 0; i < 10; i++) {
// int pitNumber = pitIndexMap[i];
// RoomDefaultWheatView wheatView = new RoomDefaultWheatView(context);
// wheatView.pitNumber = String.valueOf(pitNumber);
// wheatView.setData(pitList.get(pitNumber - 1));
//
// LinearLayout.LayoutParams params;
//
// if (i == 0) {
// int fixedHeightInDp = 110; // 固定高度为 100dp
// int fixedHeightInPx =context.getResources().getDimensionPixelSize(R.dimen.dp_80); // 调用已有的 dpToPx 方法
// // 第一个控件:左边距 86dp右边距 100dp
// params = new LinearLayout.LayoutParams(itemWidth, fixedHeightInPx);
// params.rightMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_50);
// } else if (i == 1) {
// int fixedHeightInDp = 110; // 固定高度为 100dp
// int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_80); // 调用已有的 dpToPx 方法
// // 第二个控件:右边距 86dp
// params = new LinearLayout.LayoutParams(itemWidth, fixedHeightInPx);
// } else {
// int fixedHeightInDp = 90; // 固定高度为 100dp
// int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_60); // 调用已有的 dpToPx 方法
// params = new LinearLayout.LayoutParams(itemWidth -10, fixedHeightInPx + 30);
// // 其他控件保持原有逻辑
//
//
//// if (i > 1 && (i - 2) % 4 != 0) {
//// params.leftMargin = 12;
//// params.rightMargin = 12;
//// }
// params.setMargins(0, 0, 0, 0); // 不设右边距,由 row padding 控制
// }
//
// wheatView.setLayoutParams(params);
// wheatView.setOnClickListener(v -> {
// if (wheatClickListener != null) {
// wheatClickListener.onWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber));
// }
//// showSingleWheat(Integer.parseInt(wheatView.pitNumber));
// });
//
// row.addView(wheatView);
//
// // 第一行添加两个后换行
// if (i == 1) {
// container.addView(row);
// row = new LinearLayout(context);
// row.setOrientation(LinearLayout.HORIZONTAL);
// } else if (i > 1 && (i - 2) % 4 == 3) {
// container.addView(row);
// row = new LinearLayout(context);
// row.setOrientation(LinearLayout.HORIZONTAL);
// }
// }
//
//// 添加最后一行可能存在的剩余 view
// if (row.getChildCount() > 0) {
// container.addView(row);
// }
// isSingleMode = false;
// currentSinglePit = -1;
// }
public void restoreMultiWheatPk(int layoutType) { public void restoreMultiWheatPk(int layoutType) {
if (layoutType == 1) { container.removeAllViews();
container.removeAllViews();
}
int screenWidth = getScreenWidth(); int screenWidth = getScreenWidth();
int itemWidth = screenWidth / 8; int itemWidth = screenWidth / 8;
LinearLayout row = new LinearLayout(context); LinearLayout row = new LinearLayout(context);
row.setOrientation(LinearLayout.HORIZONTAL); row.setOrientation(LinearLayout.HORIZONTAL);
// 根据 layoutType 调整前两个控件的顺序 int firstPitNumber = layoutType == 1 ? 10 : 9;
int firstPitNumber, secondPitNumber; int secondPitNumber = layoutType == 1 ? 9 : 10;
if (layoutType == 1) {
firstPitNumber = 10; // 第一个显示 10
secondPitNumber = 9; // 第二个显示 9
} else if (layoutType == 2) {
firstPitNumber = 9; // 第一个显示 9
secondPitNumber = 10; // 第二个显示 10
} else {
firstPitNumber = 9;
secondPitNumber = 10;
}
// 添加第一个控件10 或 9 addWheatViewItem(row, firstPitNumber, itemWidth * 2, layoutType);
addWheatViewItem(row, firstPitNumber, itemWidth*2, layoutType); addWheatViewItem(row, secondPitNumber, itemWidth * 2, layoutType);
// 添加第二个控件9 或 10
addWheatViewItem(row, secondPitNumber, itemWidth*2, layoutType);
container.addView(row); container.addView(row);
row = new LinearLayout(context); row = new LinearLayout(context);
row.setOrientation(LinearLayout.HORIZONTAL); row.setOrientation(LinearLayout.HORIZONTAL);
// 添加其余 8 个控件1~8
for (int i = 2; i < 10; i++) { for (int i = 2; i < 10; i++) {
int pitNumber = pitIndexMap[i]; int pitNumber = pitIndexMap[i];
addWheatViewItem(row, pitNumber, itemWidth, layoutType); addWheatViewItem(row, pitNumber, itemWidth, layoutType);
if (i > 1 && (i - 2) % 4 == 3) { if ((i - 2) % 4 == 3) {
container.addView(row); container.addView(row);
row = new LinearLayout(context); row = new LinearLayout(context);
row.setOrientation(LinearLayout.HORIZONTAL); row.setOrientation(LinearLayout.HORIZONTAL);
@@ -285,43 +168,29 @@ public class WheatLayoutManager {
currentSinglePit = -1; currentSinglePit = -1;
} }
// 抽取公共方法:添加单个控件
private void addWheatViewItem(LinearLayout row, int pitNumber, int itemWidth, int layoutType) { private void addWheatViewItem(LinearLayout row, int pitNumber, int itemWidth, int layoutType) {
RoomDefaultWheatView wheatView = new RoomDefaultWheatView(context); RoomDefaultWheatView wheatView = createWheatView(pitNumber);
wheatView.pitNumber = String.valueOf(pitNumber);
wheatView.setData(pitList.get(pitNumber - 1));
LinearLayout.LayoutParams params; LinearLayout.LayoutParams params;
if (pitNumber == 9 || pitNumber == 10) { if (pitNumber == 9 || pitNumber == 10) {
int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_90); int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_90);
if (pitNumber == 9) { if (pitNumber == 9) {
params = new LinearLayout.LayoutParams(itemWidth-40, fixedHeightInPx); params = new LinearLayout.LayoutParams(itemWidth - 40, fixedHeightInPx);
if (layoutType == 1) { if (layoutType == 1) {
// 9号在右边右边距10dp
params.rightMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_1); params.rightMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_1);
params.setMargins(20, -30, -20, 0); params.setMargins(20, -30, -20, 0);
} else if (layoutType == 2) { } else {
// 9号在左边左边距10dp
params.leftMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_1); params.leftMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_1);
params.setMargins(-30, -20, 0, 0); params.setMargins(-30, -20, 0, 0);
} }
} else { } else {
params = new LinearLayout.LayoutParams(itemWidth - 80, fixedHeightInPx); params = new LinearLayout.LayoutParams(itemWidth - 80, fixedHeightInPx);
if (layoutType == 1) { if (layoutType == 1) {
// 10号在左边左边距15dp
// params.leftMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_5);
params.setMargins(-30, 10, 0, 0); params.setMargins(-30, 10, 0, 0);
} else if (layoutType == 2) { } else {
// 10号在右边右边距15dp
// params.rightMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_5);
params.setMargins(0, 10, -30, 0); params.setMargins(0, 10, -30, 0);
} }
} }
} else { } else {
int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_60); int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_60);
params = new LinearLayout.LayoutParams(itemWidth + 15, fixedHeightInPx + 20); params = new LinearLayout.LayoutParams(itemWidth + 15, fixedHeightInPx + 20);
@@ -331,9 +200,9 @@ public class WheatLayoutManager {
wheatView.setLayoutParams(params); wheatView.setLayoutParams(params);
wheatView.setOnClickListener(v -> { wheatView.setOnClickListener(v -> {
if (wheatClickListener != null) { if (wheatClickListener != null) {
if (layoutType==1) { if (layoutType == 1) {
wheatClickListener.onWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber)); wheatClickListener.onWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber));
}else { } else {
wheatClickListener.onMakeWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber)); wheatClickListener.onMakeWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber));
} }
} }
@@ -342,7 +211,6 @@ public class WheatLayoutManager {
row.addView(wheatView); row.addView(wheatView);
} }
private RoomDefaultWheatView createWheatView(int pitNumber) { private RoomDefaultWheatView createWheatView(int pitNumber) {
RoomDefaultWheatView wheatView = new RoomDefaultWheatView(context); RoomDefaultWheatView wheatView = new RoomDefaultWheatView(context);
wheatView.pitNumber = String.valueOf(pitNumber); wheatView.pitNumber = String.valueOf(pitNumber);
@@ -350,14 +218,6 @@ public class WheatLayoutManager {
return wheatView; return wheatView;
} }
private RoomMakeWheatView createRoomMakeWheatView(int pitNumber) {
RoomMakeWheatView wheatView = new RoomMakeWheatView(context);
wheatView.pitNumber = String.valueOf(pitNumber);
wheatView.setData(pitList.get(pitNumber - 1));
return wheatView;
}
private int dpToPx(int dp) { private int dpToPx(int dp) {
return Math.round(dp * context.getResources().getDisplayMetrics().density); return Math.round(dp * context.getResources().getDisplayMetrics().density);
} }
@@ -367,21 +227,13 @@ public class WheatLayoutManager {
return metrics.widthPixels; return metrics.widthPixels;
} }
/**
* 更新指定 pitNumber 的麦位信息(用于局部刷新)
*/
public void updateSingleWheat(RoomPitBean pitBean, int pitNumber) { public void updateSingleWheat(RoomPitBean pitBean, int pitNumber) {
if (pitList == null || pitList.isEmpty() || pitNumber < 1 || pitNumber > 10) return; if (pitList == null || pitList.isEmpty() || pitNumber < 1 || pitNumber > 10) return;
// 如果是单个展示模式且不是当前麦位,不处理
if (isSingleMode && this.currentSinglePit != pitNumber) return; if (isSingleMode && this.currentSinglePit != pitNumber) return;
RoomDefaultWheatView wheatView = findWheatViewByPitNumber(pitNumber); RoomDefaultWheatView wheatView = findWheatViewByPitNumber(pitNumber);
if (wheatView != null) { if (wheatView != null) {
wheatView.setData(pitBean);
// RoomPitBean bean = pitList.get(pitNumber - 1);
RoomPitBean bean = pitBean;
wheatView.setData(bean); // 刷新数据
} }
} }
@@ -410,22 +262,37 @@ public class WheatLayoutManager {
return null; return null;
} }
/**
* 批量刷新多个麦位状态
*/
public void refreshWheatData(List<RoomPitBean> newPitList, List<Integer> changedPits) { public void refreshWheatData(List<RoomPitBean> newPitList, List<Integer> changedPits) {
this.pitList = newPitList; this.pitList = newPitList;
for (int pitNumber : changedPits) { for (int pitNumber : changedPits) {
// updateSingleWheat(pitNumber); updateSingleWheat(pitList.get(pitNumber - 1), pitNumber);
} }
} }
public void updateSingleOnlineWheat(UserOnlineStatusBean bean) { public void updateSingleOnlineWheat(UserOnlineStatusBean bean) {
if (pitList == null || pitList.isEmpty()) return; if (pitList == null || pitList.isEmpty() || bean == null) return;
for (RoomPitBean pitBean : pitList) { for (RoomPitBean pitBean : pitList) {
int pitNumber = Integer.parseInt(pitBean.getPit_number()); int pitNumber = Integer.parseInt(pitBean.getPit_number());
RoomDefaultWheatView wheatView = findWheatViewByPitNumber(pitNumber); RoomDefaultWheatView wheatView = findWheatViewByPitNumber(pitNumber);
wheatView.setOnlineStatus(bean); // 刷新数据 if (wheatView != null) {
wheatView.setOnlineStatus(bean);
}
} }
} }
public void clear() {
container.removeAllViews();
pitList = null;
singleWheatView = null;
isSingleMode = false;
currentSinglePit = -1;
}
public void clearData() {
pitList = null;
singleWheatView = null;
isSingleMode = false;
currentSinglePit = -1;
}
} }

View File

@@ -44,11 +44,21 @@ public class WheatLayoutSingManager {
} }
public void setWheatData(List<RoomPitBean> pitList) { public void setWheatData(List<RoomPitBean> pitList) {
// 检查容器状态
if (container == null || !isContainerValid()) {
return;
}
this.pitList = pitList; this.pitList = pitList;
restoreMultiWheat(); restoreMultiWheat();
} }
public void setWheatDataPk(List<RoomPitBean> pitList, int layoutType) { public void setWheatDataPk(List<RoomPitBean> pitList, int layoutType) {
// 检查容器状态
if (container == null || !isContainerValid()) {
return;
}
this.pitList = pitList; this.pitList = pitList;
restoreMultiWheatPk(layoutType); restoreMultiWheatPk(layoutType);
} }
@@ -58,9 +68,19 @@ public class WheatLayoutSingManager {
} }
public void showSingleWheat(int pitNumber) { public void showSingleWheat(int pitNumber) {
// 检查容器状态
if (container == null || !isContainerValid()) {
return;
}
if (isSingleMode && this.currentSinglePit == pitNumber) return; if (isSingleMode && this.currentSinglePit == pitNumber) return;
container.removeAllViews(); try {
container.removeAllViews();
} catch (Exception e) {
// 忽略异常,继续执行
return;
}
if (pitNumber < 1 || pitNumber > 10 || pitList == null || pitList.size() < 10) if (pitNumber < 1 || pitNumber > 10 || pitList == null || pitList.size() < 10)
return; return;
@@ -93,7 +113,21 @@ public class WheatLayoutSingManager {
} }
public void restoreMultiWheat() { public void restoreMultiWheat() {
container.removeAllViews(); // 检查容器状态
if (container == null || !isContainerValid()) {
return;
}
try {
container.removeAllViews();
} catch (Exception e) {
// 忽略异常,继续执行
return;
}
if (pitList == null || pitList.size() < 10) {
return;
}
int screenWidth = getScreenWidth(); int screenWidth = getScreenWidth();
int itemWidth = screenWidth / 4; // 每个控件宽度为屏幕宽度的 1/4 int itemWidth = screenWidth / 4; // 每个控件宽度为屏幕宽度的 1/4
@@ -126,11 +160,6 @@ public class WheatLayoutSingManager {
params = new LinearLayout.LayoutParams(itemWidth - 30, fixedHeightInPx + 30); params = new LinearLayout.LayoutParams(itemWidth - 30, fixedHeightInPx + 30);
// 其他控件保持原有逻辑 // 其他控件保持原有逻辑
// if (i > 1 && (i - 2) % 4 != 0) {
// params.leftMargin = 12;
// params.rightMargin = 12;
// }
params.setMargins(0, 0, 0, 0); // 不设右边距,由 row padding 控制 params.setMargins(0, 0, 0, 0); // 不设右边距,由 row padding 控制
} }
@@ -139,7 +168,6 @@ public class WheatLayoutSingManager {
if (wheatClickListener != null) { if (wheatClickListener != null) {
wheatClickListener.onWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber)); wheatClickListener.onWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber));
} }
// showSingleWheat(Integer.parseInt(wheatView.pitNumber));
}); });
row.addView(wheatView); row.addView(wheatView);
@@ -156,91 +184,33 @@ public class WheatLayoutSingManager {
} }
} }
// 添加最后一行可能存在的剩余 view // 添加最后一行可能存在的剩余 view
if (row.getChildCount() > 0) { if (row.getChildCount() > 0) {
container.addView(row); container.addView(row);
} }
isSingleMode = false; isSingleMode = false;
currentSinglePit = -1; currentSinglePit = -1;
} }
// public void restoreMultiWheatPk(int layoutType, int width) {
// container.removeAllViews();
//
// int screenWidth = getScreenWidth();
// int itemWidth = screenWidth / 8; // 每个控件宽度为屏幕宽度的 1/4
//
// LinearLayout row = new LinearLayout(context);
// row.setOrientation(LinearLayout.HORIZONTAL);
//
// for (int i = 0; i < 10; i++) {
// int pitNumber = pitIndexMap[i];
// RoomDefaultWheatView wheatView = new RoomDefaultWheatView(context);
// wheatView.pitNumber = String.valueOf(pitNumber);
// wheatView.setData(pitList.get(pitNumber - 1));
//
// LinearLayout.LayoutParams params;
//
// if (i == 0) {
// int fixedHeightInDp = 110; // 固定高度为 100dp
// int fixedHeightInPx =context.getResources().getDimensionPixelSize(R.dimen.dp_80); // 调用已有的 dpToPx 方法
// // 第一个控件:左边距 86dp右边距 100dp
// params = new LinearLayout.LayoutParams(itemWidth, fixedHeightInPx);
// params.rightMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_50);
// } else if (i == 1) {
// int fixedHeightInDp = 110; // 固定高度为 100dp
// int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_80); // 调用已有的 dpToPx 方法
// // 第二个控件:右边距 86dp
// params = new LinearLayout.LayoutParams(itemWidth, fixedHeightInPx);
// } else {
// int fixedHeightInDp = 90; // 固定高度为 100dp
// int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_60); // 调用已有的 dpToPx 方法
// params = new LinearLayout.LayoutParams(itemWidth -10, fixedHeightInPx + 30);
// // 其他控件保持原有逻辑
//
//
//// if (i > 1 && (i - 2) % 4 != 0) {
//// params.leftMargin = 12;
//// params.rightMargin = 12;
//// }
// params.setMargins(0, 0, 0, 0); // 不设右边距,由 row padding 控制
// }
//
// wheatView.setLayoutParams(params);
// wheatView.setOnClickListener(v -> {
// if (wheatClickListener != null) {
// wheatClickListener.onWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber));
// }
//// showSingleWheat(Integer.parseInt(wheatView.pitNumber));
// });
//
// row.addView(wheatView);
//
// // 第一行添加两个后换行
// if (i == 1) {
// container.addView(row);
// row = new LinearLayout(context);
// row.setOrientation(LinearLayout.HORIZONTAL);
// } else if (i > 1 && (i - 2) % 4 == 3) {
// container.addView(row);
// row = new LinearLayout(context);
// row.setOrientation(LinearLayout.HORIZONTAL);
// }
// }
//
//// 添加最后一行可能存在的剩余 view
// if (row.getChildCount() > 0) {
// container.addView(row);
// }
// isSingleMode = false;
// currentSinglePit = -1;
// }
public void restoreMultiWheatPk(int layoutType) { public void restoreMultiWheatPk(int layoutType) {
if (layoutType == 1) { // 检查容器状态
container.removeAllViews(); if (container == null || !isContainerValid()) {
return;
} }
if (layoutType == 1) {
try {
container.removeAllViews();
} catch (Exception e) {
// 忽略异常,继续执行
return;
}
}
if (pitList == null || pitList.size() < 10) {
return;
}
int screenWidth = getScreenWidth(); int screenWidth = getScreenWidth();
int itemWidth = screenWidth / 8; int itemWidth = screenWidth / 8;
@@ -292,6 +262,11 @@ public class WheatLayoutSingManager {
// 抽取公共方法:添加单个控件 // 抽取公共方法:添加单个控件
private void addWheatViewItem(LinearLayout row, int pitNumber, int itemWidth, int layoutType) { private void addWheatViewItem(LinearLayout row, int pitNumber, int itemWidth, int layoutType) {
// 检查容器状态
if (!isContainerValid()) {
return;
}
RoomSingSongWheatView wheatView = new RoomSingSongWheatView(context); RoomSingSongWheatView wheatView = new RoomSingSongWheatView(context);
wheatView.pitNumber = String.valueOf(pitNumber); wheatView.pitNumber = String.valueOf(pitNumber);
wheatView.setData(pitList.get(pitNumber - 1)); wheatView.setData(pitList.get(pitNumber - 1));
@@ -317,11 +292,9 @@ public class WheatLayoutSingManager {
params = new LinearLayout.LayoutParams(itemWidth - 80, fixedHeightInPx); params = new LinearLayout.LayoutParams(itemWidth - 80, fixedHeightInPx);
if (layoutType == 1) { if (layoutType == 1) {
// 10号在左边左边距15dp // 10号在左边左边距15dp
// params.leftMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_5);
params.setMargins(-30, 10, 0, 0); params.setMargins(-30, 10, 0, 0);
} else if (layoutType == 2) { } else if (layoutType == 2) {
// 10号在右边右边距15dp // 10号在右边右边距15dp
// params.rightMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_5);
params.setMargins(0, 10, -30, 0); params.setMargins(0, 10, -30, 0);
} }
@@ -347,7 +320,6 @@ public class WheatLayoutSingManager {
row.addView(wheatView); row.addView(wheatView);
} }
private RoomSingSongWheatView createWheatView(int pitNumber) { private RoomSingSongWheatView createWheatView(int pitNumber) {
RoomSingSongWheatView wheatView = new RoomSingSongWheatView(context); RoomSingSongWheatView wheatView = new RoomSingSongWheatView(context);
wheatView.pitNumber = String.valueOf(pitNumber); wheatView.pitNumber = String.valueOf(pitNumber);
@@ -362,7 +334,6 @@ public class WheatLayoutSingManager {
return wheatView; return wheatView;
} }
private int dpToPx(int dp) { private int dpToPx(int dp) {
return Math.round(dp * context.getResources().getDisplayMetrics().density); return Math.round(dp * context.getResources().getDisplayMetrics().density);
} }
@@ -376,6 +347,11 @@ public class WheatLayoutSingManager {
* 更新指定 pitNumber 的麦位信息(用于局部刷新) * 更新指定 pitNumber 的麦位信息(用于局部刷新)
*/ */
public void updateSingleWheat(RoomPitBean pitBean, int pitNumber) { public void updateSingleWheat(RoomPitBean pitBean, int pitNumber) {
// 检查容器状态
if (container == null || !isContainerValid()) {
return;
}
if (pitList == null || pitList.isEmpty() || pitNumber < 1 || pitNumber > 10) return; if (pitList == null || pitList.isEmpty() || pitNumber < 1 || pitNumber > 10) return;
// 如果是单个展示模式且不是当前麦位,不处理 // 如果是单个展示模式且不是当前麦位,不处理
@@ -383,8 +359,6 @@ public class WheatLayoutSingManager {
RoomSingSongWheatView wheatView = findWheatViewByPitNumber(pitNumber); RoomSingSongWheatView wheatView = findWheatViewByPitNumber(pitNumber);
if (wheatView != null) { if (wheatView != null) {
// RoomPitBean bean = pitList.get(pitNumber - 1);
RoomPitBean bean = pitBean; RoomPitBean bean = pitBean;
wheatView.setData(bean); // 刷新数据 wheatView.setData(bean); // 刷新数据
} }
@@ -392,6 +366,11 @@ public class WheatLayoutSingManager {
@Nullable @Nullable
private RoomSingSongWheatView findWheatViewByPitNumber(int pitNumber) { private RoomSingSongWheatView findWheatViewByPitNumber(int pitNumber) {
// 检查容器状态
if (container == null || !isContainerValid()) {
return null;
}
for (int i = 0; i < container.getChildCount(); i++) { for (int i = 0; i < container.getChildCount(); i++) {
View row = container.getChildAt(i); View row = container.getChildAt(i);
if (row instanceof LinearLayout) { if (row instanceof LinearLayout) {
@@ -419,21 +398,73 @@ public class WheatLayoutSingManager {
* 批量刷新多个麦位状态 * 批量刷新多个麦位状态
*/ */
public void refreshWheatData(List<RoomPitBean> newPitList, List<Integer> changedPits) { public void refreshWheatData(List<RoomPitBean> newPitList, List<Integer> changedPits) {
this.pitList = newPitList; // 检查容器状态
for (int pitNumber : changedPits) { if (container == null || !isContainerValid()) {
// updateSingleWheat(pitNumber); return;
} }
this.pitList = newPitList;
// 注意:原代码中此方法体为空,如果需要实现请取消注释下面的代码
// for (int pitNumber : changedPits) {
// updateSingleWheat(pitNumber);
// }
} }
public void updateSingleOnlineWheat(UserOnlineStatusBean bean) { public void updateSingleOnlineWheat(UserOnlineStatusBean bean) {
// 检查容器状态
if (container == null || !isContainerValid()) {
return;
}
if (pitList == null || pitList.isEmpty()) return; if (pitList == null || pitList.isEmpty()) return;
for (RoomPitBean pitBean : pitList) { for (RoomPitBean pitBean : pitList) {
int pitNumber = Integer.parseInt(pitBean.getPit_number()); int pitNumber = Integer.parseInt(pitBean.getPit_number());
RoomSingSongWheatView wheatView = findWheatViewByPitNumber(pitNumber); RoomSingSongWheatView wheatView = findWheatViewByPitNumber(pitNumber);
wheatView.setOnlineStatus(bean); // 刷新数据 if (wheatView != null) {
wheatView.setOnlineStatus(bean); // 刷新数据
}
} }
} }
// 添加容器状态检查方法
private boolean isContainerValid() {
try {
// 检查容器是否已附加到窗口
return container != null && container.isAttachedToWindow();
} catch (Exception e) {
return false;
}
}
// 添加资源清理方法
public void release() {
try {
if (container != null) {
// 清理所有子视图的资源
for (int i = 0; i < container.getChildCount(); i++) {
View child = container.getChildAt(i);
if (child instanceof LinearLayout) {
LinearLayout linearLayout = (LinearLayout) child;
for (int j = 0; j < linearLayout.getChildCount(); j++) {
View view = linearLayout.getChildAt(j);
if (view instanceof RoomSingSongWheatView) {
((RoomSingSongWheatView) view).releaseResources();
}
}
} else if (child instanceof RoomSingSongWheatView) {
((RoomSingSongWheatView) child).releaseResources();
}
}
container.removeAllViews();
}
} catch (Exception e) {
// 忽略异常
}
// 清理引用
pitList = null;
singleWheatView = null;
wheatClickListener = null;
}
} }

View File

@@ -49,7 +49,7 @@ public class GiftUserAdapter extends BaseQuickAdapter<RewardUserBean, BaseViewHo
}else { }else {
helper.setText(R.id.tv_pit, String.format("%s号麦", item.getPit_number())); helper.setText(R.id.tv_pit, String.format("%s号麦", item.getPit_number()));
} }
if (item.getPit_number().equals("8")) { if (item.getPit_number().equals("10")) {
helper.setText(R.id.tv_pit, "嘉宾"); helper.setText(R.id.tv_pit, "嘉宾");
} }
if (BaseWheatView.WHEAT_HOST.equals(item.getPit_number())) { if (BaseWheatView.WHEAT_HOST.equals(item.getPit_number())) {

View File

@@ -292,7 +292,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
mBinding.user4.setOnClickListener(this::onChock); mBinding.user4.setOnClickListener(this::onChock);
mBinding.user5.setOnClickListener(this::onChock); mBinding.user5.setOnClickListener(this::onChock);
mBinding.user6.setOnClickListener(this::onChock); mBinding.user6.setOnClickListener(this::onChock);
// getTextView(); getTextView();
// initOverlayButtons(); // initOverlayButtons();
// steView(type); // steView(type);
@@ -383,17 +383,26 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
private void getTextView() { private void getTextView() {
int defaultColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_0DFFB9); // 亲密拍默认颜色 int defaultColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_0DFFB9); // 亲密拍默认颜色(绿色)
int selectedColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_white); // 切换到真爱拍的颜色 int selectedColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_white); // 选中颜色(白色)
float defaultSize = 24f; // 亲密拍默认字体大小 int clickedColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_BB8BE2); // 真爱拍选中颜色(蓝色)
float selectedSize = 16f; // 真爱拍默认字体大小 float defaultSize = 16f; // 默认字体大小
int clickedColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_BB8BE2); // 点击后的颜色BB8BE2 float selectedSize = 24f; // 选中字体大小
mBinding.zhenai.setText("真爱拍");
// 默认是亲密拍 mBinding.qinmi.setText("亲密拍");
if (type == 2) { // 根据type设置初始状态
toggleTextStyles(mBinding.qinmi, mBinding.zhenai, defaultColor, selectedColor, clickedColor, defaultSize, selectedSize, type); if (type == 1) {
} else if (type == 1) { // type=1 真爱拍模式
toggleTextStyles(mBinding.qinmi, mBinding.zhenai, defaultColor, selectedColor, clickedColor, defaultSize, selectedSize, type); mBinding.zhenai.setTextColor(clickedColor); // 真爱拍蓝色
mBinding.zhenai.setTextSize(TypedValue.COMPLEX_UNIT_SP, selectedSize); // 真爱拍24号字体
mBinding.qinmi.setTextColor(selectedColor); // 亲密拍白色
mBinding.qinmi.setTextSize(TypedValue.COMPLEX_UNIT_SP, defaultSize); // 亲密拍16号字体
} else {
// type=2 亲密拍模式
mBinding.qinmi.setTextColor(defaultColor); // 亲密拍绿色
mBinding.qinmi.setTextSize(TypedValue.COMPLEX_UNIT_SP, selectedSize); // 亲密拍24号字体
mBinding.zhenai.setTextColor(selectedColor); // 真爱拍白色
mBinding.zhenai.setTextSize(TypedValue.COMPLEX_UNIT_SP, defaultSize); // 真爱拍16号字体
} }
mBinding.zhenai.setOnClickListener(v -> { mBinding.zhenai.setOnClickListener(v -> {
if (wheatView.getUserId().equals(SpUtil.getUserId() + "")) { if (wheatView.getUserId().equals(SpUtil.getUserId() + "")) {
@@ -451,7 +460,16 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
"确认", "确认",
"取消", "取消",
v -> { v -> {
steView(newType); // steView(newType);
// // 根据新的type更新TextView样式
// int defaultColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_0DFFB9); // 绿色
// int selectedColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_white); // 白色
// int clickedColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_BB8BE2); // 蓝色
// float defaultSize = 16f;
// float selectedSize = 24f;
//
// toggleTextStyles(mBinding.qinmi, mBinding.zhenai, defaultColor, selectedColor, clickedColor, defaultSize, selectedSize, type);
// 点击“确认”按钮时执行 // 点击“确认”按钮时执行
MvpPre.auctionMode(roomInfoResp.getRoom_info().getRoom_id(), newType == 1 ? "1" : "2"); MvpPre.auctionMode(roomInfoResp.getRoom_info().getRoom_id(), newType == 1 ? "1" : "2");
}, },
@@ -851,8 +869,17 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
} }
public void event1027(RoomMessageEvent messageEvent) { public void event1027(RoomMessageEvent messageEvent) {
type = messageEvent.getText().getType(); type = messageEvent.getText().getType();
getTextView(); // getTextView();
steView(type); steView(type);
// 更新TextView样式
int defaultColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_0DFFB9); // 绿色
int selectedColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_white); // 白色
int clickedColor = ContextCompat.getColor(requireContext(), com.xscm.moduleutil.R.color.color_BB8BE2); // 蓝色
float defaultSize = 16f;
float selectedSize = 24f;
toggleTextStyles(mBinding.qinmi, mBinding.zhenai, defaultColor, selectedColor, clickedColor, defaultSize, selectedSize, type);
} }
public void event1026(RoomMessageEvent messageEvent) { public void event1026(RoomMessageEvent messageEvent) {
@@ -915,9 +942,10 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
@Override @Override
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
// stub.setVisibility(GONE);
isButtonsInflated = false; isButtonsInflated = false;
releaseCountDownTimer(); releaseCountDownTimer();
EventBus.getDefault().unregister(this); // EventBus.getDefault().unregister(this);
} }
private void yinc() { private void yinc() {
@@ -1187,6 +1215,9 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
// if (EventBus.getDefault().isRegistered(this)) { // if (EventBus.getDefault().isRegistered(this)) {
// EventBus.getDefault().unregister(this); // EventBus.getDefault().unregister(this);
// } // }
// stub.setVisibility(GONE);
isButtonsInflated = false;
releaseCountDownTimer();
} }
/** /**
@@ -1194,29 +1225,37 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
* *
* @param qinmi 亲密拍 TextView * @param qinmi 亲密拍 TextView
* @param zhenai 真爱拍 TextView * @param zhenai 真爱拍 TextView
* @param defaultColor 默认颜色(如亲密拍原本颜色) * @param defaultColor 默认颜色(绿色)
* @param selectedColor 点击后选中颜色(如真爱拍原本颜色) * @param selectedColor 选中颜色(色)
* @param defaultSize 默认字体大小sp * @param clickedColor 真爱拍选中颜色(蓝色
* @param selectedSize 点击后选中字体大小sp * @param defaultSize 默认字体大小(16sp
* @param selectedSize 选中字体大小24sp
* @param type 类型1=真爱拍2=亲密拍)
*/ */
public void toggleTextStyles(TextView qinmi, TextView zhenai, int defaultColor, public void toggleTextStyles(TextView qinmi, TextView zhenai, int defaultColor,
int selectedColor, int clickedColor, float defaultSize, float selectedSize, int type) { int selectedColor, int clickedColor, float defaultSize, float selectedSize, int type) {
if (type == 1) { if (type == 1) {
// 切换到真爱拍样式 // 真爱拍模式:真爱拍选中(蓝色,大字体),亲密拍未选中(白色,小字体)
qinmi.setTextColor(selectedColor); zhenai.setTextColor(clickedColor); // 真爱拍蓝色
qinmi.setTextSize(TypedValue.COMPLEX_UNIT_SP, selectedSize); zhenai.setTextSize(TypedValue.COMPLEX_UNIT_SP, selectedSize); // 真爱拍24号字体
zhenai.setTextColor(clickedColor); qinmi.setTextColor(selectedColor); // 亲密拍白色
zhenai.setTextSize(TypedValue.COMPLEX_UNIT_SP, defaultSize); qinmi.setTextSize(TypedValue.COMPLEX_UNIT_SP, defaultSize); // 亲密拍16号字体
} else if (type == 2) { } else if (type == 2) {
// 默认亲密拍样式 // 亲密拍模式:亲密拍选中(绿色,大字体),真爱拍未选中(白色,小字体)
qinmi.setTextColor(defaultColor); qinmi.setTextColor(defaultColor); // 亲密拍绿色
qinmi.setTextSize(TypedValue.COMPLEX_UNIT_SP, defaultSize); qinmi.setTextSize(TypedValue.COMPLEX_UNIT_SP, selectedSize); // 亲密拍24号字体
zhenai.setTextColor(selectedColor); zhenai.setTextColor(selectedColor); // 真爱拍白色
zhenai.setTextSize(TypedValue.COMPLEX_UNIT_SP, selectedSize); zhenai.setTextSize(TypedValue.COMPLEX_UNIT_SP, defaultSize); // 真爱拍16号字体
} }
mBinding.qinmi.requestLayout();
mBinding.qinmi.invalidate();
mBinding.zhenai.requestLayout();
mBinding.zhenai.invalidate();
} }
/// ///
} }

View File

@@ -256,7 +256,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
mRoomInfoResp = resp; mRoomInfoResp = resp;
loadSubFragment(); loadSubFragment();
// 更新子Fragment视图 // 更新子Fragment视图
// updateChildFragmentViews(); updateChildFragmentViews();
} }
public void updateChildFragmentViews() { public void updateChildFragmentViews() {
@@ -269,6 +269,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
getView().post(() -> { getView().post(() -> {
if (mRoomInfoResp != null && mRoomInfoResp.getRoom_info() != null) { if (mRoomInfoResp != null && mRoomInfoResp.getRoom_info() != null) {
String typeId = mRoomInfoResp.getRoom_info().getType_id(); String typeId = mRoomInfoResp.getRoom_info().getType_id();
String labelId = mRoomInfoResp.getRoom_info().getLabel_id();
if ("7".equals(typeId)) { if ("7".equals(typeId)) {
// 保持 tag 使用一致性 // 保持 tag 使用一致性
@@ -278,13 +279,26 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
friendshipRoomFragment.roomInfoUpdate(mRoomInfoResp); friendshipRoomFragment.roomInfoUpdate(mRoomInfoResp);
} }
}else if ("2".equals(typeId)){//拍卖房 } else if ("2".equals(typeId)) {//拍卖房
RoomAuctionFragment auctionRoomFragment = (RoomAuctionFragment) getChildFragmentManager() RoomAuctionFragment auctionRoomFragment = (RoomAuctionFragment) getChildFragmentManager()
.findFragmentByTag(RoomAuctionFragment.class.getSimpleName()); .findFragmentByTag(RoomAuctionFragment.class.getSimpleName());
if (auctionRoomFragment != null && auctionRoomFragment.isAdded()){ if (auctionRoomFragment != null && auctionRoomFragment.isAdded()) {
auctionRoomFragment.roomInfoUpdate(mRoomInfoResp); auctionRoomFragment.roomInfoUpdate(mRoomInfoResp);
} }
}else if ("1".equals(typeId) || "3".equals(typeId) || "4".equals(typeId)){
if ("2".equals(labelId)){
RoomKtvFragment roomKtvFragment = (RoomKtvFragment) getChildFragmentManager()
.findFragmentByTag(RoomKtvFragment.class.getSimpleName());
if (roomKtvFragment != null && roomKtvFragment.isAdded()) {
roomKtvFragment.roomInfoUpdate(mRoomInfoResp);
}
}else if ("1".equals(labelId)){
SingSongFragment singSongFragment = (SingSongFragment) getChildFragmentManager()
.findFragmentByTag(SingSongFragment.class.getSimpleName());
if (singSongFragment != null && singSongFragment.isAdded()) {
singSongFragment.roomInfoUpdate(mRoomInfoResp);
}
}
} }
} }
}); });
@@ -373,38 +387,29 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
if (mRoomInfoResp == null || mRoomInfoResp.getRoom_info() == null) return; if (mRoomInfoResp == null || mRoomInfoResp.getRoom_info() == null) return;
// replaceNestedFragment(PublicScreenEaseChatFragment.newInstance(mRoomInfoResp), R.id.ease_container); if (mRoomInfoResp.getRoom_info().getType_id().equals("1")) {//点唱
if (mRoomInfoResp.getRoom_info().getType_id().equals("1")) {
if (mRoomInfoResp.getRoom_info().getLabel_id().equals("1")) { if (mRoomInfoResp.getRoom_info().getLabel_id().equals("1")) {
replaceNestedFragment(SingSongFragment.newInstance(mRoomInfoResp), R.id.container); replaceNestedFragment(SingSongFragment.newInstance(), R.id.container);
// replaceNestedFragment(RoomPkFragment.newInstance(mRoomInfoResp), R.id.container);
} else if (mRoomInfoResp.getRoom_info().getLabel_id().equals("2")) { } else if (mRoomInfoResp.getRoom_info().getLabel_id().equals("2")) {
replaceNestedFragment(RoomKtvFragment.newInstance(mRoomInfoResp), R.id.container); replaceNestedFragment(RoomKtvFragment.newInstance(), R.id.container);
} }
} else if (mRoomInfoResp.getRoom_info().getType_id().equals("2")) { } else if (mRoomInfoResp.getRoom_info().getType_id().equals("2")) {//拍卖
// if (mRoomInfoResp.getRoom_info().getLabel_id().equals("1")) { replaceNestedFragment(RoomAuctionFragment.newInstance(), R.id.container);
replaceNestedFragment(RoomAuctionFragment.newInstance(), R.id.container);
// replaceNestedFragment(RoomAuctionFragment.newInstance(mRoomInfoResp, 1), R.id.container);
// } else if (mRoomInfoResp.getRoom_info().getLabel_id().equals("2")) {
replaceNestedFragment(RoomAuctionFragment.newInstance(), R.id.container);
// replaceNestedFragment(RoomAuctionFragment.newInstance(mRoomInfoResp, 2), R.id.container);
// }
} else if (mRoomInfoResp.getRoom_info().getType_id().equals("6")) { } else if (mRoomInfoResp.getRoom_info().getType_id().equals("6")) {
replaceNestedFragment(RoomCabinFragment.newInstance(mRoomInfoResp), R.id.container); replaceNestedFragment(RoomCabinFragment.newInstance(mRoomInfoResp), R.id.container);
setviewyc(); setviewyc();
} else if (mRoomInfoResp.getRoom_info().getType_id().equals("3")) { } else if (mRoomInfoResp.getRoom_info().getType_id().equals("3")) {//男神
if (mRoomInfoResp.getRoom_info().getLabel_id().equals("1")) { if (mRoomInfoResp.getRoom_info().getLabel_id().equals("1")) {
replaceNestedFragment(SingSongFragment.newInstance(mRoomInfoResp), R.id.container); replaceNestedFragment(SingSongFragment.newInstance(), R.id.container);
// replaceNestedFragment(RoomPkFragment.newInstance(mRoomInfoResp), R.id.container);
} else if (mRoomInfoResp.getRoom_info().getLabel_id().equals("2")) { } else if (mRoomInfoResp.getRoom_info().getLabel_id().equals("2")) {
replaceNestedFragment(RoomKtvFragment.newInstance(mRoomInfoResp), R.id.container); replaceNestedFragment(RoomKtvFragment.newInstance(), R.id.container);
} }
} else if (mRoomInfoResp.getRoom_info().getType_id().equals("4")) { } else if (mRoomInfoResp.getRoom_info().getType_id().equals("4")) {//女神
if (mRoomInfoResp.getRoom_info().getLabel_id().equals("1")) { if (mRoomInfoResp.getRoom_info().getLabel_id().equals("1")) {
replaceNestedFragment(SingSongFragment.newInstance(mRoomInfoResp), R.id.container); replaceNestedFragment(SingSongFragment.newInstance(), R.id.container);
// replaceNestedFragment(RoomPkFragment.newInstance(mRoomInfoResp), R.id.container); // replaceNestedFragment(RoomPkFragment.newInstance(mRoomInfoResp), R.id.container);
} else if (mRoomInfoResp.getRoom_info().getLabel_id().equals("2")) { } else if (mRoomInfoResp.getRoom_info().getLabel_id().equals("2")) {
replaceNestedFragment(RoomKtvFragment.newInstance(mRoomInfoResp), R.id.container); replaceNestedFragment(RoomKtvFragment.newInstance(), R.id.container);
} }
} else if (mRoomInfoResp.getRoom_info().getType_id().equals("7")) { } else if (mRoomInfoResp.getRoom_info().getType_id().equals("7")) {
replaceNestedFragment(FriendshipRoomFragment.newInstance(), R.id.container); replaceNestedFragment(FriendshipRoomFragment.newInstance(), R.id.container);
@@ -427,10 +432,10 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
if (mRoomInfoResp.getRoom_info().getType_id().equals("6")) { if (mRoomInfoResp.getRoom_info().getType_id().equals("6")) {
((RoomActivity) getActivity()).changeBackground(com.xscm.moduleutil.R.mipmap.cabin_bj); ((RoomActivity) getActivity()).changeBackground(com.xscm.moduleutil.R.mipmap.cabin_bj);
((RoomActivity) getActivity()).setvisibTop(false); ((RoomActivity) getActivity()).setvisibTop(false);
}else if (mRoomInfoResp.getRoom_info().getType_id().equals("7")){ } else if (mRoomInfoResp.getRoom_info().getType_id().equals("7")) {
((RoomActivity) getActivity()).changeBackground(com.xscm.moduleutil.R.mipmap.jiaoy_bj); ((RoomActivity) getActivity()).changeBackground(com.xscm.moduleutil.R.mipmap.jiaoy_bj);
((RoomActivity) getActivity()).setvisibTop(true); ((RoomActivity) getActivity()).setvisibTop(true);
}else { } else {
((RoomActivity) getActivity()).changeBackgroundColor(mRoomInfoResp.getRoom_info().getRoom_background()); ((RoomActivity) getActivity()).changeBackgroundColor(mRoomInfoResp.getRoom_info().getRoom_background());
((RoomActivity) getActivity()).setvisibTop(true); ((RoomActivity) getActivity()).setvisibTop(true);
} }
@@ -455,25 +460,32 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
public void replaceNestedFragment(@NonNull Fragment newFragment, int containerId) { public void replaceNestedFragment(@NonNull Fragment newFragment, int containerId) {
String tag = newFragment.getClass().getSimpleName(); // 使用类名作为 tag String tag = newFragment.getClass().getSimpleName(); // 使用类名作为 tag
//
// FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
//
// // 查找当前容器中的 Fragment可选
// Fragment currentFragment = getChildFragmentManager().findFragmentById(containerId);
//
// if (currentFragment != null) {
// if (tag.equals(currentFragment.getClass().getName())) {
// return; // 跳过相同类型替换
// }
// transaction.remove(currentFragment); // 先移除旧 Fragment
// }
//
// // 添加新 Fragment 并带上 tag
// transaction.add(containerId, newFragment, tag)
// .commitAllowingStateLoss();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
// 可选:检查是否已有相同类型的 Fragment
// 查找当前容器中的 Fragment可选 Fragment existing = getChildFragmentManager().findFragmentById(containerId);
Fragment currentFragment = getChildFragmentManager().findFragmentById(containerId); if (existing != null) {
transaction.remove(existing);
if (currentFragment != null) {
if (tag.equals(currentFragment.getClass().getName())) {
return; // 跳过相同类型替换
}
transaction.remove(currentFragment); // 先移除旧 Fragment
} }
transaction.replace(containerId, newFragment,tag);
transaction.commitAllowingStateLoss();
// 添加新 Fragment 并带上 tag
transaction.add(containerId, newFragment, tag)
.commitAllowingStateLoss();
// transaction.add(containerId, newFragment, tag)
// .addToBackStack(tag) // 可选:加入回退栈
// .commitAllowingStateLoss();
} }
public void updateWheatStatus(RoomPitBean roomPitBean, int pit, boolean isOccupied, boolean isMine) { public void updateWheatStatus(RoomPitBean roomPitBean, int pit, boolean isOccupied, boolean isMine) {
@@ -525,7 +537,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
// mBinding.ivWheatFeeding.setImageResource(com.xscm.moduleutil.R.mipmap.room_wheat_feeding_up); // mBinding.ivWheatFeeding.setImageResource(com.xscm.moduleutil.R.mipmap.room_wheat_feeding_up);
// mBinding.rlMic.setVisibility(View.VISIBLE); // mBinding.rlMic.setVisibility(View.VISIBLE);
((RoomActivity) getActivity()).ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding_up); ((RoomActivity) getActivity()).ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding_up);
((RoomActivity) getActivity()).setrlMic( true); ((RoomActivity) getActivity()).setrlMic(true);
((RoomActivity) getActivity()).setBoolean(aBoolean); ((RoomActivity) getActivity()).setBoolean(aBoolean);
} else { } else {
aBoolean = true; aBoolean = true;
@@ -564,7 +576,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
if (mRoomInfoResp.getUser_info().getUser_id().equals(SpUtil.getUserId() + "") && mRoomInfoResp.getUser_info().getPit_number() == 9 if (mRoomInfoResp.getUser_info().getUser_id().equals(SpUtil.getUserId() + "") && mRoomInfoResp.getUser_info().getPit_number() == 9
&& !mRoomInfoResp.getRoom_info().getType_id().equals("2") && !mRoomInfoResp.getRoom_info().getType_id().equals("6")) { && !mRoomInfoResp.getRoom_info().getType_id().equals("2") && !mRoomInfoResp.getRoom_info().getType_id().equals("6")) {
// mBinding.rlMore.setVisibility(View.VISIBLE); // mBinding.rlMore.setVisibility(View.VISIBLE);
((RoomActivity) getActivity()).rlMore( true); ((RoomActivity) getActivity()).rlMore(true);
} else { } else {
// mBinding.rlMore.setVisibility(View.GONE); // mBinding.rlMore.setVisibility(View.GONE);
@@ -962,12 +974,12 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
if (!haveMe) { if (!haveMe) {
AgoraManager.getInstance(getContext()).ClientRole(false); AgoraManager.getInstance(getContext()).ClientRole(false);
// mBinding.rlMic.setVisibility(View.GONE); // mBinding.rlMic.setVisibility(View.GONE);
((RoomActivity) getActivity()).setrlMic( false); ((RoomActivity) getActivity()).setrlMic(false);
AgoraManager.getInstance(getContext()).setLocalAudioEnabled(false, SpUtil.getUserId() + ""); AgoraManager.getInstance(getContext()).setLocalAudioEnabled(false, SpUtil.getUserId() + "");
// switchMic(2); // switchMic(2);
} else { } else {
((RoomActivity) getActivity()).setrlMic( true); ((RoomActivity) getActivity()).setrlMic(true);
// mBinding.rlMic.setVisibility(View.VISIBLE); // mBinding.rlMic.setVisibility(View.VISIBLE);
if (AgoraManager.getInstance(getContext()).isLocalAudioEnabled()) { if (AgoraManager.getInstance(getContext()).isLocalAudioEnabled()) {
@@ -1144,7 +1156,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
); );
} }
// @Subscribe(threadMode = ThreadMode.MAIN) // @Subscribe(threadMode = ThreadMode.MAIN)
public void roomInfoEvent(RoomMessageEvent messageEvent) { public void roomInfoEvent(RoomMessageEvent messageEvent) {
if (messageEvent.getMsgType() == 123) { if (messageEvent.getMsgType() == 123) {
// // 获取 PublicScreenEaseChatFragment 实例 // // 获取 PublicScreenEaseChatFragment 实例
@@ -1179,7 +1191,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
// } // }
//// setRoleType(messageEvent.getRoleType(), messageEvent.getPit_number()); //// setRoleType(messageEvent.getRoleType(), messageEvent.getPit_number());
// } else // } else
if (messageEvent.getMsgType() == 1034) { if (messageEvent.getMsgType() == 1034) {
int count = messageEvent.getText().getCount(); int count = messageEvent.getText().getCount();
if (count == 0) { if (count == 0) {
((RoomActivity) getActivity()).tvFirst(new SpannableStringBuilder("0人排队")); ((RoomActivity) getActivity()).tvFirst(new SpannableStringBuilder("0人排队"));
@@ -1218,7 +1230,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
} }
} }
// @Subscribe(threadMode = ThreadMode.MAIN) // @Subscribe(threadMode = ThreadMode.MAIN)
// public void roomInfoEvent(UserInfo messageEvent) { // public void roomInfoEvent(UserInfo messageEvent) {
// mBinding.llInput.setVisibility(View.VISIBLE); // mBinding.llInput.setVisibility(View.VISIBLE);
// mBinding.inputMenu1.bringToFront(); // 强制将该 View 置于最上层 // mBinding.inputMenu1.bringToFront(); // 强制将该 View 置于最上层
@@ -1250,7 +1262,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
case 1021: case 1021:
auctionFragment.event1021(messageEvent); auctionFragment.event1021(messageEvent);
break; break;
case 1027: case 1027:
auctionFragment.event1027(messageEvent); auctionFragment.event1027(messageEvent);
break; break;
default: default:
@@ -1261,5 +1273,80 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
} }
} }
// TODO: 2025/8/30 Ktv模式
public void KtvFragmentEvent(RoomMessageEvent messageEvent) {
RoomKtvFragment ktvFragment = (RoomKtvFragment) getChildFragmentManager()
.findFragmentByTag(RoomKtvFragment.class.getSimpleName());
if (ktvFragment != null) {
switch (messageEvent.getMsgType()) {
case 1013:
ktvFragment.event1013(messageEvent);
break;
case 1003:
ktvFragment.event1003(messageEvent);
break;
case 1004:
ktvFragment.event1004(messageEvent);
break;
case 1021:
ktvFragment.event1021(messageEvent);
case 1005:
ktvFragment.event1005(messageEvent);
break;
case 1035:
ktvFragment.event1035(messageEvent);
break;
default:
// 可以添加默认处理或日志记录
LogUtils.w("Unhandled auction message type: " + messageEvent.getMsgType());
break;
}
}
}
// TODO: 2025/8/30 点唱房模式
public void SingSongEvent(RoomMessageEvent messageEvent) {
SingSongFragment singSongFragment = (SingSongFragment) getChildFragmentManager()
.findFragmentByTag(SingSongFragment.class.getSimpleName());
if (singSongFragment != null) {
switch (messageEvent.getMsgType()) {
case 1037:
singSongFragment.event1037(messageEvent);
break;
case 1003:
singSongFragment.event1003(messageEvent);
break;
case 1004:
singSongFragment.event1004(messageEvent);
break;
case 1005:
singSongFragment.event1005(messageEvent);
break;
case 1015:
singSongFragment.event1015(messageEvent);
break;
case 1030:
singSongFragment.event1030(messageEvent);
break;
case 1031:
singSongFragment.event1031(messageEvent);
break;
case 1032:
singSongFragment.event1032(messageEvent);
break;
case 1033:
singSongFragment.event1033(messageEvent);
break;
default:
// 可以添加默认处理或日志记录
LogUtils.w("Unhandled auction message type: " + messageEvent.getMsgType());
break;
}
}
}
} }

View File

@@ -67,10 +67,10 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
private RoomOnline online; private RoomOnline online;
public static RoomKtvFragment newInstance(RoomInfoResp roomInfoResp) { public static RoomKtvFragment newInstance() {
RoomKtvFragment fragment = new RoomKtvFragment(); RoomKtvFragment fragment = new RoomKtvFragment();
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable("roomInfo", roomInfoResp); // args.putSerializable("roomInfo", roomInfoResp);
fragment.setArguments(args); fragment.setArguments(args);
return fragment; return fragment;
} }
@@ -78,38 +78,19 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
@Override @Override
public void onAttach(@NonNull Context context) { public void onAttach(@NonNull Context context) {
super.onAttach(context); super.onAttach(context);
roomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfo"); // roomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfo");
} }
@Override public void roomInfoUpdate(RoomInfoResp resp){
public void onStart() { roomInfoResp = resp;
super.onStart(); upData();
if (!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this);
}
} }
@Override private void upData() {
public void onStop() {
super.onStop();
if (EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this);
}
}
@Override
protected RoomPresenter bindPresenter() {
return new RoomPresenter(this, getActivity());
}
@Override
protected void initData() {
parentFragment = (RoomFragment) getParentFragment(); parentFragment = (RoomFragment) getParentFragment();
if (getActivity() instanceof RoomActivity) { if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setvisibTop(true); ((RoomActivity) getActivity()).setvisibTop(true);
} }
// MvpPre.getCharmRank(roomInfoResp.getRoom_info().getRoom_id());
mKaraokeView = new KaraokeView(mBinding.lyricsView, null); mKaraokeView = new KaraokeView(mBinding.lyricsView, null);
mKaraokeView.setKaraokeEvent(new KaraokeEvent() { mKaraokeView.setKaraokeEvent(new KaraokeEvent() {
@Override @Override
@@ -130,24 +111,17 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
if (roomInfoResp.getSong_user_info() != null) { if (roomInfoResp.getSong_user_info() != null) {
// RoomFragment parentFragment = (RoomFragment) getParentFragment();
// if (parentFragment != null) {
if (roomInfoResp.getSong_user_info().getUser_id().equals(SpUtil.getUserId() + "")) { if (roomInfoResp.getSong_user_info().getUser_id().equals(SpUtil.getUserId() + "")) {
if (getActivity() instanceof RoomActivity) { if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setRoleType(3, -1); ((RoomActivity) getActivity()).setRoleType(3, -1);
((RoomActivity) getActivity()).switchMic(1); ((RoomActivity) getActivity()).switchMic(1);
} }
// parentFragment.setRoleType(3, -1);
// parentFragment.switchMic(1);
} else { } else {
if (getActivity() instanceof RoomActivity) { if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setRoleType(0, 0); ((RoomActivity) getActivity()).setRoleType(0, 0);
} }
// parentFragment.setRoleType(0, 0);
// parentFragment.switchMic(2);
} }
// }
AgoraManager.getInstance(getActivity()).stopMuisc(); AgoraManager.getInstance(getActivity()).stopMuisc();
if (roomInfoResp.getSong_user_info().getUser_id().equals(SpUtil.getUserId() + "")) { if (roomInfoResp.getSong_user_info().getUser_id().equals(SpUtil.getUserId() + "")) {
did = roomInfoResp.getSong_user_info().getDid(); did = roomInfoResp.getSong_user_info().getDid();
@@ -168,10 +142,6 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
pitBean.setUser_id(roomInfoResp.getSong_user_info().getUser_id()); pitBean.setUser_id(roomInfoResp.getSong_user_info().getUser_id());
pitBean.setCharm(roomInfoResp.getSong_user_info().getCharm()); pitBean.setCharm(roomInfoResp.getSong_user_info().getCharm());
roomDefaultWheatView.setData(pitBean); roomDefaultWheatView.setData(pitBean);
// RoomFragment parentFragment = (RoomFragment) getParentFragment();
// if (parentFragment != null) {
// parentFragment.mus();
// }
} else { } else {
RoomKtvWheatView roomDefaultWheatView = mBinding.muYc; RoomKtvWheatView roomDefaultWheatView = mBinding.muYc;
RoomPitBean pitBean = new RoomPitBean(); RoomPitBean pitBean = new RoomPitBean();
@@ -188,10 +158,6 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
RoomKtvWheatView roomDefaultWheatView = mBinding.muZc; RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
roomDefaultWheatView.setData(roomPitBean); roomDefaultWheatView.setData(roomPitBean);
if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) { if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
// if (parentFragment != null) {
// parentFragment.setRoleType(2, 9);
// parentFragment.switchMic(2);
// }
if (getActivity() instanceof RoomActivity) { if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setRoleType(2, 9); ((RoomActivity) getActivity()).setRoleType(2, 9);
@@ -202,10 +168,6 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
RoomKtvWheatView roomDefaultWheatView = mBinding.muJb; RoomKtvWheatView roomDefaultWheatView = mBinding.muJb;
roomDefaultWheatView.setData(roomPitBean); roomDefaultWheatView.setData(roomPitBean);
if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) { if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
// if (parentFragment != null) {
// parentFragment.setRoleType(2, 10);
// parentFragment.switchMic(2);
// }
if (getActivity() instanceof RoomActivity) { if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setRoleType(2, 10); ((RoomActivity) getActivity()).setRoleType(2, 10);
@@ -217,12 +179,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
} }
if (roomInfoResp.getSong_pit_list() != null && roomInfoResp.getSong_pit_list().size() > 0) { if (roomInfoResp.getSong_pit_list() != null && roomInfoResp.getSong_pit_list().size() > 0) {
adapter.setNewData(roomInfoResp.getSong_pit_list());
for (RoomPitBean roomPitBean : roomInfoResp.getSong_pit_list()) { for (RoomPitBean roomPitBean : roomInfoResp.getSong_pit_list()) {
if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) { if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
// if (parentFragment != null) {
// parentFragment.setRoleType(3, Integer.parseInt(roomPitBean.getPit_number() != null ? roomPitBean.getPit_number() : "99"));
// parentFragment.switchMic(2);
// }
if (getActivity() instanceof RoomActivity) { if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setRoleType(3, Integer.parseInt(roomPitBean.getPit_number() != null ? roomPitBean.getPit_number() : "99")); ((RoomActivity) getActivity()).setRoleType(3, Integer.parseInt(roomPitBean.getPit_number() != null ? roomPitBean.getPit_number() : "99"));
@@ -233,6 +192,34 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
} }
sv(); sv();
tzblChanged(); tzblChanged();
}
@Override
public void onStart() {
super.onStart();
if (!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this);
}
}
@Override
public void onStop() {
super.onStop();
}
@Override
protected RoomPresenter bindPresenter() {
return new RoomPresenter(this, getActivity());
}
@Override
protected void initData() {
} }
protected void tzblChanged() { protected void tzblChanged() {
@@ -335,9 +322,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
} }
}; };
mBinding.recyclerView.setAdapter(adapter); mBinding.recyclerView.setAdapter(adapter);
if (roomInfoResp.getSong_pit_list() != null && roomInfoResp.getSong_pit_list().size() > 0) {
adapter.setNewData(roomInfoResp.getSong_pit_list());
}
AgoraManager.getInstance(getActivity()).selectAudioTrack(1); AgoraManager.getInstance(getActivity()).selectAudioTrack(1);
isRotate = true; isRotate = true;
@@ -481,6 +466,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
super.onDestroy(); super.onDestroy();
endRotateAnimation(); endRotateAnimation();
// AgoraManager.getInstance(getActivity()).destroy(); // AgoraManager.getInstance(getActivity()).destroy();
if (EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this);
}
} }
//开始旋转 //开始旋转
@@ -551,263 +539,493 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
} }
} }
@Subscribe(threadMode = ThreadMode.MAIN) public void event1013(RoomMessageEvent messageEvent) {
public void roomInfoEvent(RoomMessageEvent messageEvent) { if (messageEvent.getText().getAction() == 3) {//下一首变化
boolean b = false; if (messageEvent.getText().getNextInfo() != null) {
RoomFragment parentFragment = (RoomFragment) getParentFragment(); mBinding.muXName.setText(messageEvent.getText().getNextInfo().getSong_name());
if (messageEvent.getMsgType() == 1013) { } else {
LogUtils.e("@@", messageEvent); mBinding.muXName.setText("暂无歌曲");
if (messageEvent.getText().getAction() == 3) {//下一首变化 }
if (messageEvent.getText().getNextInfo() != null) { } else if (messageEvent.getText().getAction() == 2) {//切歌
mBinding.muXName.setText(messageEvent.getText().getNextInfo().getSong_name()); if (messageEvent.getText().getSongInfo() != null) {
} else { musicSongBean = messageEvent.getText().getSongInfo();
mBinding.muXName.setText("暂无歌曲"); did = messageEvent.getText().getSongInfo().getDid();
} duration = messageEvent.getText().getSongInfo().getDuration();
} else if (messageEvent.getText().getAction() == 2) {//切歌 mBinding.muName.setText(messageEvent.getText().getSongInfo().getSong_name());
if (messageEvent.getText().getSongInfo() != null) { ImageUtils.loadHeadCC(messageEvent.getText().getSongInfo().getPoster(), mBinding.musicPoster);
musicSongBean = messageEvent.getText().getSongInfo(); ImageUtils.loadHeadCC(messageEvent.getText().getSongInfo().getPoster(), mBinding.muBj);
did = messageEvent.getText().getSongInfo().getDid(); RoomKtvWheatView roomDefaultWheatView = mBinding.muYc;
duration = messageEvent.getText().getSongInfo().getDuration(); RoomPitBean pitBean = new RoomPitBean();
mBinding.muName.setText(messageEvent.getText().getSongInfo().getSong_name()); pitBean.setPit_number("-1");
ImageUtils.loadHeadCC(messageEvent.getText().getSongInfo().getPoster(), mBinding.musicPoster); pitBean.setAvatar(messageEvent.getText().getSongInfo().getAvatar());
ImageUtils.loadHeadCC(messageEvent.getText().getSongInfo().getPoster(), mBinding.muBj); pitBean.setNickname(messageEvent.getText().getSongInfo().getNickname());
RoomKtvWheatView roomDefaultWheatView = mBinding.muYc; pitBean.setUser_id(messageEvent.getText().getSongInfo().getUser_id());
RoomPitBean pitBean = new RoomPitBean(); pitBean.setCharm(messageEvent.getText().getSongInfo().getCharm());
pitBean.setPit_number("-1"); roomDefaultWheatView.setData(pitBean);
pitBean.setAvatar(messageEvent.getText().getSongInfo().getAvatar()); roomInfoResp.setSong_user_info(musicSongBean);
pitBean.setNickname(messageEvent.getText().getSongInfo().getNickname());
pitBean.setUser_id(messageEvent.getText().getSongInfo().getUser_id());
pitBean.setCharm(messageEvent.getText().getSongInfo().getCharm());
roomDefaultWheatView.setData(pitBean);
roomInfoResp.setSong_user_info(musicSongBean);
if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "")) {
AgoraManager.getInstance(getActivity()).stopMuisc();
LogUtils.e("推送过来的code", messageEvent.getText().getSongInfo().getSong_code());
AgoraManager.getInstance(getActivity()).isPreload(Long.parseLong(messageEvent.getText().getSongInfo().getSong_code()), 1);
} else {
AgoraManager.getInstance(getActivity()).stopMuisc();
AgoraManager.getInstance(getActivity()).isPreload(Long.parseLong(messageEvent.getText().getSongInfo().getSong_code()), 2);
}
if (getActivity() instanceof RoomActivity) {
if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "")) { if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "")) {
AgoraManager.getInstance(getActivity()).stopMuisc();
LogUtils.e("推送过来的code", messageEvent.getText().getSongInfo().getSong_code()); ((RoomActivity) getActivity()).setRoleType(3, -1);
AgoraManager.getInstance(getActivity()).isPreload(Long.parseLong(messageEvent.getText().getSongInfo().getSong_code()), 1); ((RoomActivity) getActivity()).switchMic(1);
} else { } else {
AgoraManager.getInstance(getActivity()).stopMuisc(); if (mBinding.muZc.pitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
AgoraManager.getInstance(getActivity()).isPreload(Long.parseLong(messageEvent.getText().getSongInfo().getSong_code()), 2); ((RoomActivity) getActivity()).setRoleType(2, -1);
} ((RoomActivity) getActivity()).switchMic(2);
if (getActivity() instanceof RoomActivity) {
// if (parentFragment != null) {
if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "")) {
// parentFragment.setRoleType(3, -1);
// parentFragment.switchMic(1);
((RoomActivity) getActivity()).setRoleType(3, -1);
((RoomActivity) getActivity()).switchMic(1);
} else { } else {
if (mBinding.muZc.pitBean.getUser_id().equals(SpUtil.getUserId() + "")) { ((RoomActivity) getActivity()).setRoleType(0, 0);
// parentFragment.setRoleType(2, -1); ((RoomActivity) getActivity()).switchMic(2);
// parentFragment.switchMic(2);
((RoomActivity) getActivity()).setRoleType(2, -1);
((RoomActivity) getActivity()).switchMic(2);
} else {
// parentFragment.setRoleType(0, 0);
// parentFragment.switchMic(2);
((RoomActivity) getActivity()).setRoleType(0, 0);
((RoomActivity) getActivity()).switchMic(2);
}
} }
} }
// if (roomInfoResp.getUser_info().getIs_host() == 1 && roomInfoResp.getUser_info().getPit_number() == 9) {
// setVisibilityView(1);
// } else if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "") && roomInfoResp.getUser_info().getIs_host() == 1 && roomInfoResp.getUser_info().getPit_number() == 9) {
// setVisibilityView(1);
// } else if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "")) {
// setVisibilityView(2);
// } else if (roomInfoResp.getUser_info().getIs_host() == 1 && roomInfoResp.getUser_info().getPit_number() == 9) {
// setVisibilityView(1);
// } else {
// setVisibilityView(3);
// }
} else {
did = "";
mBinding.muName.setText("");
} }
if (messageEvent.getText().getNextInfo() != null) {
mBinding.muXName.setText(messageEvent.getText().getNextInfo().getSong_name());
} else {
mBinding.muXName.setText("");
}
// if (parentFragment != null) {
// parentFragment.mus();
// }
}
sv();
} else if (messageEvent.getMsgType() == 1003) {
if (messageEvent.getText().getPit_number().equals("9") || messageEvent.getText().getPit_number().equals("10")) {
RoomPitBean pitBean = new RoomPitBean();
pitBean.setPit_number(messageEvent.getText().getPit_number());
pitBean.setUser_id(messageEvent.getText().getFromUserInfo().getUser_id() + "");
pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
pitBean.setDress(messageEvent.getText().getFromUserInfo().getDress());
if (pitBean.getPit_number().equals("9")) {
RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
roomDefaultWheatView.setData(pitBean);
} else if (pitBean.getPit_number().equals("10")) {
RoomKtvWheatView roomDefaultWheatView = mBinding.muJb;
roomDefaultWheatView.setData(pitBean);
}
if (SpUtil.getUserId() == messageEvent.getText().getFromUserInfo().getUser_id()) {
b = true;
AgoraManager.getInstance(getActivity()).ClientRole(true);
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(false);
} else {
b = false;
}
if (parentFragment != null) {
parentFragment.updateWheatStatus(pitBean, Integer.parseInt(pitBean.getPit_number()), true, b);
}
} else { } else {
RoomPitBean pitBean = new RoomPitBean(); did = "";
pitBean.setPit_number(messageEvent.getText().getPit_number()); mBinding.muName.setText("");
pitBean.setUser_id(messageEvent.getText().getFromUserInfo().getUser_id() + "");
pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
pitBean.setDress(messageEvent.getText().getFromUserInfo().getDress());
roomInfoResp.getSong_pit_list().add(pitBean);
} }
adapter.setNewData(roomInfoResp.getSong_pit_list()); if (messageEvent.getText().getNextInfo() != null) {
sv(); mBinding.muXName.setText(messageEvent.getText().getNextInfo().getSong_name());
} else if (messageEvent.getMsgType() == 1004) { } else {
mBinding.muXName.setText("");
}
}
sv();
}
if (messageEvent.getText().getPit_number().equals("9") || messageEvent.getText().getPit_number().equals("10")) { public void event1003(RoomMessageEvent messageEvent){
RoomPitBean pitBean = new RoomPitBean(); boolean b = false;
pitBean.setPit_number(messageEvent.getText().getPit_number()); if (messageEvent.getText().getPit_number().equals("9") || messageEvent.getText().getPit_number().equals("10")) {
pitBean.setUser_id("");
pitBean.setAvatar(""); RoomPitBean pitBean = new RoomPitBean();
pitBean.setNickname(""); pitBean.setPit_number(messageEvent.getText().getPit_number());
pitBean.setSex(""); pitBean.setUser_id(messageEvent.getText().getFromUserInfo().getUser_id() + "");
pitBean.setCharm(""); pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
if (pitBean.getPit_number().equals("9")) { pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
RoomKtvWheatView roomDefaultWheatView = mBinding.muZc; pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
roomDefaultWheatView.setData(pitBean); pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
} else if (pitBean.getPit_number().equals("10")) { pitBean.setDress(messageEvent.getText().getFromUserInfo().getDress());
RoomKtvWheatView roomDefaultWheatView = mBinding.muJb;
roomDefaultWheatView.setData(pitBean); if (pitBean.getPit_number().equals("9")) {
} RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
if (SpUtil.getUserId() == messageEvent.getText().getFromUserInfo().getUser_id()) { roomDefaultWheatView.setData(pitBean);
b = true; } else if (pitBean.getPit_number().equals("10")) {
AgoraManager.getInstance(getActivity()).ClientRole(false); RoomKtvWheatView roomDefaultWheatView = mBinding.muJb;
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true); roomDefaultWheatView.setData(pitBean);
} else { }
b = false; if (SpUtil.getUserId() == messageEvent.getText().getFromUserInfo().getUser_id()) {
} b = true;
AgoraManager.getInstance(getActivity()).ClientRole(true);
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(false);
} else {
b = false;
}
if (parentFragment != null) {
parentFragment.updateWheatStatus(pitBean, Integer.parseInt(pitBean.getPit_number()), true, b);
}
} else {
RoomPitBean pitBean = new RoomPitBean();
pitBean.setPit_number(messageEvent.getText().getPit_number());
pitBean.setUser_id(messageEvent.getText().getFromUserInfo().getUser_id() + "");
pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
pitBean.setDress(messageEvent.getText().getFromUserInfo().getDress());
roomInfoResp.getSong_pit_list().add(pitBean);
}
adapter.setNewData(roomInfoResp.getSong_pit_list());
sv();
}
public void event1004(RoomMessageEvent messageEvent){
boolean b = false;
if (messageEvent.getText().getPit_number().equals("9") || messageEvent.getText().getPit_number().equals("10")) {
RoomPitBean pitBean = new RoomPitBean();
pitBean.setPit_number(messageEvent.getText().getPit_number());
pitBean.setUser_id("");
pitBean.setAvatar("");
pitBean.setNickname("");
pitBean.setSex("");
pitBean.setCharm("");
if (pitBean.getPit_number().equals("9")) {
RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
roomDefaultWheatView.setData(pitBean);
} else if (pitBean.getPit_number().equals("10")) {
RoomKtvWheatView roomDefaultWheatView = mBinding.muJb;
roomDefaultWheatView.setData(pitBean);
}
if (SpUtil.getUserId() == messageEvent.getText().getFromUserInfo().getUser_id()) {
b = true;
AgoraManager.getInstance(getActivity()).ClientRole(false);
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true);
} else {
b = false;
}
// AgoraManager.getInstance(getActivity()).setEnableAudio(b); // AgoraManager.getInstance(getActivity()).setEnableAudio(b);
if (parentFragment != null) { if (parentFragment != null) {
parentFragment.updateWheatStatus(pitBean, Integer.parseInt(messageEvent.getText().getPit_number()), false, b); parentFragment.updateWheatStatus(pitBean, Integer.parseInt(messageEvent.getText().getPit_number()), false, b);
}
} else {
for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
roomInfoResp.getSong_pit_list().remove(i);
break;
}
}
adapter.setNewData(roomInfoResp.getSong_pit_list());
}
sv();
} else if (messageEvent.getMsgType() == 1019) {
// RoomCharmRankBean charmRankBean=messageEvent.getText().getUserCharmList().get(0);
// RoomPitBean pitBean=mBinding.muYc.pitBean;
// pitBean.setCharm(charmRankBean.getCharm());
// mBinding.muYc.setData(pitBean);
LogUtils.e("1019", messageEvent);
// adapter.setNewData(messageEvent.getText().getUserCharmList());
} else if (messageEvent.getMsgType() == 1021) {
RoomPitBean pitBean = mBinding.muYc.pitBean;
pitBean.setCharm("0");
mBinding.muYc.setData(pitBean);
pitBean = mBinding.muZc.pitBean;
pitBean.setCharm("0");
mBinding.muZc.setData(pitBean);
pitBean = mBinding.muJb.pitBean;
pitBean.setCharm("0");
mBinding.muJb.setData(pitBean);
for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
roomInfoResp.getSong_pit_list().get(i).setCharm("0");
}
adapter.setNewData(roomInfoResp.getSong_pit_list());
} else if (messageEvent.getMsgType() == 1005) {
RoomPitBean pitBean = mBinding.muYc.pitBean;
if ((messageEvent.getText().getToUserInfo().getUser_id() + "").equals(pitBean.getUser_id())) {
pitBean.setCharm(messageEvent.getText().getToUserInfo().getCharm());
mBinding.muYc.setData(pitBean);
}
if ((messageEvent.getText().getToUserInfo().getUser_id() + "").equals(mBinding.muZc.pitBean.getUser_id())) {
mBinding.muZc.pitBean.setCharm(messageEvent.getText().getToUserInfo().getCharm());
mBinding.muZc.setData(mBinding.muZc.pitBean);
return;
}
if ((messageEvent.getText().getToUserInfo().getUser_id() + "").equals(mBinding.muJb.pitBean.getUser_id())) {
mBinding.muJb.pitBean.setCharm(messageEvent.getText().getToUserInfo().getCharm());
mBinding.muJb.setData(mBinding.muJb.pitBean);
return;
}
for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getToUserInfo().getUser_id() + "")) {
roomInfoResp.getSong_pit_list().get(i).setCharm(messageEvent.getText().getToUserInfo().getCharm());
}
}
adapter.setNewData(roomInfoResp.getSong_pit_list());
} else if (messageEvent.getMsgType() == 1035) {
RoomPitBean pitBean = mBinding.muZc.pitBean;
if (pitBean.getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
pitBean.setDress(messageEvent.getText().getFromUserInfo().getDress());
mBinding.muZc.setData(pitBean);
}
RoomPitBean pitBean1 = mBinding.muJb.pitBean;
if (pitBean1.getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
pitBean1.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
pitBean1.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
pitBean1.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
pitBean1.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
pitBean1.setDress(messageEvent.getText().getFromUserInfo().getDress());
mBinding.muJb.setData(pitBean1);
}
RoomPitBean pitBean2 = mBinding.muYc.pitBean;
if (pitBean2.getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
pitBean2.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
pitBean2.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
pitBean2.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
pitBean2.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
pitBean2.setDress(messageEvent.getText().getFromUserInfo().getDress());
mBinding.muYc.setData(pitBean2);
} }
} else {
for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) { for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) { if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
roomInfoResp.getSong_pit_list().get(i).setCharm(messageEvent.getText().getFromUserInfo().getCharm()); roomInfoResp.getSong_pit_list().remove(i);
roomInfoResp.getSong_pit_list().get(i).setAvatar(messageEvent.getText().getFromUserInfo().getAvatar()); break;
roomInfoResp.getSong_pit_list().get(i).setNickname(messageEvent.getText().getFromUserInfo().getNickname());
roomInfoResp.getSong_pit_list().get(i).setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
roomInfoResp.getSong_pit_list().get(i).setDress(messageEvent.getText().getFromUserInfo().getDress());
} }
} }
adapter.setNewData(roomInfoResp.getSong_pit_list()); adapter.setNewData(roomInfoResp.getSong_pit_list());
} }
sv();
} }
public void event1021(RoomMessageEvent messageEvent){
RoomPitBean pitBean = mBinding.muYc.pitBean;
pitBean.setCharm("0");
mBinding.muYc.setData(pitBean);
pitBean = mBinding.muZc.pitBean;
pitBean.setCharm("0");
mBinding.muZc.setData(pitBean);
pitBean = mBinding.muJb.pitBean;
pitBean.setCharm("0");
mBinding.muJb.setData(pitBean);
for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
roomInfoResp.getSong_pit_list().get(i).setCharm("0");
}
adapter.setNewData(roomInfoResp.getSong_pit_list());
}
public void event1005(RoomMessageEvent messageEvent){
RoomPitBean pitBean = mBinding.muYc.pitBean;
if ((messageEvent.getText().getToUserInfo().getUser_id() + "").equals(pitBean.getUser_id())) {
pitBean.setCharm(messageEvent.getText().getToUserInfo().getCharm());
mBinding.muYc.setData(pitBean);
}
if ((messageEvent.getText().getToUserInfo().getUser_id() + "").equals(mBinding.muZc.pitBean.getUser_id())) {
mBinding.muZc.pitBean.setCharm(messageEvent.getText().getToUserInfo().getCharm());
mBinding.muZc.setData(mBinding.muZc.pitBean);
return;
}
if ((messageEvent.getText().getToUserInfo().getUser_id() + "").equals(mBinding.muJb.pitBean.getUser_id())) {
mBinding.muJb.pitBean.setCharm(messageEvent.getText().getToUserInfo().getCharm());
mBinding.muJb.setData(mBinding.muJb.pitBean);
return;
}
for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getToUserInfo().getUser_id() + "")) {
roomInfoResp.getSong_pit_list().get(i).setCharm(messageEvent.getText().getToUserInfo().getCharm());
}
}
adapter.setNewData(roomInfoResp.getSong_pit_list());
}
public void event1035(RoomMessageEvent messageEvent){
RoomPitBean pitBean = mBinding.muZc.pitBean;
if (pitBean.getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
pitBean.setDress(messageEvent.getText().getFromUserInfo().getDress());
mBinding.muZc.setData(pitBean);
}
RoomPitBean pitBean1 = mBinding.muJb.pitBean;
if (pitBean1.getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
pitBean1.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
pitBean1.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
pitBean1.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
pitBean1.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
pitBean1.setDress(messageEvent.getText().getFromUserInfo().getDress());
mBinding.muJb.setData(pitBean1);
}
RoomPitBean pitBean2 = mBinding.muYc.pitBean;
if (pitBean2.getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
pitBean2.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
pitBean2.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
pitBean2.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
pitBean2.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
pitBean2.setDress(messageEvent.getText().getFromUserInfo().getDress());
mBinding.muYc.setData(pitBean2);
}
for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
roomInfoResp.getSong_pit_list().get(i).setCharm(messageEvent.getText().getFromUserInfo().getCharm());
roomInfoResp.getSong_pit_list().get(i).setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
roomInfoResp.getSong_pit_list().get(i).setNickname(messageEvent.getText().getFromUserInfo().getNickname());
roomInfoResp.getSong_pit_list().get(i).setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
roomInfoResp.getSong_pit_list().get(i).setDress(messageEvent.getText().getFromUserInfo().getDress());
}
}
adapter.setNewData(roomInfoResp.getSong_pit_list());
}
// public void roomInfoEvent(RoomMessageEvent messageEvent) {
// boolean b = false;
// RoomFragment parentFragment = (RoomFragment) getParentFragment();
// if (messageEvent.getMsgType() == 1013) {
// LogUtils.e("@@", messageEvent);
// if (messageEvent.getText().getAction() == 3) {//下一首变化
// if (messageEvent.getText().getNextInfo() != null) {
// mBinding.muXName.setText(messageEvent.getText().getNextInfo().getSong_name());
// } else {
// mBinding.muXName.setText("暂无歌曲");
// }
// } else if (messageEvent.getText().getAction() == 2) {//切歌
// if (messageEvent.getText().getSongInfo() != null) {
// musicSongBean = messageEvent.getText().getSongInfo();
// did = messageEvent.getText().getSongInfo().getDid();
// duration = messageEvent.getText().getSongInfo().getDuration();
// mBinding.muName.setText(messageEvent.getText().getSongInfo().getSong_name());
// ImageUtils.loadHeadCC(messageEvent.getText().getSongInfo().getPoster(), mBinding.musicPoster);
// ImageUtils.loadHeadCC(messageEvent.getText().getSongInfo().getPoster(), mBinding.muBj);
// RoomKtvWheatView roomDefaultWheatView = mBinding.muYc;
// RoomPitBean pitBean = new RoomPitBean();
// pitBean.setPit_number("-1");
// pitBean.setAvatar(messageEvent.getText().getSongInfo().getAvatar());
// pitBean.setNickname(messageEvent.getText().getSongInfo().getNickname());
// pitBean.setUser_id(messageEvent.getText().getSongInfo().getUser_id());
// pitBean.setCharm(messageEvent.getText().getSongInfo().getCharm());
// roomDefaultWheatView.setData(pitBean);
// roomInfoResp.setSong_user_info(musicSongBean);
//
// if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "")) {
// AgoraManager.getInstance(getActivity()).stopMuisc();
// LogUtils.e("推送过来的code", messageEvent.getText().getSongInfo().getSong_code());
// AgoraManager.getInstance(getActivity()).isPreload(Long.parseLong(messageEvent.getText().getSongInfo().getSong_code()), 1);
//
// } else {
// AgoraManager.getInstance(getActivity()).stopMuisc();
// AgoraManager.getInstance(getActivity()).isPreload(Long.parseLong(messageEvent.getText().getSongInfo().getSong_code()), 2);
// }
// if (getActivity() instanceof RoomActivity) {
//// if (parentFragment != null) {
// if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "")) {
//// parentFragment.setRoleType(3, -1);
//// parentFragment.switchMic(1);
//
// ((RoomActivity) getActivity()).setRoleType(3, -1);
// ((RoomActivity) getActivity()).switchMic(1);
//
// } else {
// if (mBinding.muZc.pitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
//// parentFragment.setRoleType(2, -1);
//// parentFragment.switchMic(2);
// ((RoomActivity) getActivity()).setRoleType(2, -1);
// ((RoomActivity) getActivity()).switchMic(2);
// } else {
//// parentFragment.setRoleType(0, 0);
//// parentFragment.switchMic(2);
// ((RoomActivity) getActivity()).setRoleType(0, 0);
// ((RoomActivity) getActivity()).switchMic(2);
// }
// }
// }
//
//// if (roomInfoResp.getUser_info().getIs_host() == 1 && roomInfoResp.getUser_info().getPit_number() == 9) {
//// setVisibilityView(1);
//// } else if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "") && roomInfoResp.getUser_info().getIs_host() == 1 && roomInfoResp.getUser_info().getPit_number() == 9) {
//// setVisibilityView(1);
//// } else if (messageEvent.getText().getSongInfo().getUser_id().equals(SpUtil.getUserId() + "")) {
//// setVisibilityView(2);
//// } else if (roomInfoResp.getUser_info().getIs_host() == 1 && roomInfoResp.getUser_info().getPit_number() == 9) {
//// setVisibilityView(1);
//// } else {
//// setVisibilityView(3);
//// }
//
// } else {
// did = "";
// mBinding.muName.setText("无");
// }
// if (messageEvent.getText().getNextInfo() != null) {
// mBinding.muXName.setText(messageEvent.getText().getNextInfo().getSong_name());
// } else {
// mBinding.muXName.setText("无");
// }
//// if (parentFragment != null) {
//// parentFragment.mus();
//// }
// }
// sv();
// } else if (messageEvent.getMsgType() == 1003) {
//
// if (messageEvent.getText().getPit_number().equals("9") || messageEvent.getText().getPit_number().equals("10")) {
//
// RoomPitBean pitBean = new RoomPitBean();
// pitBean.setPit_number(messageEvent.getText().getPit_number());
// pitBean.setUser_id(messageEvent.getText().getFromUserInfo().getUser_id() + "");
// pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
// pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
// pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
// pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
// pitBean.setDress(messageEvent.getText().getFromUserInfo().getDress());
//
// if (pitBean.getPit_number().equals("9")) {
// RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
// roomDefaultWheatView.setData(pitBean);
// } else if (pitBean.getPit_number().equals("10")) {
// RoomKtvWheatView roomDefaultWheatView = mBinding.muJb;
// roomDefaultWheatView.setData(pitBean);
// }
// if (SpUtil.getUserId() == messageEvent.getText().getFromUserInfo().getUser_id()) {
// b = true;
// AgoraManager.getInstance(getActivity()).ClientRole(true);
// AgoraManager.getInstance(getActivity()).muteLocalAudioStream(false);
// } else {
// b = false;
// }
// if (parentFragment != null) {
// parentFragment.updateWheatStatus(pitBean, Integer.parseInt(pitBean.getPit_number()), true, b);
// }
// } else {
// RoomPitBean pitBean = new RoomPitBean();
// pitBean.setPit_number(messageEvent.getText().getPit_number());
// pitBean.setUser_id(messageEvent.getText().getFromUserInfo().getUser_id() + "");
// pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
// pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
// pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
// pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
// pitBean.setDress(messageEvent.getText().getFromUserInfo().getDress());
// roomInfoResp.getSong_pit_list().add(pitBean);
// }
// adapter.setNewData(roomInfoResp.getSong_pit_list());
// sv();
// } else if (messageEvent.getMsgType() == 1004) {
//
// if (messageEvent.getText().getPit_number().equals("9") || messageEvent.getText().getPit_number().equals("10")) {
// RoomPitBean pitBean = new RoomPitBean();
// pitBean.setPit_number(messageEvent.getText().getPit_number());
// pitBean.setUser_id("");
// pitBean.setAvatar("");
// pitBean.setNickname("");
// pitBean.setSex("");
// pitBean.setCharm("");
// if (pitBean.getPit_number().equals("9")) {
// RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
// roomDefaultWheatView.setData(pitBean);
// } else if (pitBean.getPit_number().equals("10")) {
// RoomKtvWheatView roomDefaultWheatView = mBinding.muJb;
// roomDefaultWheatView.setData(pitBean);
// }
// if (SpUtil.getUserId() == messageEvent.getText().getFromUserInfo().getUser_id()) {
// b = true;
// AgoraManager.getInstance(getActivity()).ClientRole(false);
// AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true);
// } else {
// b = false;
// }
//// AgoraManager.getInstance(getActivity()).setEnableAudio(b);
// if (parentFragment != null) {
// parentFragment.updateWheatStatus(pitBean, Integer.parseInt(messageEvent.getText().getPit_number()), false, b);
// }
// } else {
// for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
// if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
// roomInfoResp.getSong_pit_list().remove(i);
// break;
// }
// }
// adapter.setNewData(roomInfoResp.getSong_pit_list());
// }
// sv();
// } else if (messageEvent.getMsgType() == 1019) {
//// RoomCharmRankBean charmRankBean=messageEvent.getText().getUserCharmList().get(0);
//// RoomPitBean pitBean=mBinding.muYc.pitBean;
//// pitBean.setCharm(charmRankBean.getCharm());
//// mBinding.muYc.setData(pitBean);
// LogUtils.e("1019", messageEvent);
//// adapter.setNewData(messageEvent.getText().getUserCharmList());
// } else if (messageEvent.getMsgType() == 1021) {
// RoomPitBean pitBean = mBinding.muYc.pitBean;
// pitBean.setCharm("0");
// mBinding.muYc.setData(pitBean);
// pitBean = mBinding.muZc.pitBean;
// pitBean.setCharm("0");
// mBinding.muZc.setData(pitBean);
// pitBean = mBinding.muJb.pitBean;
// pitBean.setCharm("0");
// mBinding.muJb.setData(pitBean);
//
// for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
// roomInfoResp.getSong_pit_list().get(i).setCharm("0");
// }
// adapter.setNewData(roomInfoResp.getSong_pit_list());
//
// } else if (messageEvent.getMsgType() == 1005) {
// RoomPitBean pitBean = mBinding.muYc.pitBean;
// if ((messageEvent.getText().getToUserInfo().getUser_id() + "").equals(pitBean.getUser_id())) {
// pitBean.setCharm(messageEvent.getText().getToUserInfo().getCharm());
// mBinding.muYc.setData(pitBean);
// }
//
// if ((messageEvent.getText().getToUserInfo().getUser_id() + "").equals(mBinding.muZc.pitBean.getUser_id())) {
// mBinding.muZc.pitBean.setCharm(messageEvent.getText().getToUserInfo().getCharm());
// mBinding.muZc.setData(mBinding.muZc.pitBean);
// return;
// }
// if ((messageEvent.getText().getToUserInfo().getUser_id() + "").equals(mBinding.muJb.pitBean.getUser_id())) {
// mBinding.muJb.pitBean.setCharm(messageEvent.getText().getToUserInfo().getCharm());
// mBinding.muJb.setData(mBinding.muJb.pitBean);
// return;
// }
// for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
// if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getToUserInfo().getUser_id() + "")) {
// roomInfoResp.getSong_pit_list().get(i).setCharm(messageEvent.getText().getToUserInfo().getCharm());
// }
// }
// adapter.setNewData(roomInfoResp.getSong_pit_list());
// } else if (messageEvent.getMsgType() == 1035) {
// RoomPitBean pitBean = mBinding.muZc.pitBean;
// if (pitBean.getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
// pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
// pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
// pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
// pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
// pitBean.setDress(messageEvent.getText().getFromUserInfo().getDress());
// mBinding.muZc.setData(pitBean);
// }
// RoomPitBean pitBean1 = mBinding.muJb.pitBean;
// if (pitBean1.getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
// pitBean1.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
// pitBean1.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
// pitBean1.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
// pitBean1.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
// pitBean1.setDress(messageEvent.getText().getFromUserInfo().getDress());
// mBinding.muJb.setData(pitBean1);
// }
// RoomPitBean pitBean2 = mBinding.muYc.pitBean;
// if (pitBean2.getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
// pitBean2.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
// pitBean2.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
// pitBean2.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
// pitBean2.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
// pitBean2.setDress(messageEvent.getText().getFromUserInfo().getDress());
// mBinding.muYc.setData(pitBean2);
// }
// for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++) {
// if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")) {
// roomInfoResp.getSong_pit_list().get(i).setCharm(messageEvent.getText().getFromUserInfo().getCharm());
// roomInfoResp.getSong_pit_list().get(i).setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
// roomInfoResp.getSong_pit_list().get(i).setNickname(messageEvent.getText().getFromUserInfo().getNickname());
// roomInfoResp.getSong_pit_list().get(i).setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
// roomInfoResp.getSong_pit_list().get(i).setDress(messageEvent.getText().getFromUserInfo().getDress());
// }
// }
// adapter.setNewData(roomInfoResp.getSong_pit_list());
// }
// }
@Override @Override
public void roomInfo(RoomInfoResp resp) { public void roomInfo(RoomInfoResp resp) {

View File

@@ -19,6 +19,7 @@ import android.util.Log;
import android.view.Gravity; import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.CompoundButton; import android.widget.CompoundButton;
@@ -27,6 +28,8 @@ import android.widget.PopupWindow;
import android.widget.Switch; import android.widget.Switch;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import com.blankj.utilcode.util.ObjectUtils; import com.blankj.utilcode.util.ObjectUtils;
@@ -52,8 +55,6 @@ import com.xscm.moduleutil.dialog.ConfirmDialog;
import com.xscm.moduleutil.event.RoomBeckoningEvent; import com.xscm.moduleutil.event.RoomBeckoningEvent;
import com.xscm.moduleutil.event.RoomOwnerLeaveEvent; import com.xscm.moduleutil.event.RoomOwnerLeaveEvent;
import com.xscm.moduleutil.event.RoomWheatEvent; import com.xscm.moduleutil.event.RoomWheatEvent;
import com.xscm.moduleutil.event.ShowOnWheatDialogEvent;
import com.xscm.moduleutil.event.UserDownWheatEvent;
import com.xscm.moduleutil.event.UserInfoShowEvent; import com.xscm.moduleutil.event.UserInfoShowEvent;
import com.xscm.moduleutil.listener.MessageListenerSingleton; import com.xscm.moduleutil.listener.MessageListenerSingleton;
import com.xscm.moduleutil.rtc.AgoraManager; import com.xscm.moduleutil.rtc.AgoraManager;
@@ -100,10 +101,10 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
private PopupWindow popupWindow; private PopupWindow popupWindow;
CountDownTimer mCountDownTimer; CountDownTimer mCountDownTimer;
CountDownTimer mCountDownTimersta; CountDownTimer mCountDownTimersta;
private RoomFragment parentFragment;
List<RoomPitBean> pitList ; List<RoomPitBean> pitList ;
public static SingSongFragment newInstance(RoomInfoResp roomInfo) { public static SingSongFragment newInstance() {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable("roomInfo", roomInfo);
SingSongFragment fragment = new SingSongFragment(); SingSongFragment fragment = new SingSongFragment();
fragment.setArguments(args); fragment.setArguments(args);
return fragment; return fragment;
@@ -112,10 +113,11 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
@Override @Override
public void initArgs(Bundle arguments) { public void initArgs(Bundle arguments) {
super.initArgs(arguments); super.initArgs(arguments);
roomInfoResp = (RoomInfoResp) arguments.getSerializable("roomInfo"); // roomInfoResp = (RoomInfoResp) arguments.getSerializable("roomInfo");
roomId = roomInfoResp == null ? "" : roomInfoResp.getRoom_info().getRoom_id(); // roomId = roomInfoResp == null ? "" : roomInfoResp.getRoom_info().getRoom_id();
} }
@Override @Override
protected SingSongPresenter bindPresenter() { protected SingSongPresenter bindPresenter() {
return new SingSongPresenter(this, getActivity()); return new SingSongPresenter(this, getActivity());
@@ -123,6 +125,10 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
@Override @Override
protected void initData() { protected void initData() {
upDtaView();
}
private void upDtaView() {
pitList= new ArrayList<>(); pitList= new ArrayList<>();
if (getActivity() instanceof RoomActivity) { if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setvisibTop(true); ((RoomActivity) getActivity()).setvisibTop(true);
@@ -130,26 +136,15 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
// 初始化 PopupWindow // 初始化 PopupWindow
initPopupWindow(); initPopupWindow();
isWhether(); isWhether();
parentFragment= (RoomFragment) getParentFragment();
tzblChanged();
}
private void initWheatLayout() {
if ( roomInfoRespPk==null|| roomInfoRespPk.getPk_info() == null){
for (int i=0;i<pitList.size();i++){
wheatLayoutSingManager.updateSingleWheat(roomInfoResp.getRoom_info().getPit_list().get(i),i+1);
}
}
// else {
// for (int i=0;i<pitList.size();i++){
// wheatLayoutManager1.updateSingleWheat(roomInfoResp.getRoom_info().getPit_list().get(i),i+1);
// }
//
// }
} }
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
/** /**
* 这是判断当前用户是否是麦上房主、管理员、主持,不在主持麦的都是不同用户 * 这是判断当前用户是否是麦上房主、管理员、主持,不在主持麦的都是不同用户
@@ -366,16 +361,6 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
} }
}); });
// List<RoomPitBean> pitList = new ArrayList<>();
// for (int i = 1; i <= 10; i++) {
// RoomPitBean pitBean = new RoomPitBean();
// pitBean.setPit_number("" + i);
// pitBean.setUser_id("0");
// pitBean.setCharm("");
// pitList.add(pitBean);
// }
// wheatLayoutSingManager.setWheatData(pitList);
// initWheatLayout();
if (!ObjectUtils.isEmpty(roomInfoResp.getRoom_info().getPit_list()) && roomInfoResp.getRoom_info().getPit_list().size() == 10) { if (!ObjectUtils.isEmpty(roomInfoResp.getRoom_info().getPit_list()) && roomInfoResp.getRoom_info().getPit_list().size() == 10) {
wheatLayoutSingManager.setWheatData(roomInfoResp.getRoom_info().getPit_list()); wheatLayoutSingManager.setWheatData(roomInfoResp.getRoom_info().getPit_list());
@@ -384,7 +369,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
} }
private void isWhether() { private void isWhether() {
if (roomInfoResp.getPk_info() == null) { if (roomInfoResp==null){
mBinding.flexboxLayout.setVisibility(View.VISIBLE); mBinding.flexboxLayout.setVisibility(View.VISIBLE);
mBinding.cl.setVisibility(View.GONE); mBinding.cl.setVisibility(View.GONE);
FlexboxLayout flexboxLayout = mBinding.flexboxLayout; FlexboxLayout flexboxLayout = mBinding.flexboxLayout;
@@ -432,26 +417,34 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
pitList.add(pitBean); pitList.add(pitBean);
} }
wheatLayoutSingManager.setWheatData(pitList); wheatLayoutSingManager.setWheatData(pitList);
}else {
if (roomInfoResp.getPk_info() == null) {
if (!ObjectUtils.isEmpty(roomInfoResp.getRoom_info().getPit_list()) && roomInfoResp.getRoom_info().getPit_list().size() == 10) {
wheatLayoutSingManager.setWheatData(roomInfoResp.getRoom_info().getPit_list()); if (!ObjectUtils.isEmpty(roomInfoResp.getRoom_info().getPit_list()) && roomInfoResp.getRoom_info().getPit_list().size() == 10) {
} wheatLayoutSingManager.setWheatData(roomInfoResp.getRoom_info().getPit_list());
}
// initWheatLayout(); // initWheatLayout();
} else { } else {
mBinding.flexboxLayout.setVisibility(View.GONE); mBinding.flexboxLayout.setVisibility(View.GONE);
mBinding.cl.setVisibility(View.VISIBLE); mBinding.cl.setVisibility(View.VISIBLE);
MvpPre.postRoomInfo(roomInfoResp.getPk_info().getPk_room_id(), roomInfoResp.getUser_info().getPit_number() + "", 1); MvpPre.postRoomInfo(roomInfoResp.getPk_info().getPk_room_id(), roomInfoResp.getUser_info().getPit_number() + "", 1);
}
if (roomInfoResp.getUser_info().getPit_number() != 9) {
mBinding.imMkf.setVisibility(GONE);
} else {
mBinding.imMkf.setVisibility(VISIBLE);
}
tzblChanged();
} }
mBinding.btSta.setOnClickListener(this::onClick); mBinding.btSta.setOnClickListener(this::onClick);
mBinding.btStop.setOnClickListener(this::onClick); mBinding.btStop.setOnClickListener(this::onClick);
mBinding.imMkf.setOnClickListener(this::onClick); mBinding.imMkf.setOnClickListener(this::onClick);
if (roomInfoResp.getUser_info().getPit_number() != 9) {
mBinding.imMkf.setVisibility(GONE);
} else {
mBinding.imMkf.setVisibility(VISIBLE);
}
} }
public void onWheatClicked(View ii) { public void onWheatClicked(View ii) {
@@ -533,7 +526,6 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
if (event.getUser_id().equals(roomInfoResp.getRoom_info().getPit_list().get(i).getUser_id())) { if (event.getUser_id().equals(roomInfoResp.getRoom_info().getPit_list().get(i).getUser_id())) {
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
list.add(roomInfoResp.getRoom_info().getPit_list().get(i).getEmchat_username()); list.add(roomInfoResp.getRoom_info().getPit_list().get(i).getEmchat_username());
quxiao(list);
break; break;
} }
} }
@@ -542,13 +534,12 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
updateWheatData(); updateWheatData();
} }
// TODO: 2025/3/28 取消订阅
private void quxiao(List<String> userIds) {
}
@Override @Override
public void roomInfoUpdate(RoomInfoResp resp) { public void roomInfoUpdate(RoomInfoResp resp) {
roomInfoResp = resp; roomInfoResp = resp;
roomId = roomInfoResp == null ? "" : roomInfoResp.getRoom_info().getRoom_id();
isWhether();
updateWheatData(); updateWheatData();
} }
@@ -576,21 +567,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
} }
} }
/**
* 用户下麦
*/
@Subscribe(threadMode = ThreadMode.MAIN)
public void subscribeMessages(UserDownWheatEvent event) {
pitNumber = null;
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onShowOnWheatDialogEvent(ShowOnWheatDialogEvent event) {
if (!isResumed()) {
return;
}
// MvpPre.checkShowOnWheatDlg(roomId);
}
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onSwitchPitEvent(RoomUpPitBean event) { public void onSwitchPitEvent(RoomUpPitBean event) {
@@ -997,185 +974,324 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
} }
} }
@Subscribe(threadMode = ThreadMode.MAIN) // @Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageReceived(RoomMessageEvent message) { // public void onMessageReceived(RoomMessageEvent message) {
RoomFragment parentFragment = (RoomFragment) getParentFragment(); // boolean b = false;
boolean b = false; //
// if (message.getMsgType() == 1003) {
if (message.getMsgType() == 1003) { // RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(Integer.parseInt(message.getText().getPit_number()) - 1);
RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(Integer.parseInt(message.getText().getPit_number()) - 1); // pitBean.setUser_id(message.getText().getFromUserInfo().getUser_id() + "");
pitBean.setUser_id(message.getText().getFromUserInfo().getUser_id() + ""); // pitBean.setAvatar(message.getText().getFromUserInfo().getAvatar());
pitBean.setAvatar(message.getText().getFromUserInfo().getAvatar()); // pitBean.setNickname(message.getText().getFromUserInfo().getNickname());
pitBean.setNickname(message.getText().getFromUserInfo().getNickname()); // pitBean.setSex(message.getText().getFromUserInfo().getSex() + "");
pitBean.setSex(message.getText().getFromUserInfo().getSex() + ""); // pitBean.setCharm(message.getText().getFromUserInfo().getCharm());
pitBean.setCharm(message.getText().getFromUserInfo().getCharm()); // pitBean.setDress(message.getText().getFromUserInfo().getDress());
pitBean.setDress(message.getText().getFromUserInfo().getDress()); // roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean);
roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean); //// if (roomInfoResp.getPk_info()==null) {
// if (roomInfoResp.getPk_info()==null) { // if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) { // wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number())); // } else {
} else { // wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
}
// }else {
// wheatLayoutManager.setWheatDataPk(roomInfoResp.getRoom_info().getPit_list(), 1);
// } // }
// 通知父 Fragment //// }else {
if (SpUtil.getUserId() == message.getText().getFromUserInfo().getUser_id()) { //// wheatLayoutManager.setWheatDataPk(roomInfoResp.getRoom_info().getPit_list(), 1);
b = true; //// }
AgoraManager.getInstance(getActivity()).ClientRole(true); // // 通知父 Fragment
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(false); // if (SpUtil.getUserId() == message.getText().getFromUserInfo().getUser_id()) {
} else { // b = true;
b = false; // AgoraManager.getInstance(getActivity()).ClientRole(true);
} // AgoraManager.getInstance(getActivity()).muteLocalAudioStream(false);
if (parentFragment != null) { // } else {
parentFragment.updateWheatStatus(pitBean, Integer.parseInt(message.getText().getPit_number()), true, b); // b = false;
} // }
} else if (message.getMsgType() == 1004) { // if (parentFragment != null) {
RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(Integer.parseInt(message.getText().getPit_number()) - 1); // parentFragment.updateWheatStatus(pitBean, Integer.parseInt(message.getText().getPit_number()), true, b);
pitBean.setUser_id(""); // }
pitBean.setAvatar(""); // } else if (message.getMsgType() == 1004) {
pitBean.setNickname(""); // RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(Integer.parseInt(message.getText().getPit_number()) - 1);
pitBean.setSex(""); // pitBean.setUser_id("");
pitBean.setCharm(""); // pitBean.setAvatar("");
pitBean.setDress(""); // pitBean.setNickname("");
roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean); // pitBean.setSex("");
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) { // pitBean.setCharm("");
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number())); // pitBean.setDress("");
} else { // roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean);
wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number())); // if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
} // wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
if (SpUtil.getUserId() == message.getText().getFromUserInfo().getUser_id()) { // } else {
b = true; // wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
AgoraManager.getInstance(getActivity()).ClientRole(false); // }
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true); // if (SpUtil.getUserId() == message.getText().getFromUserInfo().getUser_id()) {
} else { // b = true;
b = false; // AgoraManager.getInstance(getActivity()).ClientRole(false);
} // AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true);
// AgoraManager.getInstance(getActivity()).setEnableAudio(b); // } else {
if (parentFragment != null) { // b = false;
parentFragment.updateWheatStatus(pitBean, Integer.parseInt(message.getText().getPit_number()), false, b); // }
} //// AgoraManager.getInstance(getActivity()).setEnableAudio(b);
} else if (message.getMsgType() == 1005) { // if (parentFragment != null) {
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) { // parentFragment.updateWheatStatus(pitBean, Integer.parseInt(message.getText().getPit_number()), false, b);
for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) { // }
if (pitBean.getUser_id().equals(message.getText().getToUserInfo().getUser_id() + "")) { // } else if (message.getMsgType() == 1005) {
pitBean.setCharm(message.getText().getToUserInfo().getCharm()); // if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number())); // for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {
} // if (pitBean.getUser_id().equals(message.getText().getToUserInfo().getUser_id() + "")) {
} // pitBean.setCharm(message.getText().getToUserInfo().getCharm());
} else { // wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number()));
for (RoomPitBean pitBean : roomInfoRespPk.getRoom_info().getPit_list()) { // }
if (pitBean.getUser_id().equals(message.getText().getToUserInfo().getUser_id() + "")) { // }
pitBean.setCharm(message.getText().getToUserInfo().getCharm()); // } else {
wheatLayoutManager2.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number())); // for (RoomPitBean pitBean : roomInfoRespPk.getRoom_info().getPit_list()) {
} // if (pitBean.getUser_id().equals(message.getText().getToUserInfo().getUser_id() + "")) {
} // pitBean.setCharm(message.getText().getToUserInfo().getCharm());
// wheatLayoutManager2.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number()));
for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) { // }
if (pitBean.getUser_id().equals(message.getText().getToUserInfo().getUser_id() + "")) { // }
pitBean.setCharm(message.getText().getToUserInfo().getCharm()); //
wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number())); // for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {
} // if (pitBean.getUser_id().equals(message.getText().getToUserInfo().getUser_id() + "")) {
} // pitBean.setCharm(message.getText().getToUserInfo().getCharm());
} // wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number()));
} else if (message.getMsgType() == 1030) { // }
MvpPre.postRoomInfo(message.getRoomId(), roomInfoResp.getUser_info().getPit_number() + "", 3); // }
if (message.getText().getType() == 1) { // }
MvpPre.postRoomInfo(message.getText().getRoom_id(), roomInfoResp.getUser_info().getPit_number() + "", 1); // } else if (message.getMsgType() == 1030) {
if (message.getText().getRoom_id().equals(roomId)) { // MvpPre.postRoomInfo(message.getRoomId(), roomInfoResp.getUser_info().getPit_number() + "", 3);
mBinding.btSta.setVisibility(VISIBLE); // if (message.getText().getType() == 1) {
} else { // MvpPre.postRoomInfo(message.getText().getRoom_id(), roomInfoResp.getUser_info().getPit_number() + "", 1);
mBinding.btSta.setVisibility(INVISIBLE); // if (message.getText().getRoom_id().equals(roomId)) {
} // mBinding.btSta.setVisibility(VISIBLE);
// parentFragment.setRoleType(5, -11); // } else {
if (getActivity() instanceof RoomActivity) { // mBinding.btSta.setVisibility(INVISIBLE);
((RoomActivity) getActivity()).setRoleType(5, -11); // }
} //// parentFragment.setRoleType(5, -11);
} // if (getActivity() instanceof RoomActivity) {
} else if (message.getMsgType() == 1031) { // ((RoomActivity) getActivity()).setRoleType(5, -11);
countDownTime(Long.parseLong(message.getText().getPk_end_times()), 1); // }
mBinding.btSta.setVisibility(INVISIBLE); // }
} else if (message.getMsgType() == 1032) { // } else if (message.getMsgType() == 1031) {
// PkResultDialogFragment pkResultDialogFragment = new PkResultDialogFragment(requireContext(), message); // countDownTime(Long.parseLong(message.getText().getPk_end_times()), 1);
// pkResultDialogFragment.show(); // mBinding.btSta.setVisibility(INVISIBLE);
showCountDownDialog(requireContext(), message); // } else if (message.getMsgType() == 1032) {
ivitTop(message); //// PkResultDialogFragment pkResultDialogFragment = new PkResultDialogFragment(requireContext(), message);
// parentFragment.setRoleType(3, -11); //// pkResultDialogFragment.show();
if (getActivity() instanceof RoomActivity) { // showCountDownDialog(requireContext(), message);
((RoomActivity) getActivity()).setRoleType(3, -11); // ivitTop(message);
} //// parentFragment.setRoleType(3, -11);
} else if (message.getMsgType() == 1033) { // if (getActivity() instanceof RoomActivity) {
AgoraManager.getInstance(getContext()).leaveChannelEx(roomInfoRespPk.getRoom_info().getRoom_id(), SpUtil.getUserId()); // ((RoomActivity) getActivity()).setRoleType(3, -11);
MvpPre.postRoomInfo(roomId, "0", 2); // }
mBinding.imStart2.setVisibility(GONE); // } else if (message.getMsgType() == 1033) {
mBinding.imStart.setVisibility(GONE); // AgoraManager.getInstance(getContext()).leaveChannelEx(roomInfoRespPk.getRoom_info().getRoom_id(), SpUtil.getUserId());
// parentFragment.setRoleType(3, -11); // MvpPre.postRoomInfo(roomId, "0", 2);
if (getActivity() instanceof RoomActivity) { // mBinding.imStart2.setVisibility(GONE);
((RoomActivity) getActivity()).setRoleType(3, -11); // mBinding.imStart.setVisibility(GONE);
} //// parentFragment.setRoleType(3, -11);
roomInfoRespPk = null; // if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).setRoleType(3, -11);
} else if (message.getMsgType() == 1015) { // }
String roomIdA = message.getText().getRoom_id_a(); // roomInfoRespPk = null;
String roomIdB = message.getText().getRoom_id_b(); //
String createValueA = message.getText().getCreate_value_a(); // } else if (message.getMsgType() == 1015) {
String receiveValueB = message.getText().getReceive_value_b(); // String roomIdA = message.getText().getRoom_id_a();
// String roomIdB = message.getText().getRoom_id_b();
if (roomIdA.equals(roomId)) { // String createValueA = message.getText().getCreate_value_a();
// 当前 roomId 与 roomIdA 相同 // String receiveValueB = message.getText().getReceive_value_b();
mBinding.tvPkLeftValue.setText(createValueA); //
mBinding.tvPkRightValue.setText(receiveValueB); // if (roomIdA.equals(roomId)) {
mBinding.pkProgress.setAnimProgress(100f * Integer.parseInt(createValueA) / (Integer.parseInt(createValueA) + Integer.parseInt(receiveValueB))); // // 当前 roomId 与 roomIdA 相同
// mBinding.tvPkLeftValue.setText(createValueA);
} else if (roomIdB.equals(roomId)) { // mBinding.tvPkRightValue.setText(receiveValueB);
// 当前 roomId 与 roomIdB 相同 // mBinding.pkProgress.setAnimProgress(100f * Integer.parseInt(createValueA) / (Integer.parseInt(createValueA) + Integer.parseInt(receiveValueB)));
mBinding.tvPkLeftValue.setText(receiveValueB); //
mBinding.tvPkRightValue.setText(createValueA); // } else if (roomIdB.equals(roomId)) {
mBinding.pkProgress.setAnimProgress(100f * Integer.parseInt(receiveValueB) / (Integer.parseInt(createValueA) + Integer.parseInt(receiveValueB))); // // 当前 roomId 与 roomIdB 相同
// mBinding.tvPkLeftValue.setText(receiveValueB);
} // mBinding.tvPkRightValue.setText(createValueA);
} else if (message.getMsgType() == 125) { // mBinding.pkProgress.setAnimProgress(100f * Integer.parseInt(receiveValueB) / (Integer.parseInt(createValueA) + Integer.parseInt(receiveValueB)));
RoomMessageEvent.text text = com.blankj.utilcode.util.GsonUtils.fromJson(message.getText().getText(), RoomMessageEvent.text.class); //
if (text.getIs_mute() == 1) { // }
AgoraManager.getInstance(getContext()).ClientRole(false); // } else if (message.getMsgType() == 125) {
AgoraManager.getInstance(getContext()).muteLocalAudioStreamEx(false, SpUtil.getUserId()); // RoomMessageEvent.text text = com.blankj.utilcode.util.GsonUtils.fromJson(message.getText().getText(), RoomMessageEvent.text.class);
} else { // if (text.getIs_mute() == 1) {
AgoraManager.getInstance(getContext()).ClientRole(true); // AgoraManager.getInstance(getContext()).ClientRole(false);
AgoraManager.getInstance(getContext()).muteLocalAudioStreamEx(true, SpUtil.getUserId()); // AgoraManager.getInstance(getContext()).muteLocalAudioStreamEx(false, SpUtil.getUserId());
// } else {
} // AgoraManager.getInstance(getContext()).ClientRole(true);
} else if (message.getMsgType() == 1007) { // AgoraManager.getInstance(getContext()).muteLocalAudioStreamEx(true, SpUtil.getUserId());
roomInfoResp.getUser_info().setIs_host(1); //
} else if (message.getMsgType() == 1018) { // }
roomInfoResp.getUser_info().setIs_host(0); // } else if (message.getMsgType() == 1007) {
} else if (message.getMsgType() == 126) { // roomInfoResp.getUser_info().setIs_host(1);
AgoraManager.getInstance(getContext()).setLocalAudioEnabled(false, message.getText().getFromUserInfo().getUser_id() + ""); // } else if (message.getMsgType() == 1018) {
} else if (message.getMsgType() == 1021) { // roomInfoResp.getUser_info().setIs_host(0);
// } else if (message.getMsgType() == 126) {
// AgoraManager.getInstance(getContext()).setLocalAudioEnabled(false, message.getText().getFromUserInfo().getUser_id() + "");
// } else if (message.getMsgType() == 1021) {
// for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {
// pitBean.setCharm("0");
// wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number()));
// }
// } else if (message.getMsgType() == 1037) {
//// 对方想结束本次pk是否同意
// if (message.getText().getPit_number().equals("9") && message.getText().getFromUserInfo().getUser_id() == SpUtil.getUserId()) {
// queren();
// }
// } else if (message.getMsgType() == 1035) {
// for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {
// if (pitBean.getUser_id().equals(message.getText().getFromUserInfo().getUser_id() + "")) {
// pitBean.setCharm(message.getText().getFromUserInfo().getCharm());
// pitBean.setAvatar(message.getText().getFromUserInfo().getAvatar());
// pitBean.setNickname(message.getText().getFromUserInfo().getNickname());
// pitBean.setSex(message.getText().getFromUserInfo().getSex() + "");
// pitBean.setDress(message.getText().getFromUserInfo().getDress());
// wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number()));
// }
// }
//
// }
// }
///推送的下麦1003
public void event1003(RoomMessageEvent message){
boolean b = false;
RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(Integer.parseInt(message.getText().getPit_number()) - 1);
pitBean.setUser_id(message.getText().getFromUserInfo().getUser_id() + "");
pitBean.setAvatar(message.getText().getFromUserInfo().getAvatar());
pitBean.setNickname(message.getText().getFromUserInfo().getNickname());
pitBean.setSex(message.getText().getFromUserInfo().getSex() + "");
pitBean.setCharm(message.getText().getFromUserInfo().getCharm());
pitBean.setDress(message.getText().getFromUserInfo().getDress());
roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean);
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
} else {
wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
}
// 通知父 Fragment
if (SpUtil.getUserId() == message.getText().getFromUserInfo().getUser_id()) {
b = true;
AgoraManager.getInstance(getActivity()).ClientRole(true);
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(false);
} else {
b = false;
}
if (parentFragment != null) {
parentFragment.updateWheatStatus(pitBean, Integer.parseInt(message.getText().getPit_number()), true, b);
}
}
///1004
public void event1004(RoomMessageEvent message){
boolean b = false;
RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(Integer.parseInt(message.getText().getPit_number()) - 1);
pitBean.setUser_id("");
pitBean.setAvatar("");
pitBean.setNickname("");
pitBean.setSex("");
pitBean.setCharm("");
pitBean.setDress("");
roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean);
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
} else {
wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
}
if (SpUtil.getUserId() == message.getText().getFromUserInfo().getUser_id()) {
b = true;
AgoraManager.getInstance(getActivity()).ClientRole(false);
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true);
} else {
b = false;
}
if (parentFragment != null) {
parentFragment.updateWheatStatus(pitBean, Integer.parseInt(message.getText().getPit_number()), false, b);
}
}
///1005
public void event1005(RoomMessageEvent message){
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) { for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {
pitBean.setCharm("0"); if (pitBean.getUser_id().equals(message.getText().getToUserInfo().getUser_id() + "")) {
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number())); pitBean.setCharm(message.getText().getToUserInfo().getCharm());
}
} else if (message.getMsgType() == 1037) {
// 对方想结束本次pk是否同意
if (message.getText().getPit_number().equals("9") && message.getText().getFromUserInfo().getUser_id() == SpUtil.getUserId()) {
queren();
}
} else if (message.getMsgType() == 1035) {
for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {
if (pitBean.getUser_id().equals(message.getText().getFromUserInfo().getUser_id() + "")) {
pitBean.setCharm(message.getText().getFromUserInfo().getCharm());
pitBean.setAvatar(message.getText().getFromUserInfo().getAvatar());
pitBean.setNickname(message.getText().getFromUserInfo().getNickname());
pitBean.setSex(message.getText().getFromUserInfo().getSex() + "");
pitBean.setDress(message.getText().getFromUserInfo().getDress());
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number())); wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number()));
} }
} }
} else {
for (RoomPitBean pitBean : roomInfoRespPk.getRoom_info().getPit_list()) {
if (pitBean.getUser_id().equals(message.getText().getToUserInfo().getUser_id() + "")) {
pitBean.setCharm(message.getText().getToUserInfo().getCharm());
wheatLayoutManager2.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number()));
}
}
for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {
if (pitBean.getUser_id().equals(message.getText().getToUserInfo().getUser_id() + "")) {
pitBean.setCharm(message.getText().getToUserInfo().getCharm());
wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number()));
}
}
}
}
///1030
public void event1030(RoomMessageEvent message){
MvpPre.postRoomInfo(message.getRoomId(), roomInfoResp.getUser_info().getPit_number() + "", 3);
if (message.getText().getType() == 1) {
MvpPre.postRoomInfo(message.getText().getRoom_id(), roomInfoResp.getUser_info().getPit_number() + "", 1);
if (message.getText().getRoom_id().equals(roomId)) {
mBinding.btSta.setVisibility(VISIBLE);
} else {
mBinding.btSta.setVisibility(INVISIBLE);
}
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setRoleType(5, -11);
}
}
}
///1031
public void event1031(RoomMessageEvent message){
countDownTime(Long.parseLong(message.getText().getPk_end_times()), 1);
mBinding.btSta.setVisibility(INVISIBLE);
}
///1032
public void event1032(RoomMessageEvent message){
showCountDownDialog(requireContext(), message);
ivitTop(message);
}
///1033
public void event1033(RoomMessageEvent message){
AgoraManager.getInstance(getContext()).leaveChannelEx(roomInfoRespPk.getRoom_info().getRoom_id(), SpUtil.getUserId());
MvpPre.postRoomInfo(roomId, "0", 2);
mBinding.imStart2.setVisibility(GONE);
mBinding.imStart.setVisibility(GONE);
roomInfoRespPk = null;
}
///1037
public void event1037(RoomMessageEvent message){
if (message.getText().getPit_number().equals("9") && message.getText().getFromUserInfo().getUser_id() == SpUtil.getUserId()) {
queren();
} }
} }
///1015
public void event1015(RoomMessageEvent message){
String roomIdA = message.getText().getRoom_id_a();
String roomIdB = message.getText().getRoom_id_b();
String createValueA = message.getText().getCreate_value_a();
String receiveValueB = message.getText().getReceive_value_b();
if (roomIdA.equals(roomId)) {
// 当前 roomId 与 roomIdA 相同
mBinding.tvPkLeftValue.setText(createValueA);
mBinding.tvPkRightValue.setText(receiveValueB);
mBinding.pkProgress.setAnimProgress(100f * Integer.parseInt(createValueA) / (Integer.parseInt(createValueA) + Integer.parseInt(receiveValueB)));
} else if (roomIdB.equals(roomId)) {
// 当前 roomId 与 roomIdB 相同
mBinding.tvPkLeftValue.setText(receiveValueB);
mBinding.tvPkRightValue.setText(createValueA);
mBinding.pkProgress.setAnimProgress(100f * Integer.parseInt(receiveValueB) / (Integer.parseInt(createValueA) + Integer.parseInt(receiveValueB)));
}
}
private void queren() { private void queren() {
// 创建并显示确认对话框 // 创建并显示确认对话框
new ConfirmDialog(getActivity(), new ConfirmDialog(getActivity(),
@@ -1326,6 +1442,21 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
@Override @Override
public void onDestroyView() { public void onDestroyView() {
super.onDestroyView(); super.onDestroyView();
releaseCountDownTimer();
wheatLayoutSingManager.release();
wheatLayoutManager1.clear();
wheatLayoutManager2.clear();
mBinding.flexboxLayout.removeAllViews();
mBinding.flexboxLayout2.removeAllViews();
}
@Override
public void onDestroy() {
super.onDestroy();
releaseCountDownTimer();
wheatLayoutSingManager.release();
wheatLayoutManager1.clear();
wheatLayoutManager2.clear();
mBinding.flexboxLayout.removeAllViews(); mBinding.flexboxLayout.removeAllViews();
mBinding.flexboxLayout2.removeAllViews(); mBinding.flexboxLayout2.removeAllViews();
} }

View File

@@ -49,6 +49,7 @@
android:layout_marginTop="@dimen/dp_50" android:layout_marginTop="@dimen/dp_50"
android:clipChildren="false" android:clipChildren="false"
android:clipToPadding="false" android:clipToPadding="false"
android:elevation="2dp"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@@ -57,6 +58,8 @@
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_15" android:layout_marginBottom="@dimen/dp_15"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_constraintBottom_toTopOf="@+id/ll_bottom" app:layout_constraintBottom_toTopOf="@+id/ll_bottom"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View File

@@ -23,6 +23,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
android:elevation="5dp"
/> />
<!-- <com.xscm.moduleutil.widget.RoomMessageInputMenu--> <!-- <com.xscm.moduleutil.widget.RoomMessageInputMenu-->

View File

@@ -70,7 +70,6 @@
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:layout_marginTop="@dimen/dp_31" android:layout_marginTop="@dimen/dp_31"
android:fontFamily="@font/youshebiaotihei" android:fontFamily="@font/youshebiaotihei"
android:text="亲密拍"
android:textColor="@color/color_0DFFB9" android:textColor="@color/color_0DFFB9"
android:textSize="@dimen/sp_24" /> android:textSize="@dimen/sp_24" />
@@ -80,9 +79,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:layout_marginStart="@dimen/dp_40" android:layout_marginStart="@dimen/dp_40"
android:layout_toRightOf="@+id/qinmi" android:layout_toEndOf="@+id/qinmi"
android:fontFamily="@font/youshebiaotihei" android:fontFamily="@font/youshebiaotihei"
android:text="真爱拍"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_16" /> android:textSize="@dimen/sp_16" />
</RelativeLayout> </RelativeLayout>
@@ -493,13 +491,14 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<ViewStub <!-- <ViewStub-->
android:id="@+id/stub_buttons" <!-- android:id="@+id/stub_buttons"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:layout="@layout/top_overlay_buttons" <!-- android:layout="@layout/top_overlay_buttons"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintTop_toTopOf="parent" /> <!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- android:visibility="gone"/>-->
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -320,9 +320,13 @@
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
android:clickable="true"
app:layout_constraintStart_toEndOf="@+id/cl_bj" app:layout_constraintStart_toEndOf="@+id/cl_bj"
app:room_wheat_number="9" /> android:translationZ="10dp"
app:room_wheat_number="9"
android:elevation="10dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"/>
<com.xscm.moduleutil.widget.RoomKtvWheatView <com.xscm.moduleutil.widget.RoomKtvWheatView
android:id="@+id/mu_jb" android:id="@+id/mu_jb"

View File

@@ -26,13 +26,13 @@
app:alignItems="flex_start" app:alignItems="flex_start"
/> />
<ViewStub <!-- <ViewStub-->
android:id="@+id/stub_buttons" <!-- android:id="@+id/stub_buttons"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:layout="@layout/top_overlay_buttons" <!-- android:layout="@layout/top_overlay_buttons"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintTop_toTopOf="parent" /> <!-- app:layout_constraintTop_toTopOf="parent" />-->
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl" android:id="@+id/cl"

View File

@@ -5,6 +5,7 @@
> >
<RelativeLayout <RelativeLayout
android:id="@+id/rl_top"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clipChildren="false" android:clipChildren="false"
@@ -229,6 +230,7 @@
android:layout_marginTop="@dimen/dp_50" android:layout_marginTop="@dimen/dp_50"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:layout="@layout/top_overlay_buttons" android:layout="@layout/top_overlay_buttons"
android:visibility="gone"
/> />
</RelativeLayout> </RelativeLayout>