felixwiemuth / SimpleReminder

Efficient creation of simple reminders on Android.
Other
54 stars 8 forks source link

Time input #1

Closed sphh closed 3 years ago

sphh commented 3 years ago

Finally! I was waiting for this app forever. I am looking forward to all those amazing features mentioned in the README, such as relative time, rescheduling (next day, in a week, next month, templates and autocompleting, …).

Still I have one suggestion: Is it possible to make the time picker either configurable or "switchable" between the spinner and the "clock" input? The best would be, to be able to switch between those widgets within the widget itself – and SimpleReminder would remember the choice.

felixwiemuth commented 3 years ago

Hi @sphh, thanks for your feedback, I'm glad to hear that you find the app useful. I will continue development, but you will have to be a bit patient ;).

Regarding the time selection widget: I agree that people may have different preferences w.r.t. the clock widget, so it will be good to provide different options. I'm not so sure whether switching between functionally equivalent pickers in the "Add reminder" view will provide benefits (why would one change one's preference between usages?), so I'd rather make this a setting.

When designing the UI, it also has to be considered that there will be further possibilities to choose a time (relative, different days, ...).

Possible UI components I already had in mind:

Some of the options I would make available via the app's settings, where the user has to choose one. Others, where it more depends on the current situation which one is most useful, will be directly accessible in the "Add Reminder" view.

The difficulty is to get all these options under a neat simple UI without making the flow more complicated or slower in the usual or preferred use case.

sphh commented 3 years ago

Thanks @felixwiemuth for your reply and sharing your ideas, all of which I like very much.

Configuring the widget is perfectly ok with me.

The idea behind switching on the fly was as follows: To set a time in the far future, it is easier to use the clock widget. If the time is just a couple of hours/minutes ahead, it is easier to use the spinners.

Also I find it easier to set the exact minute with the help of the spinners, so my idea was to roughly set the time with the help of the clock widget then switch to the spinners to exactly set the time. But this might just be me and my problems to set the exact minutes on the clock, because my phone has a really tiny screen …

felixwiemuth commented 3 years ago

The idea behind switching on the fly was as follows: To set a time in the far future, it is easier to use the clock widget. If the time is just a couple of hours/minutes ahead, it is easier to use the spinners.

Good point, I hadn't thought of that and will consider it.

One way to easily choose a time close to now will be the spinner for relative time; as that will probably always be available and the resulting time could be displayed, it could be an alternative to the spinner for absolute time (where one then can choose the clock variant via settings).

Also I find it easier to set the exact minute with the help of the spinners, so my idea was to roughly set the time with the help of the clock widget then switch to the spinners to exactly set the time. But this might just be me and my problems to set the exact minutes on the clock, because my phone has a really tiny screen …

Maybe that is indeed a problem with tiny screens - even on a nowadays small screen of 5.1" I can easily set exact minutes with the standard clock widget.

I think the approach will be to first add some of the most important new time and date choosing options and then experiment a bit with how to arrange the components. Maybe a button to switch between clock and spinner will easily find it's place in the end.

sphh commented 3 years ago

Well, you have not seen my screen: Screenshot_20210105-221633 Screenshot_20210105-221704

These are screenshots in original size! :-o I admit this display is a border case …

I think, your approach is a very sensible one.

felixwiemuth commented 3 years ago

Yes, that seems indeed small ;). What model and OS is this by the way? It's good to know if there is someone who is running the app on a corner case device.

sphh commented 3 years ago

It's a Jelly Pro made by Unihertz. The OS is Android 8.1.0

felixwiemuth commented 3 years ago

Cool!

felixwiemuth commented 3 years ago

In the just released version 0.9.7 the "spinner" time picker has now been replaced with the default "clock" time picker (see #9) as it should be more suitable for setting an absolute time (which currently is the only supported way of time input). I think it's worth the compromise that it is now more difficult to set the exact minutes.

When it comes to relative time and other input methods, a spinner can of course become relevant again.

@sphh I wonder how well the clock widget in the slightly enlarged "Add reminder" dialog fits on really small screens, and whether a normal soft keyboard overlaps the clock. I couldn't get the emulator to properly emulate the Jelly Pro dimensions (2.45" with 240*432 according to the specs), it looks different than on your screenshots, so maybe you could give some feedback (the update should be on F-Droid in a few days).

sphh commented 3 years ago

Thanks! I'll report back, if my phone picks it up from F-Droid (and if I still remember that I've promised this – so please feel encouraged to ask for it!)

sphh commented 3 years ago

Here are some screenshot (and yes, the screen size is correct): Screenshot_20210415-203035 I am used to have the keyboard overlapping the time input, so there is nothing to worry here. Screenshot_20210415-203043 The main thing is, that the Add button can be clicked on!

felixwiemuth commented 3 years ago

Thanks for the screenshots!

Okay, on very small screens it doesn't seem practicable to have the keyboard and much else displayed at the same time.

However, I also find that the clock widget is wasting way too much space with the big display of the chosen time and the space with the button below. In the long term - especially when even more controls might need their space - I would try to find a more compact clock widget, or try to adapt this one.

Regarding the "Add" button, I don't think it's nice how it is cut off, but if you can click it, it is maybe acceptable for now. If more controls will require even more vertical space, I would make the main part vertically scrollable while the "Add" button is always visible.

My current idea for more controls is however to place some round buttons on the dialog's left and right border. One can see that even on your small screen there would be space for some small buttons. These button can be simple on/off switches, switch between the displayed time/date pickers, open additional dialogs, or even change values directly via hold-and-swipe gestures.

sphh commented 3 years ago

Just FYI, here are screenshots from some other (standard or open-source) applications (the titles are links!):

Standard alarm app Screenshot_20210421-152300

Öffi Screenshot_20210421-183739

Transportr Screenshot_20210421-183803

Simple Calendar Screenshot_20210421-183839

felixwiemuth commented 3 years ago

Thanks! It seems that they basically all look the same, except that Öffi has a smaller time display without reducing the space it uses :D.

However, what I noticed is that those with Ok/Cancel buttons have these buttons next to the "keyboard" button. So this could save some space, even though I think the current "Add" button looks nicer. Another option would be to make the "Add" button a round button on the side as described above for controls in general.

I tried by the way to make the dialog just as wide that it allows the actual clock to use its maximum size (because that is actually important for usability). This also seems to be the case on your screen, as the other clocks - even though sitting in a wider dialog - aren't bigger.

If you come across a more compact clock widget (regarding the stuff around the clock), let me know.

Transportr (can you correct the link?) has a date picker similar to what I'm planning to add, see #10.

sphh commented 3 years ago

Please do not spend too much time on this edge case of tiny screens and use the time more productively! It is usable as it is at the moment (maybe making the time input widget scrollable, as in Transportr, would be still good, if that's not too much effort).

If I come across another clock widget, I'll post it here.

sphh commented 3 years ago

I looked through my apps installed on my phones: Nothing.

But there is very good input for time intervals: Peace of Mind+!

felixwiemuth commented 3 years ago

I think the main point is that regarding more controls that want to fit in, space is scarce anyway, and it is good when keyboard and important controls are accessible at the same time on normal screens (see for example the screenshot below on a Pixel 4a, where it just about fits (Add button is on the keyboard)). In the end, efficiency in creating reminders is one of the most important features!

Screenshot_20210422-120806

So in that sense, I carefully have to think of space anyway. Your device is a good test case, also to see whether the app is usable at all (which it should), so I really appreciate the feedback :).

Vertically scrollable should not be difficult to add, but I think it will be avoidable in the foreseeable future when saving a little space at the clock widget, yielding place for a small date picker, and using buttons at the side for other controls.

But there is very good input for time intervals: Peace of Mind+!

Yes that looks nice. Such a "progress bar" (but rather straight horizontally for space reasons) was actually what I had in mind for relative time picking. There could be one for hours and one for mintues (where the minutes one can also go over 60min, so for e.g. 90min you can still do with just using one bar).

An even cooler relative time picker could be a "magnetic slider", which is centered by default and holding it to the left or right decreases/increases the selected time, the faster the more one pulls it to the side. When letting off, it jumps back to the middle. This could even be one of the "side buttons", without an actual bar but one holds the button and then moves up/down, with the same effect.

felixwiemuth commented 3 years ago

I am closing this now as the original issue has been solved for now. There is a specific discussion topic now regarding date and time input: #16.