diff --git a/app/src/main/java/app/revanced/manager/ui/screen/settings/ImportExportSettingsScreen.kt b/app/src/main/java/app/revanced/manager/ui/screen/settings/ImportExportSettingsScreen.kt
index 84a96694..a1b01667 100644
--- a/app/src/main/java/app/revanced/manager/ui/screen/settings/ImportExportSettingsScreen.kt
+++ b/app/src/main/java/app/revanced/manager/ui/screen/settings/ImportExportSettingsScreen.kt
@@ -37,6 +37,7 @@ import app.revanced.manager.ui.component.bundle.BundleSelector
import app.revanced.manager.ui.component.settings.SettingsListItem
import app.revanced.manager.ui.viewmodel.ImportExportViewModel
import app.revanced.manager.util.toast
+import app.revanced.manager.util.uiSafe
import kotlinx.coroutines.launch
import org.koin.androidx.compose.koinViewModel
@@ -86,8 +87,10 @@ fun ImportExportSettingsScreen(
onDismissRequest = vm::cancelKeystoreImport,
onSubmit = { cn, pass ->
vm.viewModelScope.launch {
- val result = vm.tryKeystoreImport(cn, pass)
- if (!result) context.toast(context.getString(R.string.import_keystore_wrong_credentials))
+ uiSafe(context, R.string.failed_to_import_keystore, "Failed to import keystore") {
+ val result = vm.tryKeystoreImport(cn, pass)
+ if (!result) context.toast(context.getString(R.string.import_keystore_wrong_credentials))
+ }
}
}
)
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 9bf08562..6fa042b7 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
@@ -69,25 +69,27 @@ class ImportExportViewModel(
}
fun startKeystoreImport(content: Uri) = viewModelScope.launch {
- val path = withContext(Dispatchers.IO) {
- File.createTempFile("signing", "ks", app.cacheDir).toPath().also {
- Files.copy(
- contentResolver.openInputStream(content)!!,
- it,
- StandardCopyOption.REPLACE_EXISTING
- )
- }
- }
-
- aliases.forEach { alias ->
- knownPasswords.forEach { pass ->
- if (tryKeystoreImport(alias, pass, path)) {
- return@launch
+ uiSafe(app, R.string.failed_to_import_keystore, "Failed to import keystore") {
+ val path = withContext(Dispatchers.IO) {
+ File.createTempFile("signing", "ks", app.cacheDir).toPath().also {
+ Files.copy(
+ contentResolver.openInputStream(content)!!,
+ it,
+ StandardCopyOption.REPLACE_EXISTING
+ )
}
}
- }
- keystoreImportPath = path
+ aliases.forEach { alias ->
+ knownPasswords.forEach { pass ->
+ if (tryKeystoreImport(alias, pass, path)) {
+ return@launch
+ }
+ }
+ }
+
+ keystoreImportPath = path
+ }
}
fun cancelKeystoreImport() {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 025b1973..7a54b8d0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -419,4 +419,5 @@
Never show again
Show update message on launch
Shows a popup notification whenever there is a new update available on launch.
+ Failed to import keystore