From 48fe3a707eed24f1634ff009b787254976ea0220 Mon Sep 17 00:00:00 2001 From: Ax333l Date: Wed, 3 Jul 2024 14:46:00 +0200 Subject: [PATCH] fix: import export screen UX --- .../manager/domain/manager/KeystoreManager.kt | 8 +++++--- .../manager/ui/viewmodel/ImportExportViewModel.kt | 12 ++++++++++-- app/src/main/res/values/strings.xml | 7 ++++++- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/app/revanced/manager/domain/manager/KeystoreManager.kt b/app/src/main/java/app/revanced/manager/domain/manager/KeystoreManager.kt index bba8035f..c1c4700d 100644 --- a/app/src/main/java/app/revanced/manager/domain/manager/KeystoreManager.kt +++ b/app/src/main/java/app/revanced/manager/domain/manager/KeystoreManager.kt @@ -49,15 +49,17 @@ class KeystoreManager(app: Application, private val prefs: PreferencesManager) { ) ) ) - keystorePath.outputStream().use { - ks.store(it, null) + withContext(Dispatchers.IO) { + keystorePath.outputStream().use { + ks.store(it, null) + } } updatePrefs(DEFAULT, DEFAULT) } suspend fun import(cn: String, pass: String, keystore: InputStream): Boolean { - val keystoreData = keystore.readBytes() + val keystoreData = withContext(Dispatchers.IO) { keystore.readBytes() } try { val ks = ApkSigner.readKeyStore(ByteArrayInputStream(keystoreData), null) diff --git a/app/src/main/java/app/revanced/manager/ui/viewmodel/ImportExportViewModel.kt b/app/src/main/java/app/revanced/manager/ui/viewmodel/ImportExportViewModel.kt index d568317d..9bf08562 100644 --- a/app/src/main/java/app/revanced/manager/ui/viewmodel/ImportExportViewModel.kt +++ b/app/src/main/java/app/revanced/manager/ui/viewmodel/ImportExportViewModel.kt @@ -55,14 +55,17 @@ class ImportExportViewModel( fun resetOptionsForPackage(packageName: String) = viewModelScope.launch { optionsRepository.clearOptionsForPackage(packageName) + app.toast(app.getString(R.string.patch_options_reset_toast)) } fun clearOptionsForBundle(patchBundle: PatchBundleSource) = viewModelScope.launch { optionsRepository.clearOptionsForPatchBundle(patchBundle.uid) + app.toast(app.getString(R.string.patch_options_reset_toast)) } fun resetOptions() = viewModelScope.launch { optionsRepository.reset() + app.toast(app.getString(R.string.patch_options_reset_toast)) } fun startKeystoreImport(content: Uri) = viewModelScope.launch { @@ -98,6 +101,7 @@ class ImportExportViewModel( private suspend fun tryKeystoreImport(cn: String, pass: String, path: Path): Boolean { path.inputStream().use { stream -> if (keystoreManager.import(cn, pass, stream)) { + app.toast(app.getString(R.string.import_keystore_success)) cancelKeystoreImport() return true } @@ -116,6 +120,7 @@ class ImportExportViewModel( fun exportKeystore(target: Uri) = viewModelScope.launch { keystoreManager.export(contentResolver.openOutputStream(target)!!) + app.toast(app.getString(R.string.export_keystore_success)) } fun regenerateKeystore() = viewModelScope.launch { @@ -123,8 +128,9 @@ class ImportExportViewModel( app.toast(app.getString(R.string.regenerate_keystore_success)) } - fun resetSelection() = viewModelScope.launch(Dispatchers.Default) { - selectionRepository.reset() + fun resetSelection() = viewModelScope.launch { + withContext(Dispatchers.Default) { selectionRepository.reset() } + app.toast(app.getString(R.string.reset_patch_selection_success)) } fun executeSelectionAction(target: Uri) = viewModelScope.launch { @@ -173,6 +179,7 @@ class ImportExportViewModel( } selectionRepository.import(bundleUid, selection) + app.toast(app.getString(R.string.import_patch_selection_success)) } } @@ -191,6 +198,7 @@ class ImportExportViewModel( Json.Default.encodeToStream(selection, it) } } + app.toast(app.getString(R.string.export_patch_selection_success)) } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5b833f6a..4fd92ba9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -81,20 +81,25 @@ Password Import Wrong keystore credentials + Imported keystore Export keystore Export the current keystore No keystore to export + Exported keystore Regenerate keystore Generate a new keystore The keystore has been successfully replaced Import patch selection Import patch selection from a JSON file Could not import patch selection: %s + Imported patch selection Export patch selection - Export patch selection from a JSON file + Export patch selection to a JSON file Could not export patch selection: %s + Exported patch selection Reset patch selection Reset the stored patch selection + Patch selection has been reset Reset patch options for app Resets patch options for a single app Resets patch options for bundle