diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index fe7a023..d7301bd 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -6,6 +6,7 @@ import 'package:flutter/material.dart'; import 'package:fforte/l10n/app_localizations.dart'; +import 'package:open_file_manager/open_file_manager.dart'; import 'package:shared_preferences/shared_preferences.dart'; // * Widget for the settings screen @@ -24,7 +25,7 @@ class _SettingsState extends State { @override void initState() { super.initState(); - _loadSettings(); // Load saved settings on start + _loadSettings(); // Load saved settings on start } // * Load settings from SharedPreferences @@ -72,20 +73,23 @@ class _SettingsState extends State { ), // Display current save directory FutureBuilder( - future: _getSaveDir(), - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.done) { - return Text(snapshot.data ?? ""); - } else { - return const Text(""); - } - } - ), + future: _getSaveDir(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.done) { + return Text(snapshot.data ?? ""); + } else { + return const Text(""); + } + }), // Button to open directory selection ElevatedButton( - onPressed: () {}, - child: Text(AppLocalizations.of(context)!.open) - ), + onPressed: () async { + await openFileManager( + androidConfig: AndroidConfig( + folderType: AndroidFolderType.other, + folderPath: await _getSaveDir())); + }, + child: Text(AppLocalizations.of(context)!.open)), const SizedBox(height: 24), // * Tracking interval section diff --git a/pubspec.lock b/pubspec.lock index baa3c91..ba83638 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -493,6 +493,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.3" + open_file_manager: + dependency: "direct main" + description: + name: open_file_manager + sha256: e8a08a7a12b33b5d77b0d458c2ae656a4396ff1dd1d79a877f7dcb228f47fadc + url: "https://pub.dev" + source: hosted + version: "2.0.1" path: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 604e2e9..c2f66de 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,6 +34,7 @@ dependencies: flutter_slidable: ^4.0.0 flutter_local_notifications: ^19.2.0 flutter_map_location_marker: ^10.1.0 + open_file_manager: ^2.0.1 dev_dependencies: flutter_lints: ^5.0.0