For #8699: Add setAllInteractiveViewsClickable for add-on pending removal (#8776)

fennec/beta
Simon Chae 4 years ago committed by GitHub
parent 314bee2abd
commit f99bad949e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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

Loading…
Cancel
Save