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"