2 Commits e8e558a6ce ... 220bbf5bca

Author SHA1 Message Date
  donggaosheng 220bbf5bca 崩溃问题修复 3 days ago
  donggaosheng a2a2894069 tijiao 4 days ago

+ 1 - 6
app/src/main/java/core/ui/activity/BaseActivity.java

@@ -1,6 +1,5 @@
 package core.ui.activity;
 
-import android.content.pm.ActivityInfo;
 import android.graphics.Color;
 import android.os.Bundle;
 import android.view.View;
@@ -10,16 +9,12 @@ import androidx.appcompat.app.AppCompatActivity;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.viewbinding.ViewBinding;
 
-import com.blankj.utilcode.util.LogUtils;
 import com.hikvision.dmb.display.InfoDisplayApi;
 
 import core.ui.common.AbsUIDelegate;
 import core.ui.common.UIDelegateImpl;
 import core.util.ScreenAdapter;
 import io.reactivex.rxjava3.disposables.Disposable;
-import xn.xxp.room.RoomTool;
-import xn.xxp.room.bean.DeviceConfig;
-import xn.xxp.room.dao.DeviceConfigDao;
 
 public abstract class BaseActivity<VB extends ViewBinding> extends AppCompatActivity {
 
@@ -32,7 +27,7 @@ public abstract class BaseActivity<VB extends ViewBinding> extends AppCompatActi
             InfoDisplayApi.setScreenRotate(2);
         }
         super.onCreate(savedInstanceState);
-        //ScreenAdapter.INSTANCE.setCustomDensity(this);
+       // ScreenAdapter.INSTANCE.setCustomDensity(this);
         uiDelegate = AbsUIDelegate.Companion.create();
         configImmersiveMode();
         binding = createViewBinding();

+ 2 - 2
app/src/main/java/http/config/ConfigFactory.kt

@@ -15,10 +15,10 @@
 //            .build()
 //
 //        val buildReleaseConfig = ConfigParam.Builder()
-//            .baseUrl("http://172.16.0.65/api/")
+//            .baseUrl("http://172.21.0.2/api/")
 //            .signInCheckBaseUrl("http://192.168.251.2:9015/")
 //            .httpStrategy(HttpConfig.HTTP_STRATEGY_Retrofit)
-//            .mqttServerUri("tcp://172.16.0.65:31072")
+//            .mqttServerUri("tcp://172.21.0.2:31072")
 //            .mqttUName("mqtt")
 //            .mqttUPwd("mqtt@zd1883")
 //            .build()

+ 2 - 2
app/src/main/java/xn/xxp/home/setting/SettingActivity.java

@@ -128,9 +128,9 @@ public class SettingActivity extends AppCompatActivity {
             });
 
             binding.testBaseUrlBT.setOnClickListener(v -> binding.httpUriET.setText("http://192.168.1.8/api/"));
-            binding.xnBaseUrlBT.setOnClickListener(v -> binding.httpUriET.setText("http://172.16.0.65/api/"));
+            binding.xnBaseUrlBT.setOnClickListener(v -> binding.httpUriET.setText("http://172.21.0.2/api/"));
             binding.testMqttBT.setOnClickListener(v -> binding.mqttUriET.setText("tcp://192.168.1.8:1883"));
-            binding.xnMqttBT.setOnClickListener(v -> binding.mqttUriET.setText("tcp://172.16.0.65:31072"));
+            binding.xnMqttBT.setOnClickListener(v -> binding.mqttUriET.setText("tcp://172.21.0.2:31072"));
         } catch (Exception e) {
             LogUtils.e(Log.getStackTraceString(e));
         }

+ 1 - 1
app/src/main/java/xn/xxp/home/sign/SafetyCheckFragment.kt

@@ -185,7 +185,7 @@ class SafetyCheckFragment :
             .logger(loggers(logcat(), fileLogger(requireActivity())))
             .build()
          // 👇 加这一行:旋转预览视图,解决前置摄像头上下颠倒
-         //viewBinding.cameraView.rotation = 180f
+         viewBinding.cameraView.rotation = 180f
 
         // 开始检测
         viewBinding.startCheck.setOnClickListener {

+ 5 - 2
app/src/main/java/xn/xxp/home/window/WindowFragment.java

@@ -14,6 +14,7 @@ import androidx.annotation.Nullable;
 import androidx.core.content.ContextCompat;
 import androidx.recyclerview.widget.LinearLayoutManager;
 
+import com.blankj.utilcode.util.ActivityUtils;
 import com.blankj.utilcode.util.LogUtils;
 import com.blankj.utilcode.util.ThreadUtils;
 import com.bumptech.glide.Glide;
@@ -37,6 +38,7 @@ import xn.xxp.mqtt.event.UpdateUiEvent;
 import xn.xxp.room.RoomTool;
 import xn.xxp.room.bean.DeviceConfig;
 import xn.xxp.room.bean.LabConfig;
+import xn.xxp.HomeActivity;
 import xn.xxp.utils.Constants;
 import xn.xxp.utils.QrTool;
 import xn.xxp.utils.Tool;
@@ -65,8 +67,9 @@ public class WindowFragment extends RcBaseFragment<FragmentWindowBinding> {
 
     private void initData() {
         if (null == LabApp.laboratory) {
-            showToast("暂无实验室信息,即将重新获取");
-            Tool.INSTANCE.reStartApp("暂无实验室信息,即将重新获取");
+            android.util.Log.e("WindowFragment", "=== initData: LabApp.laboratory is null, redirect to HomeActivity");
+            showToast("暂无实验室信息,请重新进入");
+            ActivityUtils.startActivity(HomeActivity.class);
             return;
         }
         initLaboratoryInfo(LabApp.laboratory);

+ 38 - 11
app/src/main/java/xn/xxp/main/MainActivity.kt

@@ -59,6 +59,7 @@ import xn.xxp.room.bean.NoticeSummary
 import xn.xxp.utils.QrTool
 import xn.xxp.utils.Tool
 import xn.xxp.widget.ITitleBar
+import xn.xxp.HomeActivity
 import xn.xxp.widget.NavViewCompat
 import xn.xxp.widget.WaringDialog
 import java.math.BigDecimal
@@ -123,9 +124,10 @@ class MainActivity :
 //    }
     private var authType: AuthType = AuthType.FACE
     override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-//        mSerialPortHelper.bindService()
-        authType = (intent.getSerializableExtra("authType") as AuthType?)!!
+        android.util.Log.e("MainActivity", "=== onCreate start, intent authType=${intent.getSerializableExtra("authType")}")
+        super.onCreate(savedInstanceState) // 注意:super.onCreate 内部会调用 initData(),此时 authType 尚未从 intent 赋值
+        authType = (intent.getSerializableExtra("authType") as AuthType?) ?: AuthType.FACE
+        android.util.Log.e("MainActivity", "=== onCreate end, authType=$authType")
         // 实验室文化图 > 文化图
         val message = mBannerHandler.obtainMessage(WHAT_WORKBENCH)
         mBannerHandler.sendMessageDelayed(message, BANNER_TIME_WORKBENCH)
@@ -423,19 +425,44 @@ class MainActivity :
     }
 
     lateinit var labConfig: LabConfig
+
     override fun initData() {
-        Tool.INSTANCE.openDoor(LabApp.userVo.userId,authType)
-        labConfig = RoomTool.getInstance().labConfigDao().labConfig
+        android.util.Log.e("MainActivity", "=== initData called, LabApp.userVo=${LabApp.userVo}")
+        // 【改动1】登录态兜底:进程被杀重建 / 后端502导致 userVo 丢失
+        val userVo = LabApp.userVo
+        if (userVo == null) {
+            showToast("登录信息已失效,请重新验证")
+            val intent = Intent(this, HomeActivity::class.java)
+            intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
+            startActivity(intent)
+            finish()
+            return
+        }
+
+        // 【改动2】原来第一行,用已判空的 userVo
+        Tool.INSTANCE.openDoor(userVo.userId, authType)
+
+        val labConfigRaw = RoomTool.getInstance().labConfigDao().labConfig
+        android.util.Log.e("MainActivity", "=== labConfig from Room = $labConfigRaw")
+        labConfig = labConfigRaw
         val laboratoryVo = LabApp.laboratory
-        if (null == laboratoryVo || null == labConfig) {
-            showToast("暂无实验室信息,即将重新获取")
-            Tool.INSTANCE.reStartApp("暂无实验室信息,即将重新获取")
+        android.util.Log.e("MainActivity", "=== LabApp.laboratory = $laboratoryVo")
+        if (null == laboratoryVo) {
+            showToast("暂无实验室信息,请重新进入")
+            val intent = Intent(this, HomeActivity::class.java)
+            intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
+            startActivity(intent)
+            finish()
             return
         }
         binding.titleBar.setTitleInfoFromSp()
 
+        android.util.Log.e("MainActivity", "=== initLaboratoryInfo start")
         initLaboratoryInfo(laboratoryVo)
+        android.util.Log.e("MainActivity", "=== initLaboratoryInfo end")
+
         // 开门按钮显示控制
+        android.util.Log.e("MainActivity", "=== labConfig.isRelationGuard=${labConfig?.isRelationGuard}")
         if ("1" == labConfig.isRelationGuard) {
             binding.openDoor.visibility = View.VISIBLE
             val drawable =
@@ -447,8 +474,9 @@ class MainActivity :
                 ContextCompat.getDrawable(this, R.drawable.divider_transparent_main_right_v2)
             binding.rightContent.dividerDrawable = drawable
         }
-        // 视频监控按钮显示控制
-        if ("1" == LabApp.userVo.pageType) {
+
+        // 【改动3】原来这里用的是 LabApp.userVo.pageType,改成已判空的 userVo
+        if ("1" == userVo.pageType) {
             binding.monitorGroup.visibility = View.VISIBLE
         } else {
             binding.monitorGroup.visibility = View.GONE
@@ -462,7 +490,6 @@ class MainActivity :
         queryCheckMachineMsgList()
         queryNoticeMsgList()
     }
-
     private fun queryBanner() {
         val param = BannerImageReq().apply {
             imgCategory = "2"

+ 2 - 2
app/src/main/java/xn/xxp/room/bean/DeviceConfig.java

@@ -10,10 +10,10 @@ public class DeviceConfig {
 
     private String ip = "";
     private String devId = "";
-    private String baseUrl = "http://172.16.0.65/api/";
+    private String baseUrl = "http://172.21.0.2/api/";
     private String mqttName = "mqtt";
     private String mqttPas = "mqtt@zd1883";
-    private String mqttAddress = "tcp://172.16.0.65:31072";
+    private String mqttAddress = "tcp://172.21.0.2:31072";
     private String adminPas = "admin@098&";
     private String terminalAuth = "";
 

+ 8 - 8
app/src/main/res/layout/activity_main.xml

@@ -78,6 +78,14 @@
                 android:src="@mipmap/icon_sy_km"
                 android:visibility="visible" />
 
+            <ImageView
+                android:id="@+id/companyImg"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:contentDescription="@null"
+                android:scaleType="fitXY"
+                tools:src="@mipmap/img_sy_qywh" />
+
         </LinearLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
@@ -504,14 +512,6 @@
 
             </androidx.constraintlayout.widget.ConstraintLayout>
 
-            <ImageView
-                android:id="@+id/companyImg"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:contentDescription="@null"
-                android:scaleType="fitXY"
-                tools:src="@mipmap/img_sy_qywh" />
-
         </androidx.constraintlayout.widget.ConstraintLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>