Skip to content

Show ready state after completing preparation before leave time #364

Description

@jjoonleo

Completed Preparation Ready State Plan

Goal

Make the alarm UI clearly show a ready/on-time state when all preparation steps are complete but the user still has time before the leave threshold.

Context

  • SRD: preparation completion and lateness are separate concerns.
  • SRD: while continuing before the leave threshold, UI should communicate "ready / time remaining to leave" rather than "late".
  • Current AlarmScreen uses the last preparation step name as timerLabel when all steps are done and the user continues before the leave threshold.
  • The top text does show time until leaving, but the center label can still look like the last preparation step is active.

Decisions

  • Keep the completion dialog behavior: all steps done does not auto-finish.
  • Keep late-continue mode once the leave threshold is crossed.
  • Add an explicit ready/on-time label for the all-done, continuing, not-late state.

Steps

  1. Add localized copy for the ready state, for example "Ready to go" in English and the agreed Korean equivalent.
  2. In AlarmScreen._buildAlarmScreen, set timerLabel to the ready label when:
    • preparation.isAllStepsDone
    • _isContinuingAfterCompletion
    • isLate == false
  3. Keep displayRemainingSeconds based on timeRemainingBeforeLeaving in that state.
  4. Add/update widget tests for:
    • All done + continue + before leave threshold shows ready label and leave countdown.
    • All done + continue + after leave threshold shows late-continue label and overdue countdown.

Validation

  • Run flutter test test/presentation/alarm/screens/preparation_flow_widget_test.dart.
  • Verify both English and Korean generated localization files are updated after ARB changes.

Open Questions

  • Confirm final Korean ready-state wording.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions