From b90d1c0c98d0c2d8d78d473304593981fcae5948 Mon Sep 17 00:00:00 2001 From: lzl <1239365383@qq.com> Date: Sat, 6 Dec 2025 16:49:23 +0800 Subject: [PATCH] 66 1 --- .../moduleutil/base/CommonAppContext.java | 28 ++++---- .../xscm/moduleutil/http/RetrofitClient.java | 12 ++++ .../com/xscm/modulemain/BaseMvpActivity.java | 71 +++++++++++-------- .../room/fragment/RankingChildFragment.java | 23 ++++-- .../xscm/modulemain/manager/RoomManager.java | 3 +- .../res/layout/activity_password_login.xml | 2 +- 6 files changed, 87 insertions(+), 52 deletions(-) diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java b/BaseModule/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java index a0f0a00c..4c6614b6 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java @@ -161,7 +161,7 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio //设置mqtt环境 false 测试环境 true 正式环境 // ExternalResConstants.INSTANCE.setIS_MQTT_RELEASE(false); //设置http环境 false 测试环境 true 正式环境 - ExternalResConstants.INSTANCE.setIS_HTTP_RELEASE(false); + ExternalResConstants.INSTANCE.setIS_HTTP_RELEASE(true); currentEnvironment = ExternalResConstants.INSTANCE.HTTP_PATH(); initialization(); @@ -438,24 +438,12 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio if (SpUtil.isAgreePolicy()) { checkInEmulator(); // UtilConfig.checkInEmulator(); - AgoraManager.getInstance(); - MessageListenerSingleton.getInstance(); - CrashReport.initCrashReport(this, "b45883f58f", true);/*bugly初始化*/ -// // 启动 MQTT 服务 -// Intent mqttServiceIntent = new Intent(this, MyMqttService.class); -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { -// startForegroundService(mqttServiceIntent); -// } else { -// startService(mqttServiceIntent); -// } -// mqttConnect=MqttConnect.getInstance(this, currentEnvironment.getMqttUrl(),"android-"+ MqttClient.generateClientId()); -// mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.101.98","android-"+ MqttClient.generateClientId()); -// mqttConnect.mqttClient(); + CrashReport.initCrashReport(this, "b45883f58f", true);/*bugly初始化*/ // 每次启动应用时重置状态 SpUtil.getInstance().setBooleanValue("youth_model_shown", false); - startInitSdk(); + // 初始化(通常在Application或Activity的onCreate中) CosUploadManager.getInstance(CommonAppContext.getInstance()); } @@ -527,9 +515,12 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio public void upMqtt(){ if (mqttConnect == null){ mqttConnect=MqttConnect.getInstance(this, currentEnvironment.getMqttUrl(),"android-"+ MqttClient.generateClientId()); -// mqttConnect=MqttConnect.getInstance(this,"tcp://1.13.101.98","android-"+ MqttClient.generateClientId()); mqttConnect.mqttClient(); } + + AgoraManager.getInstance(); + MessageListenerSingleton.getInstance(); + startInitSdk(); } @Override @@ -764,6 +755,11 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio // 每次启动应用时重置状态 SpUtil.setBooleanValue("youth_model_shown", false); + if (mqttConnect != null){ + mqttConnect.close(); + } + + // 发送广播通知所有Activity刷新状态 Intent refreshIntent = new Intent("com.xscm.moduleutil.ACTION_USER_LOGOUT"); sendBroadcast(refreshIntent); diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java b/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java index 3e9c2ace..8ce356b5 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java @@ -74,6 +74,15 @@ public class RetrofitClient { boolean isNetworkAvailable = checkNetworkConnection(); // 实现这个方法来检查网络状态 String cacheControl = isNetworkAvailable ? "max-age=0" : "only-if-cached, max-stale=86400"; + private JoinRoomLoadListener joinRoomLoadListener; + + public interface JoinRoomLoadListener { + void onJoinRoomLoad(String result); + } + public void setJoinRoomLoadListener(JoinRoomLoadListener joinRoomLoadListener) { + this.joinRoomLoadListener = joinRoomLoadListener; + } + private boolean checkNetworkConnection() { ConnectivityManager connectivityManager = (ConnectivityManager) CommonAppContext.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); @@ -2248,6 +2257,9 @@ public class RetrofitClient { } } else if (roomInfoRespBaseModel.getCode() == 0) { ToastUtils.showShort(roomInfoRespBaseModel.getMsg()); + if (joinRoomLoadListener != null){ + joinRoomLoadListener.onJoinRoomLoad(roomInfoRespBaseModel.getMsg()); + } }else if (roomInfoRespBaseModel.getCode() == 202){ observer.onNext(roomInfoRespBaseModel.getData()); } else { diff --git a/MainModule/src/main/java/com/xscm/modulemain/BaseMvpActivity.java b/MainModule/src/main/java/com/xscm/modulemain/BaseMvpActivity.java index ebcea95d..d522b1c5 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/BaseMvpActivity.java +++ b/MainModule/src/main/java/com/xscm/modulemain/BaseMvpActivity.java @@ -43,6 +43,7 @@ import com.xscm.modulemain.activity.WebViewActivity; import com.xscm.modulemain.activity.main.activity.MainActivity; import com.xscm.modulemain.activity.room.activity.RoomActivity; import com.xscm.modulemain.activity.user.activity.HeartCpActivity; +import com.xscm.modulemain.activity.user.activity.MyRoomActivity; import com.xscm.modulemain.manager.RoomManager; import com.xscm.moduleutil.BaseEvent; import com.xscm.moduleutil.R; @@ -122,11 +123,13 @@ public abstract class BaseMvpActivity

{ + if (mThis instanceof MainActivity) { + ((MainActivity) mThis).isShowLoading(false); + } else if (mThis instanceof MyRoomActivity) { + ((MyRoomActivity) mThis).isShowLoading(false); + } + }); + } @Override @@ -196,19 +209,19 @@ public abstract class BaseMvpActivity

0){ - for (int i = 0; i 0) { + for (int i = 0; i < event.getGift_user_data().size(); i++) // 创建自定义消息 - MessageListenerSingleton.getInstance().sendCustomC2CMessage(130,cpTypeJson, + MessageListenerSingleton.getInstance().sendCustomC2CMessage(130, cpTypeJson, event.getGift_user_data().get(i).getUser_id() ); } - }else if (event.getCp_type().getCp_type() == 2) { - if (event.getGift_user_data()!=null && event.getGift_user_data().size()>0){ + } else if (event.getCp_type().getCp_type() == 2) { + if (event.getGift_user_data() != null && event.getGift_user_data().size() > 0) { for (int i = 0; i < event.getGift_user_data().size(); i++) // 创建自定义消息 - MessageListenerSingleton.getInstance().sendCustomC2CMessage(131,cpTypeJson, - event.getGift_user_data().get(i).getUser_id() + MessageListenerSingleton.getInstance().sendCustomC2CMessage(131, cpTypeJson, + event.getGift_user_data().get(i).getUser_id() ); } } @@ -216,13 +229,13 @@ public abstract class BaseMvpActivity

{ - if (type==1) { + if (type == 1) { // 点击“确认”按钮时执行删除操作 RetrofitClient.getInstance().cpGiveGift(userId, giftid, roomId, new BaseObserver() { @Override @@ -331,23 +344,23 @@ public abstract class BaseMvpActivity

{ // 点击“取消”按钮时什么都不做 - }, false,0).show(); + }, false, 0).show(); } @@ -1081,7 +1094,7 @@ public abstract class BaseMvpActivity

item, LinearLayout llContainer) { + // 1. 基础判空:容器/数据为空直接返回 + if (llContainer == null || item == null || item.isEmpty()) { + return; + } + // 2. 检查 Fragment 状态 + 获取有效 Context + Context context = null; + // 检查 Fragment 是否还附加在 Activity 上 + if (isAdded() && getContext() != null) { + context = getContext(); // 非空校验,避免隐性空指针 + } else { + // 兜底:如果 Context 为空,直接返回(避免后续崩溃) + return; + } + List images = item; // 获取图片列表 for (String url : images) { if (url.contains("http")) { - ImageView imageView1 = new ImageView(Application.getInstance()); + ImageView imageView1 = new ImageView(context); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57), getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15) @@ -248,7 +263,7 @@ public class RankingChildFragment extends BaseMvpFragment { // 点击“确认”按钮时执行删除操作 -// MvpPre.deleteComment(String.valueOf(commentId)); - fetchRoomDataAndEnter(ActivityUtils.getTopActivity(),roomId,"",taskId); + fetchAndJoinRoom(ActivityUtils.getTopActivity(),roomId,"",taskId); }, v -> { // 点击“取消”按钮时什么都不做 diff --git a/app/src/main/res/layout/activity_password_login.xml b/app/src/main/res/layout/activity_password_login.xml index 8b307b38..dfc0c770 100644 --- a/app/src/main/res/layout/activity_password_login.xml +++ b/app/src/main/res/layout/activity_password_login.xml @@ -339,7 +339,7 @@ android:layout_width="@dimen/dp_15" android:layout_height="@dimen/dp_15" android:layout_marginEnd="@dimen/dp_5" - android:checked="true" + android:checked="false" android:background="@drawable/selector_login_agreement" android:button="@null" />