public boolean selectImage(boolean isSelected) { if (config.getMode() == MODE_MULTIPLE) { if (imageAdapter.getSelectedImages().size() >= config.getLimit() && !isSelected) { Toast.makeText(context, R.string.ef_msg_limit_images, Toast.LENGTH_SHORT).show(); return false; } } else if (config.getMode() == MODE_SINGLE) { if (imageAdapter.getSelectedImages().size() > 0) { imageAdapter.removeAllSelectedSingleClick(); } } return true; }
public static ImagePickerConfig checkConfig(ImagePickerConfig config) { if (config == null) { throw new IllegalStateException("ImagePickerConfig cannot be null"); } if (config.getMode() != IpCons.MODE_SINGLE && (config.getReturnMode() == ReturnMode.GALLERY_ONLY || config.getReturnMode() == ReturnMode.ALL)) { throw new IllegalStateException("ReturnMode.GALLERY_ONLY and ReturnMode.ALL is only applicable in Single Mode!"); } if (config.getImageLoader() != null && !(config.getImageLoader() instanceof Serializable)) { throw new IllegalStateException("Custom image loader must be a class that implement ImageLoader." + " This limitation due to Serializeable"); } return config; }
public String getTitle() { if (isDisplayingFolderView()) { return ConfigUtils.getFolderTitle(context, config); } if (config.getMode() == MODE_SINGLE) { return ConfigUtils.getImageTitle(context, config); } final int imageSize = imageAdapter.getSelectedImages().size(); final boolean useDefaultTitle = !ImagePickerUtils.isStringEmpty(config.getImageTitle()) && imageSize == 0; if (useDefaultTitle) { return ConfigUtils.getImageTitle(context, config); } return config.getLimit() == MAX_LIMIT ? String.format(context.getString(R.string.ef_selected), imageSize) : String.format(context.getString(R.string.ef_selected_with_limit), imageSize, config.getLimit()); }
public void setupAdapters(ArrayList<Image> selectedImages, OnImageClickListener onImageClickListener, OnFolderClickListener onFolderClickListener) { if (config.getMode() == MODE_SINGLE && selectedImages != null && selectedImages.size() > 1) { selectedImages = null; } /* Init folder and image adapter */ final ImageLoader imageLoader = config.getImageLoader(); imageAdapter = new ImagePickerAdapter(context, imageLoader, selectedImages, onImageClickListener); folderAdapter = new FolderPickerAdapter(context, imageLoader, bucket -> { foldersState = recyclerView.getLayoutManager().onSaveInstanceState(); onFolderClickListener.onFolderClick(bucket); }); }