Skip to content

Commit c4de37e

Browse files
author
LaksCastro
committed
(#10, #11) Add minor code improvements
1 parent c219a9e commit c4de37e

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

android/src/main/kotlin/io/lakscastro/sharedstorage/saf/DocumentFileApi.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.os.Build
66
import android.provider.DocumentsContract
77
import android.util.Log
88
import androidx.annotation.RequiresApi
9+
import androidx.documentfile.provider.DocumentFile
910
import io.flutter.plugin.common.*
1011
import io.flutter.plugin.common.EventChannel.StreamHandler
1112
import io.lakscastro.sharedstorage.ROOT_CHANNEL
@@ -15,6 +16,7 @@ import io.lakscastro.sharedstorage.saf.utils.*
1516
import kotlinx.coroutines.CoroutineScope
1617
import kotlinx.coroutines.Dispatchers
1718
import kotlinx.coroutines.launch
19+
import java.io.File
1820

1921
internal class DocumentFileApi(private val plugin: SharedStoragePlugin) :
2022
MethodChannel.MethodCallHandler,
@@ -173,8 +175,7 @@ internal class DocumentFileApi(private val plugin: SharedStoragePlugin) :
173175
val uri = call.argument<String>("uri")!!
174176
val parent = documentFromTreeUri(plugin.context, uri)?.parentFile
175177

176-
if (parent != null)
177-
result.success(createDocumentFileMap(parent))
178+
result.success(if (parent != null) createDocumentFileMap(parent) else null)
178179
}
179180
}
180181
else -> result.notImplemented()

example/lib/list_files.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ class _FileTileState extends State<FileTile> {
117117
height: _size.height,
118118
);
119119

120-
if (bitmap == null) return;
120+
if (bitmap == null || !mounted) return;
121121

122122
setState(() => imageBytes = bitmap.bytes);
123123
}

lib/src/storage_access_framework/saf.dart

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,18 @@ import 'package:shared_storage/src/storage_access_framework/uri_permission.dart'
1212
///
1313
/// [Refer to details](https://developer.android.com/reference/android/content/Intent#ACTION_OPEN_DOCUMENT_TREE)
1414
///
15-
/// TODO: Implement [initialDir] param to
1615
/// support the initial directory of the directory picker
17-
Future<Uri?> openDocumentTree({bool grantWritePermission = true}) async {
16+
Future<Uri?> openDocumentTree(
17+
{bool grantWritePermission = true, Uri? initialUri}) async {
1818
const kOpenDocumentTree = 'openDocumentTree';
1919

2020
const kGrantWritePermission = 'grantWritePermission';
21+
const kInitialUri = 'initialUri';
2122

22-
final args = <String, dynamic>{kGrantWritePermission: grantWritePermission};
23+
final args = <String, dynamic>{
24+
kGrantWritePermission: grantWritePermission,
25+
kInitialUri: '$initialUri'
26+
};
2327

2428
final selectedDirectoryUri =
2529
await kDocumentFileChannel.invokeMethod<String?>(kOpenDocumentTree, args);

0 commit comments

Comments
 (0)