diff --git a/stronglift_replacement/TODO-workout-app-v2.md b/stronglift_replacement/TODO-workout-app-v2.md deleted file mode 100644 index a8414a0..0000000 --- a/stronglift_replacement/TODO-workout-app-v2.md +++ /dev/null @@ -1,33 +0,0 @@ -This is a continouation from design.md file with what is left to be done and what new ideas came to me since the last time arranged in order of importance - -Crucial (max 1 feature): - If user starts workout and later either exit the app completely or clicks the arrow in upper left the workout gets reset completely, all progress is lost this is very bad - once user starts workout only by tapping finish and confirming that they INDEED finished workout should end it OR if user clicks and confirms RESET button, NOTHING ELSE - DONE (verified 2026-08-09): StorageService.saveActiveSession persists after every tap and resumes on the same set/rep; the back arrow is gone (automaticallyImplyLeading: false) and Finish/Reset both confirm. Mirrored to /sdcard so even an uninstall resumes. - -High (max 2 features): - adds breaks between REPS (3 minutes if REP succeeded (as in all reps were done) and 5 minutes if it failed) <-- currently app ads breaks between SETS which wrong - STILL OPEN (2026-08-09): breaks are still per-SET, and suppressed on the last set of an exercise. Needs a decision — "break between reps" would mean pausing mid-set, which is unusual; confirm intent before building. - After break time (after REPS) is over app should play a sound and vibrate the phone and generally point the user attention towards the app - DONE (verified 2026-09-12, on-device, screen off and locked): break end plays assets/sounds/break_end.mp3 and vibrates 800ms, AND the OS rings the break_end_v1 channel from res/raw. The old "only while foregrounded" caveat is gone: a flutter_foreground_task service holds a wake lock and owns the deadline, and the countdown is now derived from a stored end time instead of a tick counter that stalled whenever Android throttled the isolate. - -Mid (max 3 features): - change warmup exercises weight from 2/3 to 3/4 of target weight - DONE, but shipped as 4/5 rather than 3/4 — 4/5 confirmed intended (2026-08-09). - Warmups should be a selectable circles in a separate screen, optional but still interactive and after doing them give the user a 3 minute break ALSO - The app should change between workout A and B AUTOMATICALLY, no user interaction if last workout done was "A" the next one should be "B" and then "A" and so on... - -Low (max 4 features): - If set is finished user cannot modify reps on this set for some reason -> this is a bug user should ALWAYS be able to modify ANY reps in ANY exercise - shows history of workouts and a graph for showing progress - The app should be capable of working in the background without any problem and display status notifications allowing user to click on "done rep" from the status bar - DONE (2026-09-12): a foreground service runs for the whole workout and shows an ongoing notification — "Workout A · break 1:47" / "Next: Dumbbell Lunge — set 2/5 / 12 reps @ 10 kg" — with three action buttons: ✓ Done (records the set at full target reps), − 1 rep (decrements the set recorded last, which also stretches a 3-min rest to 5), Skip break. Presses go into a durable SharedPreferences queue and are applied through the same _tapCircle/_skipBreak the on-screen buttons use, so a press made while the app is dead still lands on the next launch. Verified on-device with the screen off and locked; the button PRESSES themselves still want a human tap to confirm end-to-end (the plugin's receiver is NOT_EXPORTED, so adb cannot fire them). - automatically decreases weight if user had a break from using the app <-- not sure if implemented (maybe implemented but did not have a change to check it add fallback manual setting of weights by user) - - -Technical Requirements: -App should work on rooted and unrooted phones with minimum android version of at least 12 -Full test coverage (100%) (but first check the functionality and if the functionality fully works and is approved by user THEN start writing ANY tests at all please) -I connected an unrooted phone with adb on to the pc use it for testing - -REMOVE ME AFTER FINISH diff --git a/stronglift_replacement/workout_app/TODO-workout-app-context.md b/stronglift_replacement/workout_app/DOCS-workout-app-context.md similarity index 83% rename from stronglift_replacement/workout_app/TODO-workout-app-context.md rename to stronglift_replacement/workout_app/DOCS-workout-app-context.md index 12287d8..ec52cd6 100644 --- a/stronglift_replacement/workout_app/TODO-workout-app-context.md +++ b/stronglift_replacement/workout_app/DOCS-workout-app-context.md @@ -14,9 +14,3 @@ Implementing design_v2.md improvements. workout and shows the status-bar notification; notification presses go through a durable prefs queue, never straight into sqflite (the CRDT sync layer owns that database's ordering) - -## Next Steps -- Clarify user intent on "no break between sets" (contradicts design_v2.md which - explicitly requested per-set breaks) - -REMOVE ME AFTER FINISH