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