Skip to content

Replace budget chip picker with a 5min-3hr slider - #2

Merged
arkariz merged 4 commits into
mainfrom
claude/di-ondone-callback-home-intent-pvvqzx
Aug 31, 2026
Merged

arkariz merged 4 commits into
mainfrom
claude/di-ondone-callback-home-intent-pvvqzx

Conversation

@arkariz

@arkariz arkariz commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Summary

Replaces the fixed 5/10/15/30-minute chip picker for WatchedAppEntity.budgetMin (app picker / manage-apps screen) with a Slider:

  • Range: 5 minutes to 3 hours (180 minutes), snapping to 5-minute steps.
  • The current value's label auto-switches units past the hour mark: 30M, 1H, 1H30M — never a raw value like 90M once hours read better.
  • Slider ends are labeled with the min/max (5M3H) so the range is clear at a glance.
  • Styled via SliderTheme (ink track/thumb, yellow value-indicator text) to match the existing Bonked visual language rather than the Material default.

Changes

  • app/lib/src/onboarding/app_picker_screen.dart:
    • Removed the fixed _budgetOptions chip list and the budgetOptions prop threaded through _AppRow.
    • Added _formatBudget() (minute→label formatting) and the _kBudgetMinMinutes / _kBudgetMaxMinutes / _kBudgetStepMinutes constants.
    • _AppRow now renders a Slider (wrapped in SliderTheme) instead of the chip row, with a label above showing the live-selected value and min/max labels below the track.

No native/Kotlin changes — budgetMin is still a plain Int end to end (Room entity, Pigeon DTO), so nothing downstream needed touching.

Test plan

  • Manual device/emulator check: open onboarding or Home → gear → manage apps, select an app, drag the slider through its full range, confirm the label reads 5M at the low end, switches to 1H at 60, and shows 1H30M etc. in between; confirm the saved budget round-trips correctly (re-open the screen, value persists).
  • Could not run flutter analyze/build in this environment (no Flutter SDK available) — reviewed the diff manually for correctness.

https://claude.ai/code/session_01APiUERJLZddCPpd8gJ94R4


Generated by Claude Code

claude added 4 commits August 31, 2026 13:20
DURATION_OPTIONS-style fixed chips (5/10/15/30) capped the daily budget
at 30 minutes and only offered 4 discrete values. Replaced with a
Slider spanning 5 minutes to 3 hours in 5-minute steps, with the label
auto-switching units past the hour mark (30M, 1H, 1H30M) instead of
ever showing raw minutes like 90M.
The budget picked here is exactly what the roast overlay measures a
session against later, so the copy under the slider now previews that
escalation live as the user drags: short and mild at low minutes,
louder/punchier/redder past the hour mark, up to a THREE HOURS callout
at the top of the range.
Replaces the single-line-per-range copy with 5 tiers (5-25min,
30-55min, 1h-1h55m, 2h-2h55m, 3h), each holding several lines that get
picked at random. _AppRow is now stateful so the chosen line stays
stable while the user drags within one tier, and only re-rolls when
the slider crosses into a new tier — avoids the line flickering on
every 5-minute step.
@arkariz
arkariz merged commit d97290c into main Aug 31, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants