From c271b9c2de0059819cb8481b40c2ee9d982d0882 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Wed, 6 Apr 2022 13:22:19 -0300 Subject: [PATCH] Prevent multiple clicks when accessing the viewer. --- .../securesms/stories/landing/StoriesLandingFragment.kt | 9 +++++++++ .../securesms/stories/landing/StoriesLandingItem.kt | 9 ++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt index f75e79f626..ee06a77353 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt @@ -55,6 +55,8 @@ class StoriesLandingFragment : DSLSettingsFragment(layoutId = R.layout.stories_l private val tabsViewModel: ConversationListTabsViewModel by viewModels(ownerProducer = { requireActivity() }) + private lateinit var adapter: DSLSettingsAdapter + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setHasOptionsMenu(true) @@ -65,7 +67,14 @@ class StoriesLandingFragment : DSLSettingsFragment(layoutId = R.layout.stories_l inflater.inflate(R.menu.story_landing_menu, menu) } + override fun onResume() { + super.onResume() + adapter.notifyItemRangeChanged(0, adapter.itemCount) + } + override fun bindAdapter(adapter: DSLSettingsAdapter) { + this.adapter = adapter + StoriesLandingItem.register(adapter) MyStoriesItem.register(adapter) ExpandHeader.register(adapter) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingItem.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingItem.kt index d10cf01fa8..a5c2be4d1d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingItem.kt @@ -214,7 +214,14 @@ object StoriesLandingItem { } private fun setUpClickListeners(model: Model) { - itemView.setOnClickListener { model.onRowClick(model, storyPreview) } + itemView.setOnClickListener { + if (!itemView.isClickable) { + return@setOnClickListener + } + + itemView.isClickable = false + model.onRowClick(model, storyPreview) + } if (model.data.storyRecipient.isMyStory) { itemView.setOnLongClickListener(null)