fix(widgets): config saves, live world clocks, quick-timer guards

- Config screens share WidgetConfigActivity: a picker that dismisses right
  after selecting no longer finishes with RESULT_CANCELED (which removed a
  newly placed widget on API 29/30), and the save runs to completion.
- Digital config shows only once stored settings are read, so an early OK
  or a late load can't write defaults over them.
- Digital widget collects world clocks inside the composition, so edits
  reach a live session.
- Quick timer: a second tap while its timer is active starts nothing;
  durations are capped at 59:59 (1 h preset dropped) to fit the readout.
- Analog date hand is redrawn at local midnight and on time/zone changes
  (AnalogDateRefresh); updatePeriodMillis back to 0.
- WidgetSync routes each flow only to the widgets that read it.
- Stopwatch widget uses the ElapsedRealtimeClock seam and has a two-row
  minimum height.
- Remove dead quick-timer helpers; share showWorldClockIntent.
This commit is contained in:
makiolaj committed 2026-10-02 18:18:04 +02:00
1 parent 82fff19d3d
commit 0f5cf4f1eb
21 files changed
+415 -335

No files matched your search

+3 -2
View File
@@ -284,8 +284,9 @@
app's widget: APPWIDGET_UPDATE is a platform-delivered broadcast,
never a door another app can open by naming the action itself.
updatePeriodMillis is 0 in every provider-info XML — WidgetSync
is the one refresh trigger (the quick-timer widget has no live
state, so it is refreshed only by its own config save). -->
is the one refresh trigger for the data widgets, and the analog
widget's date is redrawn at midnight and on a clock or zone
change (widget/AnalogDateRefresh.kt). -->
<receiver
android:name=".widget.NextAlarmWidgetReceiver"
android:exported="true">