From 2ad88bf3cab6c1142b19a889b722a08bb17b209c Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Fri, 1 Nov 2024 13:28:10 -0400 Subject: [PATCH] Fix PathAccessException on secondary profiles (#1754) --- lib/providers/apps_provider.dart | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index 2f3084e..641dc38 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -743,6 +743,10 @@ class AppsProvider with ChangeNotifier { return installed; } + Future getStorageRootPath() async { + return '/${(await getExternalStorageDirectory())!.uri.pathSegments.sublist(0, 3).join('/')}'; + } + Future moveObbFile(File file, String appId) async { if (!file.path.toLowerCase().endsWith('.obb')) return; @@ -751,7 +755,7 @@ class AppsProvider with ChangeNotifier { await Permission.storage.request(); } - String obbDirPath = "/storage/emulated/0/Android/obb/$appId"; + String obbDirPath = "${await getStorageRootPath()}/Android/obb/$appId"; Directory(obbDirPath).createSync(recursive: true); String obbFileName = file.path.split("/").last; @@ -1045,10 +1049,11 @@ class AppsProvider with ChangeNotifier { Future downloadFn(MapEntry fileUrl, App app) async { try { var exportDir = await settingsProvider.getExportDir(); - String downloadPath = '/storage/emulated/0/Download'; + String downloadPath = '${await getStorageRootPath()}/Download'; bool downloadsAccessible = false; try { - downloadsAccessible = Directory(downloadPath).existsSync(); + Directory(downloadPath).listSync(); + downloadsAccessible = true; } catch (e) { // }