showPicker method
Opens the media picker and returns a list of selected media files.
If the user grants permission, it displays a bottom sheet grid to select images or videos.
Returns a list of MediaViewModel
if media is selected, otherwise null
.
Implementation
Future<List<MediaViewModel>?> showPicker() async {
var status = await PhotoManager.requestPermissionExtend(
requestOption: PermissionRequestOption(
iosAccessLevel: IosAccessLevel.readWrite, // Ensure full access on iOS
androidPermission: AndroidPermission(
type: mediaType == MediaType.video
? RequestType.video
: RequestType.image,
mediaLocation: true, // Ensure media access on Android 13+
),
),
);
if (kDebugMode) {
print("status.name");
print(status.name);
}
if (status.isAuth) {
if (kDebugMode) {
print("Full access granted");
}
await Future.delayed(const Duration(seconds: 1));
if (context.mounted) {
return showGridBottomSheet(context, maxLimit);
}
} else if (status == PermissionState.limited) {
await PhotoManager.openSetting();
}
return null;
}