You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Settings menu has grown organically and some options are in the wrong place. Most clearly: "Apply Silent Mode" sits under General (pref_general.xml:62-76) even though it's a notification-behaviour setting. It's time to rethink the whole Settings structure.
(Since filing, the Notifications screen also gained the charge-notification style picker (#127), the five-item Battery Drain group (#109), and "Critical alerts ignore quiet hours" (#111) — which sits on a different screen than the quiet-hours window it overrides. The grab-bag problem got worse.)
Issues to address
"Apply Silent Mode" is misplaced — it belongs with notification behaviour, near Vibrate / quiet hours, not in General.
Its meaning is confusing / inverted — the label and on/off wording should make it obvious what "on" does. (Wording/placement only — if the silent-mode logic is broken that's a separate bug issue.)
General is a grab-bag — Language + Temperature unit are "Display/App"; thresholds are "Alerts". Consider clearer groupings.
Consider whether quiet hours + silent behaviour + vibrate should live together under one "When to alert / Sound & vibration" section.
Ordering chaos, e.g. Temperature sits between the Warning and Critical groups.
Design settled 2026-07-12 (session discussion) — build from this without re-planning.
Settled design
Organizing principle: the old menu mixed two axes. The new structure gives each axis its own screen — what to be alerted about vs. how/when alerts are delivered — and keeps every event's settings (toggle + threshold + sound) together as one group, in battery-lifecycle order. Every root menu item gets a descriptive summary.
New structure
Settings (root) — 3 headers + a version footer (#113):
1. General — app-wide settings + the status notification
Language
Temperature unit
Status notification category: Show charge/drain rate (moved from the Battery Drain group — it configures the ongoing notification's content, not an alert)
2. Alerts — what to be notified about; one category per event, battery-lifecycle order:
Battery levels — warning/critical range slider (moved from General; it configures the two alerts directly below it)
Warning alert — toggle + sound
Critical alert — sound + notify-every-tick
Full battery — toggle + sound
High temperature — toggle + threshold
Fast drain — toggle + drain limit + sustained/reminder timing
Quiet hours: enable · start · end · "Critical alerts ignore quiet hours" (moved from the Critical section — it modifies the quiet-hours window, so it sits right under it)
Appearance: Sticky notification
Wording (no behaviour change)
"Apply Silent Mode" → "Mute alerts in silent mode" — same key, default, and logic; the label now says what ON does (ON = alerts stay silent in silent/DnD; OFF = alert sounds play anyway — today's effective default). Summaries rewritten (the old ones also had grammar issues).
Root header titles/summaries rewritten as plain descriptions of what's inside.
All preference keys stay unchanged — SharedPreferences don't care which XML declares them, so this is a pure XML + strings shuffle. No data migration, no behaviour change.
Delete dead pref_headers.xml / pref_headers_legacy.xml (only pref_headers_root.xml is referenced, from SettingsActivity).
New/changed user-facing strings need values-ar translations.
Problem
The Settings menu has grown organically and some options are in the wrong place. Most clearly: "Apply Silent Mode" sits under General (pref_general.xml:62-76) even though it's a notification-behaviour setting. It's time to rethink the whole Settings structure.
Current structure
Three top-level headers (pref_headers.xml / pref_headers_root.xml):
(Since filing, the Notifications screen also gained the charge-notification style picker (#127), the five-item Battery Drain group (#109), and "Critical alerts ignore quiet hours" (#111) — which sits on a different screen than the quiet-hours window it overrides. The grab-bag problem got worse.)
Issues to address
Settled design
Organizing principle: the old menu mixed two axes. The new structure gives each axis its own screen — what to be alerted about vs. how/when alerts are delivered — and keeps every event's settings (toggle + threshold + sound) together as one group, in battery-lifecycle order. Every root menu item gets a descriptive summary.
New structure
Settings (root) — 3 headers + a version footer (#113):
1. General — app-wide settings + the status notification
2. Alerts — what to be notified about; one category per event, battery-lifecycle order:
Warning and Critical are adjacent again; Temperature no longer sits between them.
3. Notification behaviour — how alerts sound/look and when they're allowed:
Wording (no behaviour change)
Rules for future settings (why this shape)
Implementation notes
pref_headers.xml/pref_headers_legacy.xml(onlypref_headers_root.xmlis referenced, fromSettingsActivity).