Fixed export error on Android SDK <= 28

This commit is contained in:
Imran Remtulla
2022-12-25 22:29:39 -05:00
parent 6f27f64699
commit 7a3d74bd05
9 changed files with 21 additions and 0 deletions

View File

@@ -17,6 +17,7 @@ import 'package:obtainium/providers/logs_provider.dart';
import 'package:obtainium/providers/notifications_provider.dart';
import 'package:obtainium/providers/settings_provider.dart';
import 'package:package_archive_info/package_archive_info.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart';
import 'package:path_provider/path_provider.dart';
import 'package:flutter_fgbg/flutter_fgbg.dart';
@@ -706,6 +707,14 @@ class AppsProvider with ChangeNotifier {
exportDir = await getExternalStorageDirectory();
path = exportDir!.path;
}
if ((await DeviceInfoPlugin().androidInfo).version.sdkInt <= 28) {
if (await Permission.storage.isDenied) {
await Permission.storage.request();
}
if (await Permission.storage.isDenied) {
throw ObtainiumError(tr('storagePermissionDenied'));
}
}
File export = File(
'${exportDir.path}/${tr('obtainiumExportHyphenatedLowercase')}-${DateTime.now().millisecondsSinceEpoch}.json');
export.writeAsStringSync(