feat(screensaver): add a screen saver with a dim night mode

A DreamService shows a full-screen clock, the date and the next alarm,
digital or as the world clock's analog face, on black. Night mode dims
every colour towards black and turns the display down; the clock moves
to a new spot each minute so nothing burns in. It wakes only on the
minute and on a time, zone or 12/24-hour change.

The tabs' settings gear becomes an overflow menu with "Screen saver" and
"Settings". An app cannot start the system's dream without a system
permission, so that item opens an activity with the same content, which
keeps the screen on only while charging. Style and night mode live in
Settings > Clock and in the dream's own settings screen, and are carried
in backups; older backups restore the defaults.

Fixes #25
This commit is contained in:
makiolaj committed 2026-10-22 08:07:44 +02:00
1 parent 3f431a7f32
commit 1e29226364
43 files changed
+1506 -48

No files matched your search

+13 -1
View File
@@ -301,9 +301,21 @@
<string name="settings_timers_sound_subtitle">Sound for new timers</string>
<string name="settings_timer_sound_hint">New timers ring with this sound. Each timer can still change it in its editor.</string>
<string name="settings_section_clock">Clock</string>
<string name="settings_clock_subtitle">Home time zone</string>
<string name="settings_clock_subtitle">Home time zone and screen saver</string>
<string name="settings_clock_hint">World clocks show how far each city is from your home time zone.</string>
<string name="settings_home_zone">Home time zone</string>
<string name="screen_saver_title">Screen saver</string>
<string name="screen_saver_style">Clock style</string>
<string name="screen_saver_style_digital">Digital</string>
<string name="screen_saver_style_analog">Analog</string>
<string name="screen_saver_night_mode">Night mode</string>
<string name="screen_saver_night_mode_hint">Very dim display, for dark rooms</string>
<string name="screen_saver_preview">Open screen saver</string>
<string name="screen_saver_system_settings">Choose when it starts</string>
<string name="screen_saver_system_settings_hint">Pick Clockula as the screen saver in Android\'s settings</string>
<!-- Read by a screen reader for the alarm line on the screen saver; %1$s is the day and time, "Tue 7:00 AM". -->
<string name="screen_saver_next_alarm">Next alarm: %1$s</string>
<string name="menu_more_options">More options</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>