feat(settings): a settings hub — appearance, alarm/timer/clock defaults, data, help

Reachable from a gear icon on every tab, composed from kit components
(GroupedRow/OptionPicker/AboutCard/LanguagePickerRow) following
Calendula's hub shape: About card first, then headed groups. Every
control writes immediately — no Save button, same as the alarm editor.

Appearance: theme, dynamic colour (API 31+), language. Alarm and timer
defaults reuse the editor's own ringtone and override pickers
(OverridePickers gets an includeAppDefault flag so the settings rows
don't offer an 'inherit' option that has nothing above it to inherit
from) and the world clock's home-zone picker. Reliability and Data
rows are placeholders for the self-check and backup screens landing
next. Help surfaces the issue tracker, a pending crash report (the
same dialog MainActivity already shows on launch), and the app
version.

Settings has no owning tab — ShellNavigation.selectedDestinationOf
deliberately leaves it unmapped, so the shell falls back to Alarms
while it's open, same as any other unrecognised route.
This commit is contained in:
2026-10-01 17:36:06 +02:00
parent 0664791ac5
commit 7253445c4e
18 changed files with 1008 additions and 8 deletions
+38
View File
@@ -242,4 +242,42 @@
<string name="interop_dismiss_title">Which alarm?</string>
<!-- %1$s is the time, followed by the label when the alarm has one. -->
<string name="interop_dismiss_row_description">Dismiss the alarm at %1$s</string>
<!-- M10: settings -->
<string name="settings_title">Settings</string>
<string name="settings_coming_soon">Coming soon</string>
<string name="settings_author" translatable="false">Jean-Luc Makiola</string>
<string name="settings_source">Source</string>
<string name="settings_source_url" translatable="false">https://codeberg.org/jlmakiola/clockula</string>
<string name="settings_section_appearance">Appearance</string>
<string name="settings_theme">Theme</string>
<string name="settings_theme_system">Follow system</string>
<string name="settings_theme_light">Light</string>
<string name="settings_theme_dark">Dark</string>
<string name="settings_dynamic_color">Dynamic colour</string>
<string name="settings_language">Language</string>
<string name="settings_language_auto">Follow system</string>
<string name="settings_section_alarm_defaults">Alarm defaults</string>
<string name="settings_section_timer_defaults">Timer defaults</string>
<string name="settings_timer_duration">Default duration</string>
<plurals name="settings_duration_minutes">
<item quantity="one">%1$d minute</item>
<item quantity="other">%1$d minutes</item>
</plurals>
<string name="settings_section_clock">Clock</string>
<string name="settings_home_zone">Home time zone</string>
<string name="settings_section_reliability">Reliability</string>
<string name="settings_self_check">Why might my alarm not ring?</string>
<string name="settings_self_check_title">Why might my alarm not ring?</string>
<string name="settings_self_check_summary">Check exact-alarm, notification and battery settings</string>
<string name="settings_section_data">Data</string>
<string name="settings_backup">Back up &amp; restore</string>
<string name="settings_backup_title">Back up &amp; restore</string>
<string name="settings_backup_summary">Export or import your alarms, timers and world clocks</string>
<string name="settings_section_help">Help</string>
<string name="settings_report_issue">Report an issue</string>
<string name="settings_send_crash_report">Send last crash report</string>
<string name="settings_version">Version</string>
<string name="settings_version_value" translatable="false">%1$s</string>
<string name="settings_ringtone_custom">Custom sound</string>
</resources>