@Override public void finishPickImages(List<Image> images) { Intent data = new Intent(); data.putParcelableArrayListExtra(IpCons.EXTRA_SELECTED_IMAGES, (ArrayList<? extends Parcelable>) images); interactionListener.finishPickImages(data); }
private void updateTitle() { interactionListener.setTitle(recyclerViewManager.getTitle()); }
private void setupRecyclerView(ImagePickerConfig config, ArrayList<Image> selectedImages) { recyclerViewManager = new RecyclerViewManager( recyclerView, config, getResources().getConfiguration().orientation ); recyclerViewManager.setupAdapters(selectedImages, (isSelected) -> recyclerViewManager.selectImage(isSelected) , bucket -> setImageAdapter(bucket.getImages())); recyclerViewManager.setImageSelectedListener(selectedImage -> { updateTitle(); interactionListener.selectionChanged(recyclerViewManager.getSelectedImages()); if (ConfigUtils.shouldReturn(config, false) && !selectedImage.isEmpty()) { onDone(); } }); }
private void requestCameraPermissions() { logger.w("Write External permission is not granted. Requesting permission"); ArrayList<String> permissions = new ArrayList<>(2); if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { permissions.add(Manifest.permission.CAMERA); } if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } if (checkForRationale(permissions)) { requestPermissions(permissions.toArray(new String[permissions.size()]), RC_PERMISSION_REQUEST_CAMERA); } else { final String permission = ImagePickerPreferences.PREF_CAMERA_REQUESTED; if (!preferences.isPermissionRequested(permission)) { preferences.setPermissionRequested(permission); requestPermissions(permissions.toArray(new String[permissions.size()]), RC_PERMISSION_REQUEST_CAMERA); } else { if (isCameraOnly) { Toast.makeText(getActivity().getApplicationContext(), getString(R.string.ef_msg_no_camera_permission), Toast.LENGTH_SHORT).show(); interactionListener.cancel(); } else { snackBarView.show(R.string.ef_msg_no_camera_permission, v -> openAppSettings()); } } } }
recyclerViewManager.onRestoreState(savedInstanceState.getParcelable(STATE_KEY_RECYCLER)); interactionListener.selectionChanged(recyclerViewManager.getSelectedImages()); return result;
/** * Check if the captured image is stored successfully * Then reload data */ @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RC_CAPTURE) { if (resultCode == RESULT_OK) { presenter.finishCaptureImage(getActivity(), data, getBaseConfig()); } else if (resultCode == RESULT_CANCELED && isCameraOnly) { presenter.abortCaptureImage(); interactionListener.cancel(); } } }