screen-locker/stronglift_replacement/workout_app/lib
Krzysztof kuhy Rudnicki 338ef5ed9b Split settings_screen.dart's widgets into part files (771 -> 503)
settings_screen_rows.dart        section header, reps row, weight row
  settings_screen_thresholds.dart  stepper button, threshold card and row

Still over the cap: the remaining 503 lines are the State class, whose ~190
line build() would have to be broken up to go further. Two routes were tried
and reverted rather than shipped half-working:

- an extension holding the async actions -- rejected by the analyzer, because
  setState is @protected and cannot be called from an extension. Worth
  recording: it rules out moving any State method that calls setState.
- an extension exposing the SYNC/OFFLINE BACKUP rows as a widget-list getter.
  That one is viable (those rows never call setState) but slicing a balanced
  chunk out of a nested list literal is not a mechanical move, and this screen
  ships to the phone.

402 Dart tests pass; coverage 100%; dart analyze clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EveB813BQ8abAP68VSqZ5Y
2026-08-15 21:15:55 +02:00
..
models Add sync-status card and duration-threshold fixture 2026-08-15 18:41:31 +02:00
screens Split settings_screen.dart's widgets into part files (771 -> 503) 2026-08-15 21:15:55 +02:00
services Split storage_service.dart (781) into part extensions 2026-08-15 21:12:08 +02:00
ui workout_app: warm-tint the unified-design-system palette 2026-07-22 21:08:45 +02:00
widgets Add sync-status card and duration-threshold fixture 2026-08-15 18:41:31 +02:00
main.dart Carry progression through Firebase, and stop demanding storage permission 2026-08-10 16:54:21 +02:00