From d52660235b1dab47136f0c85be4b89b2227793ef Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sat, 1 Apr 2023 00:42:44 -0400 Subject: [PATCH] Attempt to workaround export bug (#385) --- lib/main.dart | 2 +- lib/providers/apps_provider.dart | 18 ++++++++++++------ pubspec.yaml | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index d252dc0..e01a503 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -21,7 +21,7 @@ import 'package:easy_localization/src/easy_localization_controller.dart'; // ignore: implementation_imports import 'package:easy_localization/src/localization.dart'; -const String currentVersion = '0.11.20'; +const String currentVersion = '0.11.21'; const String currentReleaseTag = 'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index e901fd5..28a0fc1 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -848,12 +848,6 @@ class AppsProvider with ChangeNotifier { } Future exportApps() async { - Directory? exportDir = Directory('/storage/emulated/0/Download'); - String path = 'Downloads'; // TODO: See if hardcoding this can be avoided - if (!exportDir.existsSync()) { - exportDir = await getExternalStorageDirectory(); - path = exportDir!.path; - } if ((await DeviceInfoPlugin().androidInfo).version.sdkInt <= 29) { if (await Permission.storage.isDenied) { await Permission.storage.request(); @@ -862,6 +856,18 @@ class AppsProvider with ChangeNotifier { throw ObtainiumError(tr('storagePermissionDenied')); } } + Directory? exportDir = Directory('/storage/emulated/0/Download'); + String path = 'Downloads'; // TODO: See if hardcoding this can be avoided + var downloadsAccessible = false; + try { + downloadsAccessible = exportDir.existsSync(); + } catch (e) { + logs.add('Error accessing Downloads (will use fallback): $e'); + } + if (!downloadsAccessible) { + exportDir = await getExternalStorageDirectory(); + path = exportDir!.path; + } File export = File( '${exportDir.path}/${tr('obtainiumExportHyphenatedLowercase')}-${DateTime.now().millisecondsSinceEpoch}.json'); export.writeAsStringSync( diff --git a/pubspec.yaml b/pubspec.yaml index a58ed97..75372bd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 0.11.20+142 # When changing this, update the tag in main() accordingly +version: 0.11.21+143 # When changing this, update the tag in main() accordingly environment: sdk: '>=2.18.2 <3.0.0'