super-productivity/android/app
Johannes Millan 0150ee23b3
feat(focus-mode): surface session-done + notify on countdown completion (#8475)
Countdown is the only focus mode that auto-stops with no follow-up
(Pomodoro transitions into a surfaced break; Flowtime only stops on
explicit user action), so completion could pass unnoticed: the SessionDone
screen wasn't reliably shown and there was no cross-platform notification.

On automatic Countdown completion (surfaceSessionDoneOnCompletion$):
- If the focus overlay is open, the reducer's SessionDone screen is already
  visible — nothing forced.
- If the overlay is hidden (user working elsewhere), surface a non-modal
  banner (BannerId.FocusModeSessionDone) with a 'What's next?' action that
  opens the SessionDone screen and self-dismisses once the overlay opens —
  instead of seizing the screen.
- Raise an OS notification only when the app is unfocused (skipped while
  focused, since the surfaced UI is alert enough and it would fire on
  idle-resume) and not on Android, where the native foreground service
  already posts its own completion notification (documented in
  FocusModeForegroundService.onTimerComplete to keep the contract visible).

Uses the injectable IS_ANDROID_WEB_VIEW_TOKEN (testable). Manual end and
Pomodoro/Flowtime are excluded.
2026-06-18 17:33:02 +02:00
..
src feat(focus-mode): surface session-done + notify on countdown completion (#8475) 2026-06-18 17:33:02 +02:00
.gitignore
app_config.properties
build.gradle 18.11.0 2026-06-18 13:37:47 +02:00
capacitor.build.gradle build(android): register edge-to-edge support plugin in gradle 2026-05-28 23:54:51 +02:00
config.gradle
google.properties
proguard-rules.pro feat(droid): background sync notifications for android 2026-03-20 10:24:02 +01:00