From d3a0d4fcfa51110d8c6ae279e2910439254b6813 Mon Sep 17 00:00:00 2001
From: Vishesh Handa <me@vhanda.in>
Date: Fri, 9 Oct 2020 10:54:16 +0200
Subject: [PATCH] External Storage: Use ext_storage package

This actually gives the top level directory in Android, as I want.
---
 lib/screens/settings_screen.dart | 6 +++---
 pubspec.lock                     | 7 +++++++
 pubspec.yaml                     | 1 +
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart
index c920bb1e..6824fed7 100644
--- a/lib/screens/settings_screen.dart
+++ b/lib/screens/settings_screen.dart
@@ -4,9 +4,9 @@ import 'package:flutter/material.dart';
 
 import 'package:dynamic_theme/dynamic_theme.dart';
 import 'package:easy_localization/easy_localization.dart';
+import 'package:ext_storage/ext_storage.dart';
 import 'package:filesystem_picker/filesystem_picker.dart';
 import 'package:path/path.dart' as p;
-import 'package:path_provider/path_provider.dart';
 import 'package:permission_handler/permission_handler.dart';
 import 'package:provider/provider.dart';
 import 'package:url_launcher/url_launcher.dart';
@@ -308,11 +308,11 @@ class SettingsListState extends State<SettingsList> {
               }
               settings.storeInternally = true;
 
-              var root = await getExternalStorageDirectory();
+              var root = await ExtStorage.getExternalStorageDirectory();
               String path = await FilesystemPicker.open(
                 title: tr('settings.storage.repoLocation'),
                 context: context,
-                rootDirectory: root,
+                rootDirectory: Directory(root),
                 fsType: FilesystemType.folder,
                 folderIconColor: Colors.green[500],
               );
diff --git a/pubspec.lock b/pubspec.lock
index 35e4d9b9..63567b21 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -227,6 +227,13 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "1.1.1"
+  ext_storage:
+    dependency: "direct main"
+    description:
+      name: ext_storage
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.3"
   fake_async:
     dependency: transitive
     description:
diff --git a/pubspec.yaml b/pubspec.yaml
index aeaed48a..a2d34f2b 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -61,6 +61,7 @@ dependencies:
   file_picker: ^2.0.7
   filesystem_picker: ^1.0.3 # for directories
   permission_handler: ^5.0.1+1
+  ext_storage: ^1.0.3
 
 dev_dependencies:
   flutter_launcher_icons: "^0.7.2"