a-mabe / openhiit Goto Github PK
View Code? Open in Web Editor NEW:weight_lifting: :medal_sports: Open-source, cross platform HIIT and Tabata interval timer. Pull requests are appreciated!
License: MIT License
:weight_lifting: :medal_sports: Open-source, cross platform HIIT and Tabata interval timer. Pull requests are appreciated!
License: MIT License
Describe the bug
App crash on workout start. Stuck on loading screen.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Workout to start as expected.
Screenshots
If applicable, add screenshots to help explain your problem.
Device and Operating System (please complete the following information):
Additional context
Logs:
2023-11-28 20:05:16.492398-0500 Runner[24780:557467] flutter: initDB executed
2023-11-28 20:05:17.653133-0500 Runner[24780:557467] flutter: initDB executed
2023-11-28 20:05:18.679078-0500 Runner[24780:557467] [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(2003329396, The operation couldn’t be completed. (OSStatus error 2003329396.), null, null)
StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:322:18)
AVAudioSession.setActive (package:audio_session/src/darwin.dart:150:8)
AudioSession.setActive (package:audio_session/src/core.dart:237:14)
2023-11-28 20:05:18.819018-0500 Runner[24780:557234] [ERROR:flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.mm(42)] Using the Impeller rendering backend.
2023-11-28 20:05:20.294721-0500 Runner[24780:558041] [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(1836282486, The operation couldn’t be completed. (OSStatus error 1836282486.), null, null)
StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:322:18)
AudioSession.configure (package:audio_session/src/core.dart:202:5)
CountdownState.onStart (package:background_timer/background_timer.dart:333:5)
Purpose: As a user, I want to know the details of a workout before I select it, such as the total time, number of exercises, exercise time, and rest time.
Description: Refine the workout list tile that is displayed on the home page.
Acceptance Criteria:
Test: Test editing a workout
Scenario outline:
Verify that:
Purpose: As a user, I want to easily select the number of seconds for exercise, rest, and half time.
More details: Something like the horizontal version of the number picker.
Acceptance Criteria:
Purpose: As a user, I the application to inherit the device them.
More details: ^
Acceptance Criteria:
Purpose: As a user, I want to be able to select from a variety of sounds with descriptive names.
More details: Some more details on the feature/improvement
Map the sound file names to descriptive names.
Also, improve the appearance of the page. Something like the following screenshot:
From: https://stackoverflow.com/a/56170945/13394227
Acceptance Criteria:
Purpose: As a user, I want to be able to color code workouts.
More details:
Potentially add color picker: https://pub.dev/packages/flutter_material_color_picker
Acceptance Criteria:
Purpose: As a user, I would like to know how many exercises I have completed and how many are left during the workout.
More details: Show the number that the current exercise corresponds to and total number of workouts, i.e. 4/10 -> completed/remaining.
Acceptance Criteria:
Purpose: As a user, I want to use this app in studying. This requires longer periods of time like 45 minutes study and 5 minutes break
More details: More informations about this here
Describe the bug
The text on the iOS status bar is always white and does not change to black when the background is also white. See screenshots for reference, the text is white no matter the background.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Status bar text should always be readable.
Screenshots
If applicable, add screenshots to help explain your problem.
Device and Operating System (please complete the following information):
Additional context
Add any other context about the problem here.
Seeing the following error:
StateError (Bad state: databaseFactory not initialized
databaseFactory is only initialized when using sqflite. When using `sqflite_common_ffi`
You must call `databaseFactory = databaseFactoryFfi;` before using global openDatabase API
)
Test: Create an Interval Timer
Scenario outline:
+
.Verify that:
Purpose: As a user, I want the homepage appbar to have useful functionality but also not get in the way of selecting a workout.
Description: ^
Acceptance Criteria:
Purpose: As a user, I want to go back to the view workout screen when all intervals are complete.
More details: ^
Acceptance Criteria:
Purpose: As a user, I want the timer screen visual cues to be intuitive. Green means "go" (work), red means "stop".
More details: ^
Acceptance Criteria:
Purpose: As a user, I would like to be able to edit a workout I have already created.
Description: ^
Acceptance Criteria:
An option to export or import workouts. Also from others. In addition, not everyone has to enter everything.
Describe the bug
Crashes when restarting the timer on iOS.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The Nice job! screen should not crash when the app is back in the foreground.
Screenshots
If applicable, add screenshots to help explain your problem.
Device and Operating System (please complete the following information):
Additional context
Add any other context about the problem here.
Purpose: As a user, I expect audio to sound as the clock shows the 3, 2, 1 second marks.
More details: Currently, the 3, 2, 1 second mark audio is slightly delayed.
Acceptance Criteria:
// Don't
import 'package:demo/src/utils/dialog_utils.dart';
// Do
import '../../../utils/dialog_utils.dart';
Purpose: As a user, I don't want the halftime sound effect to interrupt any other sound effects.
More details: When creating a workout, remove the halftime checkbox if the working time is 6 seconds or less so the user can't turn on the halftime. This is because the halfway beep would play over the countdown beeps.
Acceptance Criteria:
Describe the bug
After completing a workout and leaving the app in the background on the Nice job! screen, the app will crash when the user attempts to use the Back or Restart buttons.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
App should not crash.
Screenshots
If applicable, add screenshots to help explain your problem.
N/A
Device and Operating System (please complete the following information):
Additional context
Add any other context about the problem here.
Purpose: As a user, I would like to create an interval timer or workout with more than 50 work intervals.
More details: Currently, the Number of exercises picker only goes up to 50. Increase this to 100 and verify that no issues are introduced, e.g. performance issues when running a workout with 100 exercises.
Acceptance Criteria:
Purpose: As a user, I want to be able to create an interval timer without adding in exercises.
More details: Allow the user to create a workout with exercises or just a simple interval timer. The workout screen should still work even when an exercise string is not present.
Acceptance Criteria:
Purpose: As a user, I don't want to have to unlock my phone or tap the screen as the workout timer is running.
More details: ^
Acceptance Criteria:
Purpose: As a user, I would like the status bar to match the workout screen.
More details: Some more details on the feature/improvement
Currently, the status bar is a different color than the rest of the screen during the workout. See screenshot:
The status bar color should match the current color of the workout screen, i.e. green, red, or black depending on the timer interval.
Acceptance Criteria:
Purpose: As a user, I want the UI to make sense and have proper formatting on all screen sizes.
More details: Currently, the new interval timer and workout screens have a large amount of empty space above the Name this timer field on larger screens. See screenshots for reference.
Too much space above Name this timer:
Acceptance Criteria:
Purpose: As a user, I want the timer to continue running even if OpenHIIT isn't the currently active app.
More details: The timer should continue running even if another app becomes active. For example, if the user opens their music app during a workout the timer should continue counting down.
Acceptance Criteria:
Purpose: As a user, I'd like to use this app also for other types of workouts that require sets longer than 120 seconds
More details: For example WOD such as "AMRAP" that could last 10 minutes, cyclette sets many minutes long or "FOR TIME" workouts in which you have to end it by the time given
Acceptance Criteria:
Test: Create a workout
Scenario outline:
+
.Verify that:
Made a mess of code to get features implemented, now I gotta clean it up.
Purpose: As a user, I would like to be asked for confirmation before a workout is deleted.
More details: Some more details on the feature/improvement
Currently, it is easy to accidentally delete a workout as workouts are immediately deleted upon tapping the delete icon.
Implement something similar to the alert dialog shown here: https://medium.com/multiverse-software/alert-dialog-and-confirmation-dialog-in-flutter-8d8c160f4095
Acceptance Criteria:
Purpose: As a user, I would like to be able to program hiit workouts using a standard set of timings:
More details: Some more details on the feature/improvement
See for example the screenshot which implements 1-4 above (but not 5).
It makes it very easy to schedule a program and I are directly how long it will take.
Doing this for 6 sets or 5 reps (30 intervals), with 30 second break between each set and 10 second rest between reps, using the current workout feature, is very cumbersome.
Screenshot from outdated Fdroid app: https://github.com/kwantam/batsHIIT
Acceptance Criteria:
It is possible to specify in the interval timer screen:
Thank you!
Describe the bug
When playing music through a bluetooth speaker, OpenHIIT will cancel the bluetooth and music will stop playing.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
OpenHIIT should not interfere with bluetooth.
Screenshots
If applicable, add screenshots to help explain your problem.
Device and Operating System (please complete the following information):
Additional context
Add any other context about the problem here.
Purpose: As a user, I would like to be able to reorder the timers I have created.
More details: Some more details on the feature/improvement
Currently, timers are listed on the homepage in order of creation; the oldest timers at the top and the newest at the bottom. Users should be able to reorder timers as needed.
Ideally this will be done by drag and drop as shown here: https://stackoverflow.com/a/71071205/13394227
Acceptance Criteria:
Purpose: As a user, I would like to see the next exercise during the rest countdown.
More details: ^
Acceptance Criteria:
Describe the bug
Not a user of the application here, but I saw it on the new fresh updates in F-droid (with Izzy's repo) and icon looks a lot smaller than all the other ones. Probably because the icon itself is surrounded by too much empty space compared to its own size. This can somehow be seen on your README in the repo, where the icon would also be benefiting from transparent background, because when you use dark themed GitHub, you see the icon into a very big white square background. The icon's size should be increased compared to the square's size, or the square's size decreased.
Expected behavior
Icon should have a scaling similar to other applications, and a transparent background everywhere.
I don't think screenshots are necessary here, but lemme know if you really need some.
Purpose: As a user, I want to be able to create workout with or without a halfway point in the exercise time interval.
More details: If the half time box is checked, half time defaults to zero and there is a sound effect halfway through the exercise time. If the half time is increased, there is a pause equal to the amount of half time in addition to the sound effect at the halfway point.
Acceptance Criteria:
Purpose: As a user, I want to be aware of the halfway point while my device's volume is lowered.
More details: Currently, there is only an audio cue at the halfway point of the work interval. There should be a visual cue as well so that the user is aware of the halfway point even when the device's volume is lowered. Some ideas:
Acceptance Criteria:
Purpose: As a user, I want all features included in the app to be completed for a smooth experience.
More details: Clean up/remove any features that aren't completed and prep the app to be a finished product.
Acceptance Criteria:
Purpose: As a user, I would like to know that the app has loaded properly even if there are no workouts to display.
More details: Currently, upon starting the app for the first time, the home screen appears blank since there are no saved workouts to display. Display a message like "No saved timers" so that the user is aware that the app is working as expected.
Acceptance Criteria:
It is intend to deposit a picture for every exercise?
If the specific exercise is running, the picture can be shown above or below the timer.
It would be very usefully for some practices.
Purpose: As a user, I would like to be able to choose what sound effects play during my workout.
More details: Provide more than just the default sound effects. Examples of more options:
Allow the user to either select these specific modes, or change each sound effect individually.
Acceptance Criteria:
Describe the bug
If I build and deposit a new workout and try to change the practices, I get a white screen and nothing happens after it.
I try it multiple times with the same effect.
To Reproduce
Steps to reproduce:
If I change the number of practices lower than before, it is possible and I don't get an error.
Expected behavior
Accept the changed number of practices.
Device and Operating System (please complete the following information):
- Fairphone 4
- Android 13 (official CalyxOS 4.15.0 - without google services)
Additional context
I don't can use logcat as root and I don't have TWRP as recovery, however it is not possible to get some logs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.