timer-machine / timer-machine-android

⏲ A highly customizable interval timer app for Android
GNU General Public License v3.0
193 stars 16 forks source link

[Feature Request] Add Option to skip a step in the first/last loop #71

Open FrankRogalski opened 9 months ago

FrankRogalski commented 9 months ago

I would love the option to skip a step on the first or last loop of a timer. I use the app for my workouts and they often have the structure

But after I am done with the last workout set I don't want the pause. I considered moving the pause before the workout and using it as my start step but my pauses are considerably longer than the start step. The app Interval Timer provides a similar feature.

So currently the above example with a loop count of 3 would produce the following steps.

But if we added the "skip last" option added to the "pause" step it would be

Skipping the last pause. Similarly with the "skip first" feature added to the "pause" it would look like this

Although this doesn't make much sense in the example i chose.

I propose adding the feature as an extra option in the step where it is already possible to choose halt, beep, etc. This would enable user to combine both features changing the above example to

Of course this feature should also enable Users to skip a step in the the first and last loop of a Group. if we use the example

With a loop count of 3 and a "skip last" on "Inner 2" this would result in the following execution

Another consideration is that these options should not be available on the start step and end step as these only ever get executed one anyway.

Although I have no experience in App development, I am familiar with Java and Kotlin and would be willing to submit a PR adding the functionality if we agree that the feature is useful.

DeweyReed commented 9 months ago

Thank you for the brilliant idea!

As you mentioned, adding a new reminder called Skip can significantly help. We can configure if it skips in the first or the last loop(the group loop if it's in a group.)

Feel free to share if you have any better ideas, like a better name for the reminder or better configuration options.