Browse Source

1.新增配置字段 用来适配 因海康设备屏幕反装导致App反转问题
2.新增配置页面手动开关锁

JaycePC 6 days ago
parent
commit
c457a3a3b9

+ 0 - 20
app/src/main/AndroidManifest.xml

@@ -42,84 +42,64 @@
             android:exported="false" />
         <activity
             android:name=".home.leave.LeaveActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".main.monitor.MonitorActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".main.rule.RuleDetailActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".main.rule.RuleActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".home.notice.NoticeMsgSystemActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".main.msds.HtmlFullScreenActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".main.msds.InstructionActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".main.things.ThingsActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".main.risk.RiskListActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".home.sign.SignInActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".main.person.LaboratoryPersonActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".home.lab_info.LabDetailActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".main.MainActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".home.auth.ChoiceAuthActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".home.notice.NoticeListActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".home.lab_info.LabDescActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".HomeActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false"
             android:hardwareAccelerated="true" />
         <activity
             android:name=".app.InitActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".home.setting.SettingActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="false" />
         <activity
             android:name=".StartActivity"
-            android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
             android:exported="true"
             android:launchMode="singleTop">
             <intent-filter>

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

@@ -16,6 +16,9 @@ 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 {
 
@@ -25,7 +28,13 @@ public abstract class BaseActivity<VB extends ViewBinding> extends AppCompatActi
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+        DeviceConfig deviceConfig = RoomTool.getInstance().deviceConfigDao().getDeviceConfig();
+        if (null == deviceConfig || deviceConfig.isOrientation()) {
+            LogUtils.d("强制横屏", true);
+            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+        } else {
+            LogUtils.d("强制横屏", false);
+        }
         ScreenAdapter.INSTANCE.setCustomDensity(this);
         uiDelegate = AbsUIDelegate.Companion.create();
         configImmersiveMode();

+ 8 - 0
app/src/main/java/xn/xxp/StartActivity.java

@@ -7,6 +7,8 @@ import com.blankj.utilcode.util.ActivityUtils;
 import core.ui.activity.BaseActivity;
 import xn.xxp.databinding.ActivityStartBinding;
 import xn.xxp.app.InitActivity;
+import xn.xxp.room.RoomTool;
+import xn.xxp.room.bean.DeviceConfig;
 import xn.xxp.utils.Tool;
 
 public class StartActivity extends BaseActivity<ActivityStartBinding> {
@@ -14,6 +16,12 @@ public class StartActivity extends BaseActivity<ActivityStartBinding> {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        DeviceConfig deviceConfig = RoomTool.getInstance().deviceConfigDao().getDeviceConfig();
+        if (null == deviceConfig) {
+            deviceConfig = new DeviceConfig();
+            deviceConfig.setOrientation(true);
+        }
+        RoomTool.getInstance().deviceConfigDao().insert(deviceConfig);
         ActivityUtils.startActivity(InitActivity.class);
         finish();
     }

+ 0 - 3
app/src/main/java/xn/xxp/app/InitActivity.java

@@ -71,9 +71,6 @@ public class InitActivity extends BaseActivity<ActivityInitBinding> {
     protected void initViews(Bundle savedInstanceState) {
         super.initViews(savedInstanceState);
         deviceConfig = RoomTool.getInstance().deviceConfigDao().getDeviceConfig();
-        if (null == deviceConfig) {
-            deviceConfig = new DeviceConfig();
-        }
         EthernetConfig ethernetConfig = InfoNetworkApi.getEthernetConfig();
         String ip = ethernetConfig.getIpAddress();
         deviceConfig.setIp(ip);

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

@@ -6,6 +6,7 @@ import android.text.Editable;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
+import android.widget.CompoundButton;
 
 import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
@@ -23,6 +24,7 @@ import com.hikvision.dmb.display.InfoDisplayApi;
 import com.hikvision.dmb.network.InfoNetworkApi;
 import com.hikvision.dmb.system.InfoSystemApi;
 import com.kongzue.dialogx.dialogs.MessageDialog;
+import com.njlz.card.DeviceUtils;
 
 import xn.xxp.R;
 import xn.xxp.databinding.ActivitySettingBinding;
@@ -117,6 +119,16 @@ public class SettingActivity extends AppCompatActivity {
                     ActivityUtils.startActivity(FaceListActivity.class);
                 }
             });
+            // 是否强制横屏
+            binding.orientation.setChecked(deviceConfig.isOrientation());
+            binding.orientation.setOnCheckedChangeListener((buttonView, isChecked) -> ToastUtils.showLong("修改此参数保存后再重启设备后生效!"));
+            // 锁
+            binding.lock.setOnCheckedChangeListener((buttonView, isChecked) -> {
+                DeviceUtils.setElectricLock(1, isChecked);
+                if (isChecked) {
+                    ToastUtils.showLong("开锁后需要手动关锁");
+                }
+            });
 
             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/"));
@@ -167,6 +179,7 @@ public class SettingActivity extends AppCompatActivity {
             return;
         }
         deviceConfig.setAdminPas(oldPasswordETText.toString());
+        deviceConfig.setOrientation(binding.orientation.isChecked());
         deviceConfigDao.insert(deviceConfig);
         ToastUtils.showShort("即将重启App");
         ThreadUtils.runOnUiThreadDelayed(() -> Tool.INSTANCE.reStartApp("主动重启"), 1500);

+ 3 - 2
app/src/main/java/xn/xxp/room/RoomTool.java

@@ -1,5 +1,6 @@
 package xn.xxp.room;
 
+import androidx.room.AutoMigration;
 import androidx.room.Database;
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
@@ -15,7 +16,7 @@ import xn.xxp.room.dao.FaceDao;
 import xn.xxp.room.dao.LabConfigDao;
 import xn.xxp.room.dao.NoticeSummaryDao;
 
-@Database(entities = {Face.class, DeviceConfig.class, LabConfig.class, NoticeSummary.class}, version = 1)
+@Database(version = 1, entities = {Face.class, DeviceConfig.class, LabConfig.class, NoticeSummary.class})
 public abstract class RoomTool extends RoomDatabase {
     private static RoomTool INSTANCE;
 
@@ -23,7 +24,7 @@ public abstract class RoomTool extends RoomDatabase {
         if (INSTANCE == null) {
             synchronized (RoomTool.class) {
                 if (INSTANCE == null) {
-                    INSTANCE = Room.databaseBuilder(Utils.getApp(), RoomTool.class, "room_db").allowMainThreadQueries().build();
+                    INSTANCE = Room.databaseBuilder(Utils.getApp(), RoomTool.class, "room_db").allowMainThreadQueries().fallbackToDestructiveMigration().build();
                 }
             }
         }

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

@@ -16,8 +16,17 @@ public class DeviceConfig {
     private String mqttAddress = "tcp://172.16.0.65:31072";
     private String adminPas = "admin@098&";
     private String terminalAuth = "";
+    private boolean isOrientation = true;
 
 
+    public boolean isOrientation() {
+        return isOrientation;
+    }
+
+    public void setOrientation(boolean orientation) {
+        isOrientation = orientation;
+    }
+
     public int getId() {
         return id;
     }

+ 32 - 0
app/src/main/res/layout/activity_setting.xml

@@ -205,6 +205,38 @@
                     android:layout_height="50dp"
                     android:layout_margin="5dp">
 
+                    <androidx.appcompat.widget.SwitchCompat
+                        android:id="@+id/orientation"
+                        android:layout_width="wrap_content"
+                        android:layout_height="match_parent"
+                        android:layout_gravity="center"
+                        android:paddingHorizontal="10dp"
+                        android:text="强制横屏"
+                        app:switchPadding="10dp" />
+
+                </androidx.cardview.widget.CardView>
+
+                <androidx.cardview.widget.CardView
+                    android:layout_width="wrap_content"
+                    android:layout_height="50dp"
+                    android:layout_margin="5dp">
+
+                    <androidx.appcompat.widget.SwitchCompat
+                        android:id="@+id/lock"
+                        android:layout_width="wrap_content"
+                        android:layout_height="match_parent"
+                        android:layout_gravity="center"
+                        android:paddingHorizontal="10dp"
+                        android:text="锁"
+                        app:switchPadding="10dp" />
+
+                </androidx.cardview.widget.CardView>
+
+                <androidx.cardview.widget.CardView
+                    android:layout_width="wrap_content"
+                    android:layout_height="50dp"
+                    android:layout_margin="5dp">
+
                     <androidx.appcompat.widget.AppCompatButton
                         android:id="@+id/setting_BT"
                         android:layout_width="wrap_content"