diff --git a/app/src/main/kotlin/com/aliucord/manager/domain/manager/PreferencesManager.kt b/app/src/main/kotlin/com/aliucord/manager/domain/manager/PreferencesManager.kt index e9c0ed5..5a957e7 100644 --- a/app/src/main/kotlin/com/aliucord/manager/domain/manager/PreferencesManager.kt +++ b/app/src/main/kotlin/com/aliucord/manager/domain/manager/PreferencesManager.kt @@ -15,4 +15,5 @@ class PreferencesManager(preferences: SharedPreferences) : BasePreferenceManager var packageName by stringPreference("package_name", "com.aliucord") var version by stringPreference("version", "146108") var hermesReplaceLibCpp by booleanPreference("hermes_replace_libcpp", false) + var keepPatchedApks by booleanPreference("keep_patched_apks", false) } diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screen/SettingsScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screen/SettingsScreen.kt index 4753e06..ceb9010 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screen/SettingsScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screen/SettingsScreen.kt @@ -64,6 +64,13 @@ fun SettingsScreen( SettingsHeader(stringResource(R.string.settings_advanced)) + SettingsTextField( + label = stringResource(R.string.setting_app_name), + pref = preferences.appName, + onPrefChange = viewModel::setAppName + ) + Spacer(modifier = Modifier.height(4.dp)) + SettingsSwitch( label = stringResource(R.string.setting_replace_icon), secondaryLabel = stringResource(R.string.setting_replace_icon_desc), @@ -73,14 +80,16 @@ fun SettingsScreen( preferences.replaceIcon = it } - Spacer(modifier = Modifier.height(8.dp)) - - SettingsTextField( - label = stringResource(R.string.setting_app_name), - pref = preferences.appName, - onPrefChange = viewModel::setAppName + SettingsSwitch( + label = stringResource(R.string.setting_keep_patched_apks), + secondaryLabel = stringResource(R.string.setting_keep_patched_apks_desc), + icon = { Icon(Icons.Default.DeleteForever, null) }, + pref = preferences.keepPatchedApks, + onPrefChange = { preferences.keepPatchedApks = it }, ) + Spacer(modifier = Modifier.height(14.dp)) + SettingsSwitch( label = stringResource(R.string.settings_developer_options), pref = preferences.devMode, @@ -95,7 +104,7 @@ fun SettingsScreen( exit = shrinkVertically() ) { Column( - verticalArrangement = Arrangement.spacedBy(12.dp) + verticalArrangement = Arrangement.spacedBy(6.dp) ) { SettingsTextField( label = stringResource(R.string.setting_package_name), diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/viewmodel/InstallViewModel.kt b/app/src/main/kotlin/com/aliucord/manager/ui/viewmodel/InstallViewModel.kt index 9b4828b..2b0821c 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/viewmodel/InstallViewModel.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/viewmodel/InstallViewModel.kt @@ -436,9 +436,11 @@ class InstallViewModel( step(InstallStep.INSTALL_APK) { application.installApks(silent = !preferences.devMode, *apks) - } - patchedDir.deleteRecursively() + if (!preferences.keepPatchedApks) { + patchedDir.deleteRecursively() + } + } } private suspend fun installKotlin() { @@ -636,9 +638,11 @@ class InstallViewModel( step(InstallStep.INSTALL_APK) { application.installApks(silent = !preferences.devMode, baseApkFile) - } - patchedDir.deleteRecursively() + if (!preferences.keepPatchedApks) { + patchedDir.deleteRecursively() + } + } } @OptIn(ExperimentalTime::class) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0e91dcf..c239733 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -54,6 +54,8 @@ Dynamic color Replace libc++ (RN only) Downloads and uses libc++ from patched hermes + Keep patched APKs + Don\'t delete patched APKs after installing (for installing manually) Invalid package name, reset to com.aliucord System