Skip to content

Commit b376626

Browse files
authored
Merge pull request #2099 from nimah79/main
Fix app freeze on the splash screen in Android 16+
2 parents cddd8f4 + 68e6966 commit b376626

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

lib/core/directories/directories_provider.dart

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class AppDirectories extends _$AppDirectories with InfraLogger {
3737
dirs = (baseDir: portableDir, workingDir: portableDir, tempDir: await getTemporaryDirectory());
3838
} else {
3939
final baseDir = await getApplicationSupportDirectory();
40-
final workingDir = Platform.isAndroid ? await getExternalStorageDirectory() : baseDir;
40+
final workingDir = Platform.isAndroid ? await _getAndroidWorkingDirectory() : baseDir;
4141
final tempDir = await getTemporaryDirectory();
4242
dirs = (baseDir: baseDir, workingDir: workingDir!, tempDir: tempDir);
4343
}
@@ -52,6 +52,17 @@ class AppDirectories extends _$AppDirectories with InfraLogger {
5252
return dirs;
5353
}
5454

55+
static Future<Directory> _getAndroidWorkingDirectory() async {
56+
try {
57+
final extDir = await getExternalStorageDirectory();
58+
if (extDir == null) return getApplicationDocumentsDirectory();
59+
if (extDir.existsSync()) return extDir;
60+
await extDir.create(recursive: true);
61+
return extDir;
62+
} catch (_) {}
63+
return getApplicationDocumentsDirectory();
64+
}
65+
5566
static Future<Directory> getDatabaseDirectory() async {
5667
if (kIsWeb) {
5768
return Directory(".");

0 commit comments

Comments
 (0)