1
0
Fork 0

For issues #8310 Disable the remove button while disabling an add-on

and vice versa.
master
Arturo Mejia 2020-02-11 18:13:55 -05:00 committed by Christian Sadilek
parent f85994e1cc
commit 95528c3191
1 changed files with 10 additions and 0 deletions

View File

@ -14,6 +14,7 @@ import androidx.fragment.app.Fragment
import androidx.navigation.Navigation import androidx.navigation.Navigation
import androidx.navigation.findNavController import androidx.navigation.findNavController
import kotlinx.android.synthetic.main.activity_addons.view.* import kotlinx.android.synthetic.main.activity_addons.view.*
import kotlinx.android.synthetic.main.fragment_installed_add_on_details.*
import kotlinx.android.synthetic.main.fragment_installed_add_on_details.view.* import kotlinx.android.synthetic.main.fragment_installed_add_on_details.view.*
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
@ -86,12 +87,14 @@ class InstalledAddonDetailsFragment : Fragment() {
bindRemoveButton(view) bindRemoveButton(view)
} }
@SuppressWarnings("LongMethod")
private fun bindEnableSwitch(view: View) { private fun bindEnableSwitch(view: View) {
val switch = view.enable_switch val switch = view.enable_switch
switch.setState(addon.isEnabled()) switch.setState(addon.isEnabled())
switch.setOnCheckedChangeListener { v, isChecked -> switch.setOnCheckedChangeListener { v, isChecked ->
val addonManager = v.context.components.addonManager val addonManager = v.context.components.addonManager
switch.isClickable = false switch.isClickable = false
remove_add_on.isEnabled = false
if (isChecked) { if (isChecked) {
addonManager.enableAddon( addonManager.enableAddon(
addon, addon,
@ -100,6 +103,7 @@ class InstalledAddonDetailsFragment : Fragment() {
switch.isClickable = true switch.isClickable = true
switch.setText(R.string.mozac_feature_addons_settings_on) switch.setText(R.string.mozac_feature_addons_settings_on)
view.settings.isVisible = true view.settings.isVisible = true
remove_add_on.isEnabled = true
this.addon = it this.addon = it
showSnackBar( showSnackBar(
view, view,
@ -113,6 +117,7 @@ class InstalledAddonDetailsFragment : Fragment() {
onError = { onError = {
runIfFragmentIsAttached { runIfFragmentIsAttached {
switch.isClickable = true switch.isClickable = true
remove_add_on.isEnabled = true
showSnackBar( showSnackBar(
view, view,
getString( getString(
@ -131,6 +136,7 @@ class InstalledAddonDetailsFragment : Fragment() {
switch.isClickable = true switch.isClickable = true
switch.setText(R.string.mozac_feature_addons_settings_off) switch.setText(R.string.mozac_feature_addons_settings_off)
view.settings.isVisible = false view.settings.isVisible = false
remove_add_on.isEnabled = true
this.addon = it this.addon = it
showSnackBar( showSnackBar(
view, view,
@ -144,6 +150,7 @@ class InstalledAddonDetailsFragment : Fragment() {
onError = { onError = {
runIfFragmentIsAttached { runIfFragmentIsAttached {
switch.isClickable = true switch.isClickable = true
remove_add_on.isEnabled = true
showSnackBar( showSnackBar(
view, view,
getString( getString(
@ -193,10 +200,12 @@ class InstalledAddonDetailsFragment : Fragment() {
private fun bindRemoveButton(view: View) { private fun bindRemoveButton(view: View) {
view.remove_add_on.setOnClickListener { view.remove_add_on.setOnClickListener {
enable_switch.isClickable = false
requireContext().components.addonManager.uninstallAddon( requireContext().components.addonManager.uninstallAddon(
addon, addon,
onSuccess = { onSuccess = {
runIfFragmentIsAttached { runIfFragmentIsAttached {
enable_switch.isClickable = true
showSnackBar( showSnackBar(
view, view,
getString( getString(
@ -209,6 +218,7 @@ class InstalledAddonDetailsFragment : Fragment() {
}, },
onError = { _, _ -> onError = { _, _ ->
runIfFragmentIsAttached { runIfFragmentIsAttached {
enable_switch.isClickable = true
showSnackBar( showSnackBar(
view, view,
getString( getString(