maxkeppeler / sheets-compose-dialogs

✨ Enhancing Android UIs: A Jetpack Compose Library supporting a wide range of common use-cases with Material Design 3 Dialogs, Popups, and Bottom Sheets. ✨
https://maxkeppeler.github.io/sheets-compose-dialogs/
Apache License 2.0
780 stars 32 forks source link

[Feature] Datetime selection dialog is confusing to users #53

Open Nek-12 opened 1 year ago

Nek-12 commented 1 year ago

We are not satisfied with the UX/UI of the datetime dialog. While we are using a custom implementation, you may want to address the following issue:

The dialog has no indication as to what the user must do to confirm that they've entered the value. This means that even if the user has scrolled the day / month / year values to their desired values, they can't tap "OK" until they have tapped each value (it starts being filled with a primary color). If the user taps "Select time" without confirming their date values, they will all be reset. It took me as a developer 3 minutes to understand what's going on, imagine how long it will take a regular user to understand.

maxkeppeler commented 1 year ago

I like receiving feedback, but I believe that constructive criticism with suggestions for improvement would be more beneficial. I had two individuals with no prior experience in IT try out this component, and they were able to successfully select a date and time, without any hints or assistance and at first try.

I don't think auto-selecting the current centered item after a specific duration would be a solution. Feel free to provide me with any suggestions to improve this component.

Nek-12 commented 1 year ago

Yes, after giving it some thought I wanted to express a possible solution. Currently have an idea for a pr in mind. When the dialog is scrolled, we can remove the confirmation at all by introducing snapping to the values. The dialog in this case would simply use the current value in the list. That's how most drum selectors work in apps nowadays. A good example is the Xiaomi's alarm app. A less Intrusive solution would be to consider the values currently on the drum "selected" when the user taps "select time" in the datetime dialog with time enabled, or at least save and restore them instead of dropping the values altogether. If we go with the first one, we'll also need to increase the height of the dialog a bit to allow for easier flinging.