Redesign Rationale

The original GENERAL section mixed server credentials, timing tuning, and visual preferences into a single flat list — forcing users to scroll past sensitive token fields to adjust a brightness slider. The redesign splits GENERAL into three named sub-groups (Connection, Behavior, Interface) using card containers, matching the Android Preference Groups pattern, so cognitive load is distributed by task intent rather than alphabetical accident.

The Security section gains a yellow warning tint on the Debug Mode row (currently ON, bypasses biometric gate), and the Biometric Grace Window gets a chip-selector instead of a buried list row. Voice Dictation is preserved as-is but gains the same card treatment for visual consistency with the new GENERAL layout.

Portrait prototype — 520px max-width
2:40
▮▮▮ 🔋 85
Settings
General
Connection
Base URL
Sessions Endpoint
Sessions API Token
●●●●●●●●●●●● connected
CF Access Client ID
CF Access Client Secret
Behavior
Max Panes
4
Drag Activation Delay
500ms
Backspace Chip Repeat Speed
80ms
Interface
Control Panel Brightness
100%
Scroll-Fade Target
100%
Top-level Project Directory
Security
Biometric Unlock
Re-prompt after 5 min in background
Grace Window
5 min
10 min
30 min
Never
Trust Device Unlock
An OS unlock refreshes the grace window. Off = Argus always gates separately.
Debug Mode
Keeps screen on and bypasses biometric gate. Turn off when done.
Voice Dictation
Input
Activation
Punctuation
Locale
Silence Timeout
1800ms
Behavior
Force Google Recognizer
Samsung devices need this enabled
Continuous Mode
Auto-restart on silence
Send on Done
Press Enter after final result
Auto-capitalize First Word
Haptic Feedback
On mic start/stop
Keyboard Shortcut
Mic Toggle
Global shortcut to start/stop voice dictation without tapping the FAB
Ctrl + Shift + M
Works when a hardware keyboard is connected
S Pen
Hold
Action while holding the S Pen button pressed
Single Tap
Action on a single button click
Double Tap
Action on two rapid button clicks
Implementation Notes
GENERAL sub-groups
Use Android PreferenceCategory within PreferenceScreen XML to create the three sub-groups. Each category gets its own title attribute. No custom views required — the framework renders the card/divider pattern natively on API 21+.
Token field component
Promote the 3-button (Show / Clear / Test) pattern from 05-settings-token.html. State machine: emptyenteredtestingconnected | error. Connected state shows green border + badge and changes Test button to checkmark label.
Debug Mode warning row
When debugMode == true, apply a custom PreferenceViewHolder that injects --yellow-tint background and left border. The yellow toggle state is a separate drawable resource (toggle_warn.xml) keyed off the setting value, not the toggle's checked state alone.
Grace window chip selector
Replace the current ListPreference dialog with an inline HorizontalScrollView + chip group — four options (5 / 10 / 30 / Never) render inline without a modal. Chip selection persists to SharedPreferences as an integer millisecond value.
Slider value badge
Each slider row includes a TextView badge to the right, bound via OnSeekBarChangeListener.onProgressChanged. Monospace font (Cascadia Code / JetBrains Mono), orange tint background, fixed min-width to prevent layout shift across value changes.
Voice Dictation card split
The 9-item Voice Dictation flat list is split into two PreferenceCategory blocks: Input (activation, punctuation, locale, timeout) and Behavior (toggles + feedback). The Train Google voice link row sits in its own single-item category to visually separate it from the toggle group.