abdalmoniem / Caffeinate

Caffeinate is an App that helps android developers Keep their phone's screen On while developing
GNU General Public License v3.0
30 stars 2 forks source link

make the function of the "next timeout" button more naturally #45

Open DJCrashdummy opened 3 months ago

DJCrashdummy commented 3 months ago

one thing that bugs me: the notification is really nice and well thought out... but when using the button "next timeout" it uses the next higher timeout of the initial timeout, no mater what the remaining timeout is. at times when i use Caffeinate quite frequently, after some usage i have no idea what timeout i chose initially... so the resulting timeout after hitting the button is likely to be a surprise.

may i suggest to use the next higher timeout of the remaining timeout. this way you know exactly what the result of hitting the button would be resp. perhaps even how often to hit it. ...yes, when hitting a button to set a timeout you need a few seconds in which this feature doesn't kick in to get to a higher timeout than the first one.

this way it makes much more sense IMHO: imagine having all timeouts activated and using 15 min. this time... at the end you notice that need just a little bit longer than estimated. instead of hitting the button once and everything is fine, you get a much longer timeout than the initial one and have to cycle through all timeouts and even potentially miss it if you are too quickly at tapping and haven't paid enough attention.


and while we are at it: exact the same functions (or at least the few seconds to get to a higher timeout) would be nice to have at the main window. and if so, a separate "off" button would be sensible to make the functions more consistent within the app.

abdalmoniem commented 1 week ago

I don't really understand what you're suggesting, sorry 😅

suppose the timeouts are 5m, 10m, 15m, 30m, and 60m. The user chooses 15m as a timeout, and the remaining is 11m 30s for example, what should happen when they click on next timeout? from what I tried to understand is that it should reset to 15m. or does the higher timeout of the remaining timeout mean that 10m should be set since it is the closest to 11m 30s in the available timeouts?

the off button is a good idea, but I think it'd be redundant since clicking the notification itself turns off the timer anyways.

DJCrashdummy commented 1 week ago

sorry, i already thought while writing - and rewriting - it, that it's not the best explanation. :frowning:

to answer your question with the example: it should be set to 15m as it is the next higher timeout (to the actually remaining timeout). ...and to 30m if tapped twice etc.. but let's take the same example, the user has initially chosen 15m and now the remaining time is only 1m 30s. then after one tap the timeout should be set to 5m (the next higher tiemout to the remaining timeout) and not to 30m (the next higher timeout to the initially chosen one) as it is now.


no, the last section with a separate off button was only about the main view of the app, not the notification: i suggest one button (perhaps the one with the countdown) providing exact the same function as described for the notification, because in the main view there is no way to add some time once set. and to even increase consistency of the apps functions, a different button (similar to tapping the notification) to stop it completely.

abdalmoniem commented 3 days ago

I don't think that restarting the timeout is a good user experience, there could be another button in the app and the notification to restart the timeout that's visible only when the timeout is already started, this way the behavioral consistency of each button is clear from the get go.

regarding an off button, this also would not be inconsistent since in the quick tile, there's no option to turn off the timeout except with either cycling through all the timeouts or just creating a new tile that's sole purpose is just to turn off (which is not really good), so for the sake of consistency across the whole app, I think it should stay like this.