Collect: Clicking quickly on a list item from one of the main menu lists has no effect

Created on 15 Oct 2018  路  8Comments  路  Source: getodk/collect

Software and hardware versions

Collect v1.17.1, Android v7, Moto G4 and I am pretty sure I have experienced this on every device I've used, just thought it was me not tapping correctly

Problem description

Tapping quickly on a list item from one of the main menu lists has no effect

Steps to reproduce the problem

  1. Open one of the activities from the main menu (e.g. Fill Blank Form)
  2. Tap on a list element immediately when the list loads
  3. The tapping animation is shown but the item is not selected as intended

Expected behavior

Tapping on a list element once it has loaded always works, regardless of how quickly the tap happens after the list load.

bug help wanted in progress user experience

All 8 comments

Hello, can i take this one?

It was implemented in order to fix https://github.com/opendatakit/collect/issues/1630 I also noticed sometimes it's annoying but at least it fixes the bug. Maybe we can try to make the min interval shorter.

Here's the diff for the PR disabling multiple clicks within 500 ms. Would a simple lastClickTag help, e.g. pass in the name of the activity on which lastClick took place?

  1. Refactor allowClick() => allowClick(String tag)
  2. Always allow clicks if the tag is different from the last tag, otherwise continue to respect the 500 ms throttle for clicks on the same activity

I'm happy to implement this if it sounds feasible (edit: @ondri124 gets first dibs!)

Thank you, @grzesiek2010 for remembering that history! I completely forgot we used time to debounce clicks.

@cooperka your approach sounds like a good one. Is it really the case that there's no standard Android built-in way to deal with these click issues? Another option might be to disable the button on click but that would require being super careful to re-enable it for every possible re-entry point.

Nothing aside from sub-classing Button and ensuring all past and future instances use the subclass instead of the built-in. iOS has the same problem. It seems like it would be simple enough for Android to offer global debounce contols, but no :crying_cat_face:

@ondri124 you had wanted to tackle this, feel free to claim it -- otherwise I'll come by tomorrow and grab this one.

@cooperka you can take it, but I would like to work on this issue too, just because I want to try to contribute on opensource project but on the other hand, I can see that you have an idea how to solve this issue and I dont want to be the one to interrupt or stall. Maybe we can then share our results and see which would be Appropriate as a whole. :)

Okay, good plan. I'll share my solution here when it's ready. @opendatakit-bot claim

Feel free to take a look @ondri124: https://github.com/opendatakit/collect/pull/2657

Was this page helpful?
0 / 5 - 0 ratings

Related issues

grzesiek2010 picture grzesiek2010  路  5Comments

lognaturel picture lognaturel  路  3Comments

grzesiek2010 picture grzesiek2010  路  5Comments

JeanBaisez picture JeanBaisez  路  4Comments

pranavgupta1234 picture pranavgupta1234  路  4Comments