diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 263793f..0a90d93 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -15,8 +15,6 @@ - - diff --git a/lib/app_flavored.dart b/lib/app_flavored.dart index 1b1479d..b065df9 100644 --- a/lib/app_flavored.dart +++ b/lib/app_flavored.dart @@ -28,7 +28,6 @@ class FlavoredAppState extends ConsumerState { SchedulerBinding.instance.addPostFrameCallback((_) async { await PermissionHandler.requestPermissions([ Permission.notification, - Permission.manageExternalStorage, ]); }); } diff --git a/lib/app_opener.dart b/lib/app_opener.dart index 73d51c6..ad3e163 100644 --- a/lib/app_opener.dart +++ b/lib/app_opener.dart @@ -27,7 +27,6 @@ class OpenerAppState extends ConsumerState { SchedulerBinding.instance.addPostFrameCallback((_) async { await PermissionHandler.requestPermissions([ Permission.notification, - Permission.manageExternalStorage, ]); }); } diff --git a/lib/util/file_handler.dart b/lib/util/file_handler.dart index 0e1d5a1..0f9e3ed 100644 --- a/lib/util/file_handler.dart +++ b/lib/util/file_handler.dart @@ -5,7 +5,6 @@ import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:humhub/util/permission_handler.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:permission_handler/permission_handler.dart'; class FileHandler { final InAppWebViewController controller; @@ -45,7 +44,7 @@ class FileHandler { download() { PermissionHandler.runWithPermissionCheck( - permissions: [Permission.storage], + permissions: [], action: () => _download(), ); } @@ -120,7 +119,7 @@ class FileHandler { if (Platform.isIOS) { directory = await getApplicationDocumentsDirectory(); } else { - String check = "/storage/emulated/0/Download"; + String check = (await getExternalStorageDirectory())?.path ?? ''; bool dirDownloadExists = await Directory(check).exists(); if (dirDownloadExists) { diff --git a/lib/util/permission_handler.dart b/lib/util/permission_handler.dart index 9d4d317..0217e21 100644 --- a/lib/util/permission_handler.dart +++ b/lib/util/permission_handler.dart @@ -7,22 +7,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; class PermissionHandler { // Static method that takes a list of permissions and handles requests - static Future requestPermissions(List permissions) async { - for (Permission permission in permissions) { - // Check the current status of the permission - PermissionStatus status = await permission.status; - - // Only request the permission if it has never been asked or is not granted - if (status.isDenied || status.isRestricted || status.isPermanentlyDenied) { - continue; // Don't request again if it's denied or restricted - } - - // Request the permission if not granted - if (!status.isGranted) { - await permission.request(); - } - } - } + static Future requestPermissions(List permissions) async => await permissions.request(); // Static method to check permissions before executing a function static Future runWithPermissionCheck({ @@ -44,7 +29,7 @@ class PermissionHandler { action(); } else { // Show a SnackBar indicating that permissions are missing - if(navigatorKey.currentState != null && navigatorKey.currentState!.mounted){ + if (navigatorKey.currentState != null && navigatorKey.currentState!.mounted) { scaffoldMessengerStateKey.currentState?.showSnackBar( SnackBar( content: Text(AppLocalizations.of(navigatorKey.currentState!.context)!.enable_permissions),