From 80811bf12db390d91836022a15df2e5a128834fb Mon Sep 17 00:00:00 2001 From: nyne Date: Mon, 2 Dec 2024 11:39:28 +0800 Subject: [PATCH] rollback android storage setting --- lib/pages/settings/app.dart | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/pages/settings/app.dart b/lib/pages/settings/app.dart index c59e19e..69978f7 100644 --- a/lib/pages/settings/app.dart +++ b/lib/pages/settings/app.dart @@ -34,8 +34,25 @@ class _AppSettingsState extends State { callback: () async { String? result; if (App.isAndroid) { - var picker = DirectoryPicker(); - result = (await picker.pickDirectory())?.path; + var channel = const MethodChannel("venera/storage"); + var permission = await channel.invokeMethod(''); + if (permission != true) { + context.showMessage(message: "Permission denied".tl); + return; + } + var path = await selectDirectory(); + if (path != null) { + // check if the path is writable + var testFile = File(FilePath.join(path, "test")); + try { + await testFile.writeAsBytes([1]); + await testFile.delete(); + } catch (e) { + context.showMessage(message: "Permission denied".tl); + return; + } + result = path; + } } else if (App.isIOS) { result = await selectDirectoryIOS(); } else {