diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Install.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Install.kt index fdab4ce8..839a167a 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Install.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Install.kt @@ -16,6 +16,7 @@ import androidx.compose.material.icons.filled.Refresh import androidx.compose.material.icons.filled.Save import androidx.compose.material3.* import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview @@ -43,15 +44,16 @@ import java.util.* @Destination fun InstallScreen(navigator: DestinationsNavigator, uri: Uri) { - var text by remember { mutableStateOf("") } - var showFloatAction by remember { - mutableStateOf(false) - } + var text by rememberSaveable { mutableStateOf("") } + var showFloatAction by rememberSaveable { mutableStateOf(false) } val snackBarHost = LocalSnackbarHost.current val scope = rememberCoroutineScope() LaunchedEffect(Unit) { + if (text.isNotEmpty()) { + return@LaunchedEffect + } withContext(Dispatchers.IO) { installModule(uri, onFinish = { success -> if (success) {