|
@@ -238,7 +238,7 @@ object SettingsBackupScreen : SearchableSettings {
|
|
|
AlertDialog(
|
|
|
onDismissRequest = onDismissRequest,
|
|
|
title = { Text(text = stringResource(R.string.invalid_backup_file)) },
|
|
|
- text = { Text(text = "${err.uri}\n\n${err.message}") },
|
|
|
+ text = { Text(text = listOfNotNull(err.uri, err.message).joinToString("\n\n")) },
|
|
|
dismissButton = {
|
|
|
TextButton(
|
|
|
onClick = {
|
|
@@ -310,21 +310,24 @@ object SettingsBackupScreen : SearchableSettings {
|
|
|
}
|
|
|
},
|
|
|
) {
|
|
|
- if (it != null) {
|
|
|
- val results = try {
|
|
|
- BackupFileValidator().validate(context, it)
|
|
|
- } catch (e: Exception) {
|
|
|
- error = InvalidRestore(it, e.message.toString())
|
|
|
- return@rememberLauncherForActivityResult
|
|
|
- }
|
|
|
+ if (it == null) {
|
|
|
+ error = InvalidRestore(message = context.getString(R.string.file_null_uri_error))
|
|
|
+ return@rememberLauncherForActivityResult
|
|
|
+ }
|
|
|
|
|
|
- if (results.missingSources.isEmpty() && results.missingTrackers.isEmpty()) {
|
|
|
- BackupRestoreJob.start(context, it)
|
|
|
- return@rememberLauncherForActivityResult
|
|
|
- }
|
|
|
+ val results = try {
|
|
|
+ BackupFileValidator().validate(context, it)
|
|
|
+ } catch (e: Exception) {
|
|
|
+ error = InvalidRestore(it, e.message.toString())
|
|
|
+ return@rememberLauncherForActivityResult
|
|
|
+ }
|
|
|
|
|
|
- error = MissingRestoreComponents(it, results.missingSources, results.missingTrackers)
|
|
|
+ if (results.missingSources.isEmpty() && results.missingTrackers.isEmpty()) {
|
|
|
+ BackupRestoreJob.start(context, it)
|
|
|
+ return@rememberLauncherForActivityResult
|
|
|
}
|
|
|
+
|
|
|
+ error = MissingRestoreComponents(it, results.missingSources, results.missingTrackers)
|
|
|
}
|
|
|
|
|
|
return Preference.PreferenceItem.TextPreference(
|
|
@@ -421,6 +424,6 @@ private data class MissingRestoreComponents(
|
|
|
)
|
|
|
|
|
|
private data class InvalidRestore(
|
|
|
- val uri: Uri,
|
|
|
+ val uri: Uri? = null,
|
|
|
val message: String,
|
|
|
)
|