diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/DSLSettingsAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/DSLSettingsAdapter.kt index fc1fff568c..8ee0f0c05d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/DSLSettingsAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/DSLSettingsAdapter.kt @@ -209,8 +209,15 @@ class SwitchPreferenceViewHolder(itemView: View) : PreferenceViewHolder + model.onClick() + } + itemView.setOnClickListener { model.onClick() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/models/NotificationProfilePreference.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/models/NotificationProfilePreference.kt index 5b8c52f97d..b2ab0c75fb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/models/NotificationProfilePreference.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/models/NotificationProfilePreference.kt @@ -39,10 +39,12 @@ object NotificationProfilePreference { override fun bind(model: Model) { super.bind(model) itemView.setOnClickListener { model.onClick() } + switchWidget.setOnCheckedChangeListener(null) switchWidget.visible = model.showSwitch switchWidget.isEnabled = model.isEnabled switchWidget.isChecked = model.isOn iconView.background.colorFilter = SimpleColorFilter(model.color.colorInt()) + switchWidget.setOnCheckedChangeListener { _, _ -> model.onClick() } } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/AsyncSwitch.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/AsyncSwitch.kt index 5574370137..129aeafd2c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/AsyncSwitch.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/AsyncSwitch.kt @@ -38,18 +38,27 @@ object AsyncSwitch { override fun bind(model: Model) { super.bind(model) + switchWidget.setOnCheckedChangeListener(null) switchWidget.isEnabled = model.isEnabled switchWidget.isChecked = model.isChecked itemView.isEnabled = !model.isProcessing && model.isEnabled switcher.displayedChild = if (model.isProcessing) 1 else 0 - itemView.setOnClickListener { + fun onClick() { if (!model.isProcessing) { itemView.isEnabled = false switcher.displayedChild = 1 model.onClick() } } + + itemView.setOnClickListener { + onClick() + } + + switchWidget.setOnCheckedChangeListener { _, _ -> + onClick() + } } } } diff --git a/app/src/main/res/layout/dsl_async_switch_preference_item.xml b/app/src/main/res/layout/dsl_async_switch_preference_item.xml index 96029ef293..0f4cf2498d 100644 --- a/app/src/main/res/layout/dsl_async_switch_preference_item.xml +++ b/app/src/main/res/layout/dsl_async_switch_preference_item.xml @@ -69,8 +69,7 @@ android:id="@+id/switch_widget" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center" - android:clickable="false" /> + android:layout_gravity="center" />