From 6fbf233d88bdfe11692e3478046ea8a7929d20ad Mon Sep 17 00:00:00 2001 From: Simon Chae Date: Tue, 28 Apr 2020 18:29:37 -0400 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/10195, https://github.com/mozilla-mobile/fenix/issues/10196: Allow private browsing mode switch to sync with enable state --- .../addons/InstalledAddonDetailsFragment.kt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 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 5793aaca81..458b35a173 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt @@ -88,10 +88,12 @@ class InstalledAddonDetailsFragment : Fragment() { @SuppressWarnings("LongMethod") private fun bindEnableSwitch(view: View) { val switch = view.enable_switch + val privateBrowsingSwitch = view.allow_in_private_browsing_switch switch.setState(addon.isEnabled()) switch.setOnCheckedChangeListener { v, isChecked -> val addonManager = v.context.components.addonManager switch.isClickable = false + privateBrowsingSwitch.isClickable = false view.remove_add_on.isEnabled = false if (isChecked) { addonManager.enableAddon( @@ -100,6 +102,9 @@ class InstalledAddonDetailsFragment : Fragment() { runIfFragmentIsAttached { this.addon = it switch.isClickable = true + privateBrowsingSwitch.isChecked = it.isAllowedInPrivateBrowsing() + privateBrowsingSwitch.isClickable = it.isAllowedInPrivateBrowsing() + privateBrowsingSwitch.isVisible = it.isEnabled() switch.setText(R.string.mozac_feature_addons_enabled) view.settings.isVisible = shouldSettingsBeVisible() view.remove_add_on.isEnabled = true @@ -115,6 +120,7 @@ class InstalledAddonDetailsFragment : Fragment() { onError = { runIfFragmentIsAttached { switch.isClickable = true + privateBrowsingSwitch.isClickable = true view.remove_add_on.isEnabled = true switch.setState(addon.isEnabled()) showSnackBar( @@ -133,10 +139,12 @@ class InstalledAddonDetailsFragment : Fragment() { addon, onSuccess = { runIfFragmentIsAttached { + this.addon = it switch.isClickable = true + privateBrowsingSwitch.isClickable = true + privateBrowsingSwitch.isVisible = it.isEnabled() switch.setText(R.string.mozac_feature_addons_disabled) view.remove_add_on.isEnabled = true - this.addon = it showSnackBar( view, getString( @@ -149,6 +157,7 @@ class InstalledAddonDetailsFragment : Fragment() { onError = { runIfFragmentIsAttached { switch.isClickable = true + privateBrowsingSwitch.isClickable = true view.remove_add_on.isEnabled = true switch.setState(addon.isEnabled()) showSnackBar( @@ -216,10 +225,13 @@ class InstalledAddonDetailsFragment : Fragment() { private fun bindAllowInPrivateBrowsingSwitch(view: View) { val switch = view.allow_in_private_browsing_switch + val enableSwitch = view.enable_switch switch.isChecked = addon.isAllowedInPrivateBrowsing() + switch.isVisible = addon.isEnabled() switch.setOnCheckedChangeListener { v, isChecked -> val addonManager = v.context.components.addonManager switch.isClickable = false + enableSwitch.isClickable = false view.remove_add_on.isEnabled = false addonManager.setAddonAllowedInPrivateBrowsing( addon, @@ -228,13 +240,15 @@ class InstalledAddonDetailsFragment : Fragment() { runIfFragmentIsAttached { this.addon = it switch.isClickable = true + enableSwitch.isClickable = true view.remove_add_on.isEnabled = true } }, onError = { - switch.isChecked = addon.isAllowedInPrivateBrowsing() runIfFragmentIsAttached { + switch.isChecked = addon.isAllowedInPrivateBrowsing() switch.isClickable = true + enableSwitch.isClickable = true view.remove_add_on.isEnabled = true } }