mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-23 19:26:17 +00:00
Fix tapping too fast breaking my stories viewer.
This commit is contained in:
@@ -21,6 +21,7 @@ import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader
|
||||
import org.thoughtcrime.securesms.mms.GlideApp
|
||||
import org.thoughtcrime.securesms.stories.StoryTextPostModel
|
||||
import org.thoughtcrime.securesms.util.DateUtils
|
||||
import org.thoughtcrime.securesms.util.DebouncedOnClickListener
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder
|
||||
@@ -104,7 +105,11 @@ object MyStoriesItem {
|
||||
|
||||
override fun bind(model: Model) {
|
||||
storyPreview.isClickable = false
|
||||
itemView.setOnClickListener { model.onClick(model, storyPreview) }
|
||||
itemView.setOnClickListener(
|
||||
DebouncedOnClickListener {
|
||||
model.onClick(model, storyPreview)
|
||||
}
|
||||
)
|
||||
downloadTarget.setOnClickListener { model.onSaveClick(model) }
|
||||
moreTarget.setOnClickListener { showContextMenu(model) }
|
||||
presentDateOrStatus(model)
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package org.thoughtcrime.securesms.util
|
||||
|
||||
import android.view.View
|
||||
|
||||
/**
|
||||
* A View.OnClickListener that ignores clicks for a specified internal. This is useful for fixing
|
||||
* double press events that might be more difficult/cumbersome to fix by managing explicit state.
|
||||
*/
|
||||
class DebouncedOnClickListener(
|
||||
private val interval: Long = 500,
|
||||
private val onClickListener: View.OnClickListener
|
||||
) : View.OnClickListener {
|
||||
private var lastClickTime = 0L
|
||||
|
||||
override fun onClick(v: View) {
|
||||
val time = System.currentTimeMillis()
|
||||
if (time - lastClickTime >= interval) {
|
||||
lastClickTime = time
|
||||
onClickListener.onClick(v)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user