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