added minimal error handling and user feedback

This commit is contained in:
2026-01-22 18:09:34 +01:00
parent 27c3804b1e
commit 06c5ca9910
5 changed files with 88 additions and 43 deletions

View File

@@ -1,3 +1,5 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
@@ -43,20 +45,42 @@ class _SettingsPageState extends State<SettingsPage> {
}
void onActivateJsonExportPressed() async {
if (await checkStoragePermission) Storage.exportToJsonFile();
if (!await checkStoragePermission) return;
Storage.exportToJsonFile().then(showExportInfo);
}
void onActivateJsonImportPressed() async {
if (await checkStoragePermission) Storage.importFromJsonFile();
if (!await checkStoragePermission) return;
Storage.importFromJsonFile().then(showImportInfo);
}
Future<bool> get checkStoragePermission async {
if (!(await PermissionService.requestStoragePermission).isGranted) {
if (mounted) {
Notifying.showStoragePermissionErrorSnackbar(context);
Notifying.showErrorSnackbar(
context,
AppLocalizations.of(context)!.errorStoragePermisson,
);
return false;
}
}
return true;
}
void showExportInfo(bool success) => Notifying.showSnackbar(
context,
text: success
? AppLocalizations.of(context)!.exportSuccess
: AppLocalizations.of(context)!.exportFailed,
isError: success,
);
void showImportInfo(bool success) => Notifying.showSnackbar(
context,
text: success
? AppLocalizations.of(context)!.importSuccess
: AppLocalizations.of(context)!.importFailed,
isError: success,
);
}