picker static method

void picker(
  1. BuildContext context, {
  2. RequestType type = RequestType.common,
  3. int limit = 10,
  4. MulCallback? mulCallback,
  5. SingleCallback? singleCallback,
  6. Duration routeDuration = const Duration(milliseconds: 300),
  7. bool isMulti = false,
  8. bool isReview = true,
  9. WidgetBuilder? leadingBuilder,
  10. FilterOptionGroup? filterOptions,
})

Implementation

static void picker(
  BuildContext context, {
  RequestType type = RequestType.common,
  int limit = 10,
  MulCallback? mulCallback,
  SingleCallback? singleCallback,
  Duration routeDuration = const Duration(milliseconds: 300),
  bool isMulti = false,
  bool isReview = true,
  WidgetBuilder? leadingBuilder,
  FilterOptionGroup? filterOptions,
}) async {
  final bool isPermission = await PhotoManager.requestPermission();
  if (isPermission) {
    Navigator.of(context)
        .push(
      MaterialPageRoute(
        builder: (_) => AssetPickerBuilder(
          routeDuration: routeDuration,
          type: type,
          isMulti: isMulti,
          limit: limit,
          leadingBuilder: leadingBuilder,
          filterOptions: filterOptions,
          isReview: isReview,
        ),
      ),
    )
        .then(
      (data) {
        if (data != null) {
          if (mulCallback != null && isMulti) {
            mulCallback(data as List<AssetEntity>);
          } else if (singleCallback != null && !isMulti) {
            singleCallback.call(data.first as AssetEntity);
          }
        }
      },
    );
  } else {
    PhotoManager.openSetting();
  }
}