diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/permissions/PermissionItem.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/permissions/PermissionItem.kt index 11e043e5be31..44624a4be82b 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/permissions/PermissionItem.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/permissions/PermissionItem.kt @@ -82,8 +82,21 @@ class PermissionItem(context: Context, attrs: AttributeSet) : FrameLayout(contex } } } + + setOnClickListener { + if (!isGranted) { + Timber.i("Permission item clicked, requesting permission") + listener?.invoke() + } else { + switch.isChecked = !switch.isChecked + } + } + + updateSwitchCheckedStatus() } + private var listener: (() -> Unit)? = null + /** * Checks the switch if the permission is granted, * or uncheck if not @@ -97,11 +110,6 @@ class PermissionItem(context: Context, attrs: AttributeSet) : FrameLayout(contex * The listener isn't invoked if the permission is already granted * */ fun setOnSwitchClickListener(listener: () -> Unit) { - switch.setOnClickListener { - if (!isGranted) { - Timber.i("permission switch pressed") - listener.invoke() - } - } + this.listener = listener } }