Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 15 Jun 00:43

Flux Hourglass 1.1.0

The first meaningful upgrade after the initial 1.0.0 release. Focuses on the
real-world ergonomics of using the hourglass as an everyday timer without
breaking the minimalist surface.

Highlights

  • Quick presets. A row of 1m / 3m / 5m / 10m / 25m / 1h text chips sits
    just under the title on the setup screen and populates the H R / M I N / S E C
    pickers in one tap. They are deliberately rendered as thin labels — not
    buttons — so they read as suggestions, not chrome.
  • Pause / Resume. The running screen now exposes a faint P A U S E
    control opposite the existing R E S E T label. Pausing freezes the timer
    exactly where it is; the new Paused screen shows the remaining HH : MM : SS
    plus the percent of the duration still ahead, with a centered R E S U M E
    affordance that re-anchors the countdown from the moment you tap.
  • Screen stays on. While the timer is in the Running state the activity
    sets FLAG_KEEP_SCREEN_ON so the display does not dim mid-run; the flag is
    cleared the moment the timer reaches the Paused, Finished, or Setup state.

Implementation notes

  • TimerState.Paused(remainingMillis, totalMillis) is a new state. The view
    model snapshots the remaining time on pause and re-anchors endTime to
    System.currentTimeMillis() + remainingMillis on resume, so the existing
    monotonic-clock tick loop continues to be the single source of truth.
  • The KeepScreenOn() composable is scoped to the running screen only and
    cleans up via DisposableEffect, so it does not leak when the timer
    finishes, is reset, or the activity is torn down.