diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt
index f4505ef2..f919c7b5 100644
--- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt
+++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt
@@ -84,6 +84,8 @@ fun ModuleScreen(navigator: DestinationsNavigator) {
) { innerPadding ->
val failedEnable = stringResource(R.string.module_failed_to_enable)
val failedDisable = stringResource(R.string.module_failed_to_disable)
+ val failedUninstall = stringResource(R.string.module_uninstall_failed)
+ val successUninstall = stringResource(R.string.module_uninstall_success)
val swipeState = rememberSwipeRefreshState(viewModel.isRefreshing)
// TODO: Replace SwipeRefresh with RefreshIndicator when it's ready
if (Natives.getVersion() < 8) {
@@ -116,6 +118,13 @@ fun ModuleScreen(navigator: DestinationsNavigator) {
onUninstall = {
scope.launch {
val result = uninstallModule(module.id)
+ snackBarHost.showSnackbar(
+ if (result) {
+ successUninstall.format(module.name)
+ } else {
+ failedUninstall.format(module.name)
+ }
+ )
}
},
onCheckChanged = {
@@ -224,7 +233,7 @@ private fun ModuleItem(
Spacer(modifier = Modifier.weight(1f, true))
TextButton(
- enabled = !module.update && !module.remove,
+ enabled = !module.remove,
onClick = { onUninstall(module) },
) {
Text(
diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml
index e349971c..df8ae7e2 100644
--- a/manager/app/src/main/res/values/strings.xml
+++ b/manager/app/src/main/res/values/strings.xml
@@ -40,5 +40,7 @@
Use overlayfs to make system partition writable, reboot to take effect.
About
Require KernelSU version 8+
+ %s uninstalled
+ Failed to uninstall: %s