Ask user first before uninstalling an app via root
This commit is contained in:
@@ -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() {
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user