diff --git a/app/src/main/java/com/aurora/store/data/installer/RootInstaller.kt b/app/src/main/java/com/aurora/store/data/installer/RootInstaller.kt index 11a442ccb..89ef8bf6a 100644 --- a/app/src/main/java/com/aurora/store/data/installer/RootInstaller.kt +++ b/app/src/main/java/com/aurora/store/data/installer/RootInstaller.kt @@ -51,17 +51,40 @@ class RootInstaller(context: Context) : InstallerBase(context) { xInstallLegacy(packageName, it) } } else { - val event = InstallerEvent.Failed( + postError( packageName, context.getString(R.string.installer_status_failure), context.getString(R.string.installer_root_unavailable) ) - EventBus.getDefault().post(event) Log.e(" >>>>>>>>>>>>>>>>>>>>>>>>>> NO ROOT ACCESS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<") } } } + override fun uninstall(packageName: String) { + if (Shell.getShell().isRoot) { + val result: Shell.Result = + Shell.su("pm uninstall --user 0 $packageName") + .exec() + val response = result.out + + if (response[0] != "Success") { + postError( + packageName, + context.getString(R.string.installer_status_failure), + parseError(result) + ) + } + } else { + postError( + packageName, + context.getString(R.string.installer_status_failure), + context.getString(R.string.installer_root_unavailable) + ) + Log.e(" >>>>>>>>>>>>>>>>>>>>>>>>>> NO ROOT ACCESS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<") + } + } + private fun xInstall(packageName: String, files: List) { var totalSize = 0 @@ -99,21 +122,19 @@ class RootInstaller(context: Context) : InstallerBase(context) { } } else { removeFromInstallQueue(packageName) - val event = InstallerEvent.Failed( + postError( packageName, context.getString(R.string.installer_status_failure), context.getString(R.string.installer_root_unavailable) ) - EventBus.getDefault().post(event) } } else { removeFromInstallQueue(packageName) - val event = InstallerEvent.Failed( + postError( packageName, context.getString(R.string.installer_status_failure), context.getString(R.string.installer_status_failure_session) ) - EventBus.getDefault().post(event) } } diff --git a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt index be47248a9..708c4eef4 100644 --- a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt @@ -272,9 +272,11 @@ class AppDetailsActivity : BaseDetailsActivity() { @Synchronized private fun uninstallApp() { - AppInstaller(this) - .getPreferredInstaller() - .uninstall(app.packageName) + task { + AppInstaller(this) + .getPreferredInstaller() + .uninstall(app.packageName) + } } private fun attachWhiteListStatus() { diff --git a/app/src/main/java/com/aurora/store/view/ui/sheets/AppMenuSheet.kt b/app/src/main/java/com/aurora/store/view/ui/sheets/AppMenuSheet.kt index e4f5fa1a6..310e86df9 100644 --- a/app/src/main/java/com/aurora/store/view/ui/sheets/AppMenuSheet.kt +++ b/app/src/main/java/com/aurora/store/view/ui/sheets/AppMenuSheet.kt @@ -107,8 +107,10 @@ class AppMenuSheet : BaseBottomSheet() { } R.id.action_uninstall -> { - AppInstaller(requireContext()) - .getPreferredInstaller().uninstall(app.packageName) + task { + AppInstaller(requireContext()) + .getPreferredInstaller().uninstall(app.packageName) + } } R.id.action_info -> { diff --git a/app/src/main/res/xml/preferences_main.xml b/app/src/main/res/xml/preferences_main.xml index 97d8d32f7..c0f702f19 100644 --- a/app/src/main/res/xml/preferences_main.xml +++ b/app/src/main/res/xml/preferences_main.xml @@ -46,7 +46,7 @@ android:fragment="com.aurora.store.view.ui.preferences.DownloadPreference" app:icon="@drawable/ic_download_manager" app:iconSpaceReserved="false" - app:key="pref_ui" + app:key="pref_download" app:layout="@layout/item_preference" app:title="@string/pref_app_download" /> \ No newline at end of file