timroes / SwipeToDismissUndoList

An Android library to enable swipe to dismiss and undo functionality on ListViews.
250 stars 72 forks source link

Undo popup not automatically hiding #15

Closed vishalvijay closed 11 years ago

vishalvijay commented 11 years ago

I’m using this library in my project but I’m facing a problem. After deletion of the item from list view, we will get the undo popup but most of the time the popup won’t be hide automatically after the mAutoHideDelay delay and it won’t call discard method also. Using SINGLE_UNDO.

timroes commented 11 years ago

Have you touched the screen after the deletion? The mAutoHideDelay timer will start when the users touches the screen after the deletion. This is to make sure she is aware of the undo dialog at all. The user might delete something, get interrupted by something from real life, and when she comes back, the undo dialog is done, and she recognizes, it was the wrong item, that got deleted. To prevent such situations, the timer will start, after the user touches the screen the next time. In that situation it is pretty likely she notices the undo dialog. If you have a really good reason, why you want to start the timer immediately and break that kind of usability, there is one fork implementing this, and leave me an answer here, so if the reason is really good I will also implement it in the lib. Also if you have touched the screen and the undo dialog won't hide, comment and reopen the issue.

vishalvijay commented 11 years ago

Hey thank you very much for your reply, Sorry for the late reply. Your approach is good (but I didn't understand this is how it works). What happened is like when I try touching the screen after deletion of an list item, the undo dialogue doesn’t disappear. After your reply I replaced the library with new downloaded one. Then it started working perfectly as like you told. I don't know what is the difference between both library. Both are same version and I didn't do any modification to that.

Thanks

On Thu, Jul 18, 2013 at 1:33 PM, Tim Roes notifications@github.com wrote:

Have you touched the screen after the deletion? The mAutoHideDelay timer will start when the users touches the screen after the deletion. This is to make sure she is aware of the undo dialog at all. The user might delete something, get interrupted by something from real life, and when she comes back, the undo dialog is done, and she recognizes, it was the wrong item, that got deleted. To prevent such situations, the timer will start, after the user touches the screen the next time. In that situation it is pretty likely she notices the undo dialog. If you have a really good reason, why you want to start the timer immediately and break that kind of usability, there is one fork implementing this, and leave me an answer here, so if the reason is really good I will also implement it in the lib.

— Reply to this email directly or view it on GitHubhttps://github.com/timroes/SwipeToDismissUndoList/issues/15#issuecomment-21168394 .

Vishal Vijay

warbi commented 11 years ago

I created a pull request to create a public method to SwipeDismissList.java allowing this functionality to be switched off. By default it would remain as is unless setRequireTouchBeforeDismiss(boolean) was called.

https://github.com/warbi/SwipeToDismissUndoList

slisznia commented 11 years ago

Works well, Thank YOU!

On 08/18/2013 12:38 PM, Chris Warburton wrote:

I created a pull request to create a public method to SwipeDismissList.java allowing this functionality to be switched off. By default it would remain as is unless setRequireTouchBeforeDismiss(boolean) was called.

https://github.com/warbi/SwipeToDismissUndoList

— Reply to this email directly or view it on GitHub https://github.com/timroes/SwipeToDismissUndoList/issues/15#issuecomment-22835136.

warbi commented 11 years ago

Welcome.

I'm not casting doubt on Tim's original functionality, I think it's a good enough reason to keep it as default. But I prefer this method personally :-)

slisznia commented 11 years ago

The original functionality assumed a ListView-centric UI. However, the moment you have a richer UI with many components/listviews, it's clear that you don't have user's focus on that single listview and the never-hiding pop-up gets in the way.

Your change to alter this behavior is fantastic.

On Sun 18 Aug 2013 01:00:58 PM CDT, Chris Warburton wrote:

Welcome.

I'm not casting doubt on Tim's original functionality, I think it's a good enough reason to keep it as default. But I prefer this method personally :-)

— Reply to this email directly or view it on GitHub https://github.com/timroes/SwipeToDismissUndoList/issues/15#issuecomment-22835608.