toSelectPic static method

dynamic toSelectPic(
  1. BuildContext context, {
  2. String language = "zh",
  3. int maxAssetsCount = 1,
  4. AssetPickerConfig? otherConfig,
  5. List<AssetEntity>? selectedAssets,
  6. int gridCount = 4,
  7. String? themeColor,
  8. bool needCamera = true,
  9. bool isDrag2Select = false,
  10. Function? selectCallback,
  11. RequestType? requestType,
})

Implementation

static toSelectPic(BuildContext context,
    {String language = "zh", int maxAssetsCount = 1, AssetPickerConfig? otherConfig, List<AssetEntity>? selectedAssets, int gridCount = 4, String? themeColor, bool needCamera = true, bool isDrag2Select = false, Function? selectCallback, RequestType? requestType}) async {
  // String language = ProSPUtils.getSystemLanguage();
  //官网的context的方式太复杂了,所有改成传递把
  AssetPickerTextDelegate textDelegate;
  switch (language) {
    case "zh":
      textDelegate = const AssetPickerTextDelegate();
      break;
    case "he":
      textDelegate = const HebrewAssetPickerTextDelegate();
      break;
    case "de":
      textDelegate = const GermanAssetPickerTextDelegate();
      break;
    case "ru":
      textDelegate = const RussianAssetPickerTextDelegate();
      break;
    case "ar":
      textDelegate = const ArabicAssetPickerTextDelegate();
      break;
    case "vi":
      textDelegate = const VietnameseAssetPickerTextDelegate();
      break;
    case "tr":
      textDelegate = const TurkishAssetPickerTextDelegate();
      break;
    case "ja":
      textDelegate = const JapaneseAssetPickerTextDelegate();
      break;
    case "fr":
      textDelegate = const FrenchAssetPickerTextDelegate();
      break;
    default:
      textDelegate = const EnglishAssetPickerTextDelegate();
      break;
  }

  List<AssetEntity>? assets = await AssetPicker.pickAssets(
    context,
    pickerConfig: AssetPickerConfig(
        selectedAssets: selectedAssets,
        maxAssets: maxAssetsCount,
        requestType: requestType ?? RequestType.image,
        gridCount: gridCount,
        themeColor: themeColor == null ? null : ColorsUtil.hex2Color(themeColor),
        pickerTheme: otherConfig?.pickerTheme,
        textDelegate: textDelegate,
        // textDelegate: const AssetPickerTextDelegate(),
        specialItemPosition: needCamera ? SpecialItemPosition.prepend : SpecialItemPosition.none,
        // specialItemBuilder: needCamera ? _createCamera(context,textDelegate) : null
        dragToSelect: isDrag2Select,
        specialItemBuilder: !needCamera
            ? null
            : (
            BuildContext context,
            AssetPathEntity? path,
            int length,
            ) {
          if (path?.isAll != true) {
            return null;
          }
          return _createCamera(context, textDelegate, language: language);
        }),
  );

  if (assets == null || assets.isEmpty) return;
  /*
  卡通项目中的处理heic 图片  暂时拿掉
  AssetEntity _entity = assets[0];
  File file = await _entity.file;
  if (Platform.isIOS) {
    String fileExtension = p.extension(file.path).replaceAll('.', '');
    if (fileExtension.toLowerCase() == 'heic') {
      print('convert to jpeg');
      String jpegPath = await HeicToJpg.convert(file.path);
      file = File(jpegPath);
    }
  }*/
  // AssetEntity _entity = assets[0];
  if (selectCallback != null) {
    // selectCallback(file, _entity);
    // selectCallback(null, _entity);
    selectCallback(assets);
  }
}