pick method

Future<List<LikkEntity>> pick(
  1. BuildContext context, {
  2. List<LikkEntity>? selectedEntities,
})

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;
}