pick method
Pick assets
Implementation
Future<List<DrishyaEntity>> pick(
BuildContext context, {
List<DrishyaEntity>? selectedEntities,
}) async {
// If dont have permission dont do anything
final permission = await PhotoManager.requestPermissionExtend();
if (permission != PermissionState.authorized &&
permission != PermissionState.limited) {
PhotoManager.openSetting();
return [];
}
_completer = Completer<List<DrishyaEntity>>();
if (_wrapperKey.currentState == null) {
_fullScreenMode = true;
final route = SlideTransitionPageRoute<List<DrishyaEntity>>(
builder: GalleryView(controller: this),
);
await Navigator.of(context).push(route).then((result) {
// Closed by user
if (result == null && !_accessCamera) {
_completer.complete(value.selectedEntities);
}
});
} else {
_fullScreenMode = false;
_panelController.openPanel();
FocusScope.of(context).unfocus();
}
if (!singleSelection && (selectedEntities?.isNotEmpty ?? false)) {
_internal = true;
value = value.copyWith(
selectedEntities: selectedEntities,
previousSelection: true,
);
}
return _completer.future;
}