pick method
Pick assets
Implementation
Future<List<LikkEntity>> pick(
BuildContext context, {
List<LikkEntity>? selectedEntities,
}) async {
// If dont have permission dont do anything
final permission = await PhotoManager.requestPermissionExtend();
if (permission != PermissionState.authorized &&
permission != PermissionState.limited) {
PhotoManager.openSetting();
return [];
}
_repository.fetchAlbums(setting.requestType);
_completer = Completer<List<LikkEntity>>();
galleryState.value = GalleryState.show;
if (_wrapperKey.currentState == null) {
_fullScreenMode = true;
final route = SlideTransitionPageRoute<List<LikkEntity>>(
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();
FocusManager.instance.primaryFocus?.unfocus();
}
if (selectedEntities?.isNotEmpty ?? false) {
_internal = true;
value = value.copyWith(
selectedEntities: selectedEntities,
previousSelection: true,
);
}
return _completer.future;
}