mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-17 05:41:29 +02:00
feat: better backup errors (#2290)
Instead of creating error reports show the error to user use BackupVersion.unknown
This commit is contained in:
@@ -177,7 +177,7 @@ class BackupServiceV3 extends $BackupService {
|
||||
final archive = ZipDecoder().decodeStream(inputStream);
|
||||
final metadataFile = archive.findFile('metadata.json');
|
||||
if (metadataFile == null) {
|
||||
throw Exception('Invalid v3 backup: missing metadata.json');
|
||||
return BackupVersion.unknown;
|
||||
}
|
||||
final metadataBytes = metadataFile.rawContent!.readBytes();
|
||||
final metadataString = utf8.decode(metadataBytes);
|
||||
@@ -188,7 +188,7 @@ class BackupServiceV3 extends $BackupService {
|
||||
}
|
||||
}
|
||||
|
||||
throw Exception('Invalid backup file: unknown version');
|
||||
return BackupVersion.unknown;
|
||||
} finally {
|
||||
raf.closeSync();
|
||||
}
|
||||
|
||||
@@ -173,8 +173,19 @@ class RestoreFromBackupPage extends BasePage {
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
await restoreFromBackupViewModel.import(textEditingController.text);
|
||||
try {
|
||||
await restoreFromBackupViewModel.import(textEditingController.text);
|
||||
} catch (e) {
|
||||
await showPopUp<void>(
|
||||
context: context,
|
||||
builder: (_) {
|
||||
return AlertWithOneAction(
|
||||
alertTitle: S.current.error,
|
||||
alertContent: e.toString(),
|
||||
buttonText: S.of(context).ok,
|
||||
buttonAction: () => Navigator.of(context).pop());
|
||||
});
|
||||
}
|
||||
textEditingController.text = '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,12 +45,11 @@ abstract class RestoreFromBackupViewModelBase with Store {
|
||||
|
||||
try {
|
||||
await backupService.importBackupFile(file, password);
|
||||
} catch (e, s) {
|
||||
} catch (e) {
|
||||
if (e.toString().contains("unknown_backup_version")) {
|
||||
state = FailureState('This is not a valid backup file, please make sure you selected the correct backup file');
|
||||
state = FailureState('This is not a valid backup file, please make sure you have selected the correct one');
|
||||
} else {
|
||||
state = FailureState('Failed to restore backup, please try again');
|
||||
ExceptionHandler.onError(FlutterErrorDetails(exception: e, stack: s));
|
||||
state = FailureState(e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user