diff --git a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt index 0bcc4c719..fe111d948 100644 --- a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt @@ -69,6 +69,7 @@ import com.aurora.store.data.downloader.getGroupId import com.aurora.store.data.event.BusEvent import com.aurora.store.data.event.InstallerEvent import com.aurora.store.data.installer.AppInstaller +import com.aurora.store.data.installer.RootInstaller import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.service.AppMetadataStatusListener import com.aurora.store.data.service.UpdateService @@ -95,6 +96,7 @@ import com.aurora.store.viewmodel.details.AppDetailsViewModel import com.aurora.store.viewmodel.details.DetailsClusterViewModel import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.tonyodev.fetch2.AbstractFetchGroupListener import com.tonyodev.fetch2.Download import com.tonyodev.fetch2.Error @@ -110,6 +112,7 @@ import org.greenrobot.eventbus.ThreadMode import java.io.File import java.util.Locale + class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { private var _binding: FragmentDetailsBinding? = null @@ -480,8 +483,23 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { @Synchronized private fun uninstallApp() { - AppInstaller.getInstance(requireContext()).getPreferredInstaller() - .uninstall(app.packageName) + val installer = AppInstaller.getInstance(requireContext()).getPreferredInstaller() + + if (installer is RootInstaller) { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(app.displayName) + .setMessage(requireContext().getString(R.string.action_uninstall_confirmation)) + .setPositiveButton(requireContext().getString(android.R.string.ok)) { _, _ -> + installer.uninstall(app.packageName) + } + .setNegativeButton(requireContext().getString(android.R.string.cancel)) { dialog, _ -> + dialog.dismiss() + } + .create() + .show() + } else { + installer.uninstall(app.packageName) + } } private fun attachWhiteListStatus() { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4a2de2e53..2421c0298 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -92,6 +92,7 @@ "Search" "Share" "Uninstall" + "Do you want to uninstall this app ?" "App Info" "Update" "Update all"