import 'package:flutter/material.dart'; import 'package:permission_handler/permission_handler.dart'; import '../l10n/app_localizations.dart'; import '../service/notifying.dart'; import '../service/permission_service.dart'; import '../service/storage.dart'; class SettingsPage extends StatefulWidget { static const routeName = '/settings'; const SettingsPage({super.key}); @override State createState() => _SettingsPageState(); } class _SettingsPageState extends State { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text(AppLocalizations.of(context)!.settings)), body: SizedBox( width: MediaQuery.of(context).size.width * 0.9, child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( AppLocalizations.of(context)!.appData, style: Theme.of(context).textTheme.titleLarge, ), ElevatedButton( onPressed: () => onActivateJsonImportPressed(), child: Text(AppLocalizations.of(context)!.import), ), ElevatedButton( onPressed: () => onActivateJsonExportPressed(), child: Text(AppLocalizations.of(context)!.export), ), ], ), ), ); } void onActivateJsonExportPressed() async { if (await checkStoragePermission) Storage.exportToJsonFile(); } void onActivateJsonImportPressed() async { if (await checkStoragePermission) Storage.importFromJsonFile(); } Future get checkStoragePermission async { if (!(await PermissionService.requestStoragePermission).isGranted) { if (mounted) { Notifying.showStoragePermissionErrorSnackbar(context); return false; } } return true; } }