From 82023c98e5c30d36966b85c10c43a6cb11f67e2c Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期三, 14 一月 2026 11:16:22 +0800
Subject: [PATCH] 修复某些情况下选择蓝牙错乱问题

---
 app/src/main/java/com/shlb/comb/activity/HomeActivity.java |   68 ++++++++++++++++++++++++++++++++--
 1 files changed, 64 insertions(+), 4 deletions(-)

diff --git a/app/src/main/java/com/shlb/comb/activity/HomeActivity.java b/app/src/main/java/com/shlb/comb/activity/HomeActivity.java
index 6be9c20..085e92b 100644
--- a/app/src/main/java/com/shlb/comb/activity/HomeActivity.java
+++ b/app/src/main/java/com/shlb/comb/activity/HomeActivity.java
@@ -36,6 +36,7 @@
     private DrawerLayout drawerLayout;
     protected TextView tv_scan;
     private long lastScanClickTime = 0; // 鐢ㄤ簬鑺傛祦
+    private boolean isSessionAdmin = false; // 褰撳墠浼氳瘽鏄惁宸查獙璇佺鐞嗗憳瀵嗙爜
 
     // Bluetooth Variables
     private BluetoothScanManager scanManager;
@@ -121,7 +122,7 @@
                         }
                     });
                 }
-                if (iv_right != null) iv_right.setVisibility(View.VISIBLE);
+                if (iv_right != null) iv_right.setVisibility(View.GONE);
             }
         });
         
@@ -176,14 +177,37 @@
         });
 
         // 楂樼骇璁剧疆
-        findViewById(R.id.menu_advanced_settings).setOnClickListener(v -> {
+        View menuAdvancedSettings = findViewById(R.id.menu_advanced_settings);
+        menuAdvancedSettings.setOnClickListener(v -> {
             drawerLayout.closeDrawer(GravityCompat.START);
             startActivity(new Intent(this, AdvancedSettingActivity.class));
+        });
+
+        // 绯荤粺璁剧疆
+        View menuSystemSettings = findViewById(R.id.menu_system_settings);
+        menuSystemSettings.setOnClickListener(v -> {
+            drawerLayout.closeDrawer(GravityCompat.START);
+            startActivity(new Intent(this, SystemSettingsActivity.class));
+        });
+
+        updateMenuVisibility();
+
+        // 椤堕儴comb鐐瑰嚮浜嬩欢
+        findViewById(R.id.tv_menu_title).setOnClickListener(new View.OnClickListener() {
+            long lastClickTime = 0;
+            @Override
+            public void onClick(View v) {
+                long currentTime = System.currentTimeMillis();
+                if (currentTime - lastClickTime < 500) {
+                    showPasswordDialog();
+                }
+                lastClickTime = currentTime;
+            }
         });
     }
 
     private void updateDrawerSelection(int selectedId) {
-        int[] menuIds = {R.id.menu_monitor, R.id.menu_devices, R.id.menu_current_device, R.id.menu_settings, R.id.menu_advanced_settings};
+        int[] menuIds = {R.id.menu_monitor, R.id.menu_devices, R.id.menu_current_device, R.id.menu_settings, R.id.menu_advanced_settings, R.id.menu_system_settings};
         for (int id : menuIds) {
             View view = findViewById(id);
             if (view != null) {
@@ -237,7 +261,7 @@
                 }
             });
         }
-        if (iv_right != null) iv_right.setVisibility(View.VISIBLE);
+        if (iv_right != null) iv_right.setVisibility(View.GONE);
 
         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
         if (deviceListFragment == null) {
@@ -352,4 +376,40 @@
             finish();
         }
     }
+    private void showPasswordDialog() {
+        final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(this);
+        builder.setTitle("璇疯緭鍏ュ瘑鐮�")
+                .setPlaceholder("璇疯緭鍏ュ瘑鐮�")
+                .setInputType(android.text.InputType.TYPE_CLASS_NUMBER | android.text.InputType.TYPE_NUMBER_VARIATION_PASSWORD)
+                .addAction("鍙栨秷", (dialog, index) -> dialog.dismiss())
+                .addAction("纭畾", (dialog, index) -> {
+                    String text = builder.getEditText().getText().toString();
+                    if ("0880".equals(text)) {
+                        isSessionAdmin = true;
+                        updateMenuVisibility();
+                        Toast("宸叉樉绀洪殣钘忚缃�");
+                        dialog.dismiss();
+                    } else {
+                        Toast("瀵嗙爜閿欒");
+                    }
+                })
+                .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        updateMenuVisibility();
+    }
+
+    private void updateMenuVisibility() {
+        boolean keepAdmin = com.blankj.utilcode.util.SPUtils.getInstance().getBoolean("keep_admin_mode", false);
+        int visibility = (keepAdmin || isSessionAdmin) ? View.VISIBLE : View.GONE;
+        
+        View menuAdvanced = findViewById(R.id.menu_advanced_settings);
+        View menuSystem = findViewById(R.id.menu_system_settings);
+        
+        if (menuAdvanced != null) menuAdvanced.setVisibility(visibility);
+        if (menuSystem != null) menuSystem.setVisibility(visibility);
+    }
 }

--
Gitblit v1.9.3