Skip to content

Keep screen on, persist settings, accurate timer; refactor and tests - #1

Merged
apravint merged 1 commit into
mainfrom
improve/app-quality
Nov 3, 2026
Merged

apravint merged 1 commit into
mainfrom
improve/app-quality

Conversation

@apravint

@apravint apravint commented Nov 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • Screen stays awake (toggle in Design Studio) via wakelock_plus
  • Settings, last mode, countdown target and timer length persist via shared_preferences
  • Focus timer uses an absolute end time (accurate after backgrounding) and plays the system alert sound with vibration on finish; README corrected (no background notification)
  • Only the time display rebuilds per tick; clock ticks at 100 ms only when the colon blinks
  • lib/main.dart split from 1,925 to ~330 lines into logic/services/theme/views/widgets
  • Fixes: Design Studio selection check not updating; sheet opened from a context above the Navigator; burn-in label said 30 min but shifts every 3 min
  • Screen-reader labels and tooltips on all controls
  • 22 tests (was 1), formatting check in CI, cleaned pubspec (version 2.1.0+3), README layout section

Test plan

  • flutter analyze clean
  • flutter test 22 passing
  • Build APK and verify on a device: screen stays on, alert sound/vibration at timer end, settings survive restart

🤖 Generated with Claude Code

…ain.dart and add tests

- Wake lock with a Keep Screen On setting
- Persist theme, font, display options, mode, countdown and timer length
- Timer runs from an absolute end time and plays alert sound + vibration
- Rebuild only the time display on each tick
- Split lib/main.dart into logic, services, theme, views and widgets
- Fix Design Studio selection not updating and sheet not opening
- Add semantics and tooltips for screen readers
- 22 unit/widget tests, format check in CI, cleaned pubspec and README

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@apravint
apravint merged commit cc94eff into main Nov 3, 2026
1 check passed
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.

1 participant