diff --git a/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt b/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt index 8c1041188..055579972 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt @@ -32,6 +32,7 @@ import org.mozilla.fenix.ext.showToolbar /** * An activity to show the details of a installed add-on. */ +@Suppress("LargeClass", "TooManyFunctions") class InstalledAddonDetailsFragment : Fragment() { private lateinit var addon: Addon private var scope: CoroutineScope? = null @@ -199,12 +200,12 @@ class InstalledAddonDetailsFragment : Fragment() { private fun bindRemoveButton(view: View) { view.remove_add_on.setOnClickListener { - enable_switch.isClickable = false + setAllInteractiveViewsClickable(view, false) requireContext().components.addonManager.uninstallAddon( addon, onSuccess = { runIfFragmentIsAttached { - enable_switch.isClickable = true + setAllInteractiveViewsClickable(view, true) showSnackBar( view, getString( @@ -217,7 +218,7 @@ class InstalledAddonDetailsFragment : Fragment() { }, onError = { _, _ -> runIfFragmentIsAttached { - enable_switch.isClickable = true + setAllInteractiveViewsClickable(view, true) showSnackBar( view, getString( @@ -231,6 +232,13 @@ class InstalledAddonDetailsFragment : Fragment() { } } + private fun setAllInteractiveViewsClickable(view: View, clickable: Boolean) { + view.enable_switch.isClickable = clickable + view.details.isClickable = clickable + view.permissions.isClickable = clickable + view.remove_add_on.isClickable = clickable + } + private fun Switch.setState(checked: Boolean) { val text = if (checked) { R.string.mozac_feature_addons_settings_on