Ask user first before uninstalling an app via root

This commit is contained in:
Rahul Patel
2023-10-15 03:50:55 +05:30
parent 0c9f739211
commit 2220d58c82
2 changed files with 21 additions and 2 deletions

View File

@@ -69,6 +69,7 @@ import com.aurora.store.data.downloader.getGroupId
import com.aurora.store.data.event.BusEvent import com.aurora.store.data.event.BusEvent
import com.aurora.store.data.event.InstallerEvent import com.aurora.store.data.event.InstallerEvent
import com.aurora.store.data.installer.AppInstaller 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.providers.AuthProvider
import com.aurora.store.data.service.AppMetadataStatusListener import com.aurora.store.data.service.AppMetadataStatusListener
import com.aurora.store.data.service.UpdateService 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.aurora.store.viewmodel.details.DetailsClusterViewModel
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.tonyodev.fetch2.AbstractFetchGroupListener import com.tonyodev.fetch2.AbstractFetchGroupListener
import com.tonyodev.fetch2.Download import com.tonyodev.fetch2.Download
import com.tonyodev.fetch2.Error import com.tonyodev.fetch2.Error
@@ -110,6 +112,7 @@ import org.greenrobot.eventbus.ThreadMode
import java.io.File import java.io.File
import java.util.Locale import java.util.Locale
class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
private var _binding: FragmentDetailsBinding? = null private var _binding: FragmentDetailsBinding? = null
@@ -480,8 +483,23 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
@Synchronized @Synchronized
private fun uninstallApp() { private fun uninstallApp() {
AppInstaller.getInstance(requireContext()).getPreferredInstaller() val installer = AppInstaller.getInstance(requireContext()).getPreferredInstaller()
.uninstall(app.packageName)
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() { private fun attachWhiteListStatus() {

View File

@@ -92,6 +92,7 @@
<string name="action_search">"Search"</string> <string name="action_search">"Search"</string>
<string name="action_share">"Share"</string> <string name="action_share">"Share"</string>
<string name="action_uninstall">"Uninstall"</string> <string name="action_uninstall">"Uninstall"</string>
<string name="action_uninstall_confirmation">"Do you want to uninstall this app ?"</string>
<string name="action_info">"App Info"</string> <string name="action_info">"App Info"</string>
<string name="action_update">"Update"</string> <string name="action_update">"Update"</string>
<string name="action_update_all">"Update all"</string> <string name="action_update_all">"Update all"</string>