mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
lets block too fast quick event type filter toggling
This commit is contained in:
@@ -15,8 +15,8 @@ import java.util.*
|
|||||||
class QuickFilterEventTypeAdapter(
|
class QuickFilterEventTypeAdapter(
|
||||||
val activity: SimpleActivity,
|
val activity: SimpleActivity,
|
||||||
val allEventTypes: List<EventType>,
|
val allEventTypes: List<EventType>,
|
||||||
private val quickFilterEventTypeIds: Set<String>,
|
val quickFilterEventTypeIds: Set<String>,
|
||||||
val filterChanged: () -> Unit
|
val callback: () -> Unit
|
||||||
) :
|
) :
|
||||||
RecyclerView.Adapter<QuickFilterEventTypeAdapter.ViewHolder>() {
|
RecyclerView.Adapter<QuickFilterEventTypeAdapter.ViewHolder>() {
|
||||||
private val activeKeys = HashSet<Long>()
|
private val activeKeys = HashSet<Long>()
|
||||||
@@ -27,6 +27,7 @@ class QuickFilterEventTypeAdapter(
|
|||||||
private val textColorInactive = textColorActive.adjustAlpha(MEDIUM_ALPHA)
|
private val textColorInactive = textColorActive.adjustAlpha(MEDIUM_ALPHA)
|
||||||
|
|
||||||
private val minItemWidth = activity.resources.getDimensionPixelSize(R.dimen.quick_filter_min_width)
|
private val minItemWidth = activity.resources.getDimensionPixelSize(R.dimen.quick_filter_min_width)
|
||||||
|
private var lastClickTS = 0L
|
||||||
|
|
||||||
init {
|
init {
|
||||||
quickFilterEventTypeIds.forEach { quickFilterEventType ->
|
quickFilterEventTypeIds.forEach { quickFilterEventType ->
|
||||||
@@ -78,9 +79,14 @@ class QuickFilterEventTypeAdapter(
|
|||||||
val indicatorHeightRes = if (isSelected) R.dimen.quick_filter_active_line_size else R.dimen.quick_filter_inactive_line_size
|
val indicatorHeightRes = if (isSelected) R.dimen.quick_filter_active_line_size else R.dimen.quick_filter_inactive_line_size
|
||||||
quick_filter_event_type_color.layoutParams.height = resources.getDimensionPixelSize(indicatorHeightRes)
|
quick_filter_event_type_color.layoutParams.height = resources.getDimensionPixelSize(indicatorHeightRes)
|
||||||
quick_filter_event_type_color.setBackgroundColor(eventType.color)
|
quick_filter_event_type_color.setBackgroundColor(eventType.color)
|
||||||
|
|
||||||
|
// avoid too quick clicks, could cause glitches
|
||||||
quick_filter_event_type.setOnClickListener {
|
quick_filter_event_type.setOnClickListener {
|
||||||
viewClicked(!isSelected, eventType)
|
if (System.currentTimeMillis() - lastClickTS > 200) {
|
||||||
filterChanged()
|
lastClickTS = System.currentTimeMillis()
|
||||||
|
viewClicked(!isSelected, eventType)
|
||||||
|
callback()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user