zhuguifei
2026-01-14 82023c98e5c30d36966b85c10c43a6cb11f67e2c
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);
    }
}