Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract class PickImageActivity<V extends PickImageView, P extends PickImagePresenter<V>> extends BaseActivity<V, P> implements PickImageView {
- private static final String SAVED_STATE_IMAGE_URI = "RegistrationActivity.SAVED_STATE_IMAGE_URI";
- private static final String SAVED_STATE_IMAGE_URI2 = "RegistrationActivity.SAVED_STATE_IMAGE_URI2";
- protected Uri imageUri;
- protected Uri imageUri2;
- protected abstract ProgressBar getProgressView();
- protected abstract ImageView getImageView();
- protected abstract ImageView getImageView2();
- protected abstract void onImagePikedAction();
- protected abstract void onImagePikedAction2();
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- outState.putParcelable(SAVED_STATE_IMAGE_URI, imageUri);
- outState.putParcelable(SAVED_STATE_IMAGE_URI2, imageUri2);
- super.onSaveInstanceState(outState);
- }
- @Override
- protected void onRestoreInstanceState(Bundle savedInstanceState) {
- if (savedInstanceState != null) {
- if (savedInstanceState.containsKey(SAVED_STATE_IMAGE_URI)) {
- imageUri = savedInstanceState.getParcelable(SAVED_STATE_IMAGE_URI);
- loadImageToImageView(imageUri);
- }
- if (savedInstanceState.containsKey(SAVED_STATE_IMAGE_URI2)) {
- imageUri2 = savedInstanceState.getParcelable(SAVED_STATE_IMAGE_URI2);
- loadImageToImageView2(imageUri2);
- }
- }
- super.onRestoreInstanceState(savedInstanceState);
- }
- @SuppressLint("NewApi")
- public void onSelectImageClick(View view) {
- if (CropImage.isExplicitCameraPermissionRequired(this)) {
- requestPermissions(new String[]{Manifest.permission.CAMERA}, CropImage.CAMERA_CAPTURE_PERMISSIONS_REQUEST_CODE);
- } else {
- CropImage.startPickImageActivity(this);
- }
- }
- public void onSelectImageClick2(View view) {
- if (CropImage.isExplicitCameraPermissionRequired(this)) {
- requestPermissions(new String[]{Manifest.permission.CAMERA}, CropImage.CAMERA_CAPTURE_PERMISSIONS_REQUEST_CODE);
- } else {
- CropImage.startPickImageActivity(this);
- }
- }
- @Override
- public void loadImageToImageView(Uri imageUri) {
- if (imageUri == null) {
- return;
- }
- this.imageUri = imageUri;
- ImageUtil.loadLocalImage(GlideApp.with(this), imageUri, getImageView(), new RequestListener<Drawable>() {
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
- return false;
- }
- @Override
- public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- getProgressView().setVisibility(View.GONE);
- LogUtil.logDebug(TAG, "Glide Success Loading image from uri : " + imageUri.getPath());
- return false;
- }
- });
- }
- public void loadImageToImageView2(Uri imageUri2) {
- if (imageUri2 == null) {
- return;
- }
- this.imageUri2 = imageUri2;
- ImageUtil.loadLocalImage(GlideApp.with(this), imageUri2, getImageView2(), new RequestListener<Drawable>() {
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
- return false;
- }
- @Override
- public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- getProgressView().setVisibility(View.GONE);
- LogUtil.logDebug(TAG, "Glide Success Loading image from uri : " + imageUri2.getPath());
- return false;
- }
- });
- }
- @Override
- @SuppressLint("NewApi")
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- // handle result of pick image chooser
- if (requestCode == CropImage.PICK_IMAGE_CHOOSER_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
- Uri imageUri = CropImage.getPickImageResultUri(this, data);
- if (presenter.isImageFileValid(imageUri)) {
- this.imageUri = imageUri;
- }
- // For API >= 23 we need to check specifically that we have permissions to read external storage.
- if (CropImage.isReadExternalStoragePermissionsRequired(this, imageUri)) {
- // request permissions and handle the result in onRequestPermissionsResult()
- requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, CropImage.PICK_IMAGE_PERMISSIONS_REQUEST_CODE);
- } else {
- // no permissions required or already grunted
- onImagePikedAction();
- }
- }
- if (requestCode == CropImage.PICK_IMAGE_CHOOSER_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
- Uri imageUri2 = CropImage.getPickImageResultUri(this, data);
- if (presenter.isImageFileValid2(imageUri2)) {
- this.imageUri2 = imageUri2;
- }
- // For API >= 23 we need to check specifically that we have permissions to read external storage.
- if (CropImage.isReadExternalStoragePermissionsRequired(this, imageUri2)) {
- // request permissions and handle the result in onRequestPermissionsResult()
- requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, CropImage.PICK_IMAGE_PERMISSIONS_REQUEST_CODE);
- } else {
- // no permissions required or already grunted
- onImagePikedAction2();
- }
- }
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
- if (requestCode == CropImage.CAMERA_CAPTURE_PERMISSIONS_REQUEST_CODE) {
- if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- LogUtil.logDebug(TAG, "CAMERA_CAPTURE_PERMISSIONS granted");
- CropImage.startPickImageActivity(this);
- } else {
- showSnackBar(R.string.permissions_not_granted);
- LogUtil.logDebug(TAG, "CAMERA_CAPTURE_PERMISSIONS not granted");
- }
- }
- if (requestCode == CropImage.PICK_IMAGE_PERMISSIONS_REQUEST_CODE) {
- if (imageUri != null && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- LogUtil.logDebug(TAG, "PICK_IMAGE_PERMISSIONS granted");
- onImagePikedAction();
- } else {
- showSnackBar(R.string.permissions_not_granted);
- LogUtil.logDebug(TAG, "PICK_IMAGE_PERMISSIONS not granted");
- }
- }
- if (requestCode == CropImage.CAMERA_CAPTURE_PERMISSIONS_REQUEST_CODE) {
- if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- LogUtil.logDebug(TAG, "CAMERA_CAPTURE_PERMISSIONS granted");
- CropImage.startPickImageActivity(this);
- } else {
- showSnackBar(R.string.permissions_not_granted);
- LogUtil.logDebug(TAG, "CAMERA_CAPTURE_PERMISSIONS not granted");
- }
- }
- if (requestCode == CropImage.PICK_IMAGE_PERMISSIONS_REQUEST_CODE) {
- if (imageUri2 != null && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- LogUtil.logDebug(TAG, "PICK_IMAGE_PERMISSIONS granted");
- onImagePikedAction2();
- } else {
- showSnackBar(R.string.permissions_not_granted);
- LogUtil.logDebug(TAG, "PICK_IMAGE_PERMISSIONS not granted");
- }
- }
- }
- protected void handleCropImageResult(int requestCode, int resultCode, Intent data) {
- presenter.handleCropImageResult(requestCode, resultCode, data);
- }
- protected void startCropImageActivity() {
- if (imageUri == null) {
- return;
- }
- CropImage.activity(imageUri)
- .setGuidelines(CropImageView.Guidelines.ON)
- .setFixAspectRatio(true)
- .setMinCropResultSize(Constants.Profile.MIN_AVATAR_SIZE, Constants.Profile.MIN_AVATAR_SIZE)
- .setRequestedSize(Constants.Profile.MAX_AVATAR_SIZE, Constants.Profile.MAX_AVATAR_SIZE)
- .start(this);
- if (imageUri2 == null) {
- return;
- }
- CropImage.activity(imageUri2)
- .setGuidelines(CropImageView.Guidelines.ON)
- .setFixAspectRatio(true)
- .setMinCropResultSize(Constants.Profile.MIN_AVATAR_SIZE, Constants.Profile.MIN_AVATAR_SIZE)
- .setRequestedSize(Constants.Profile.MAX_AVATAR_SIZE, Constants.Profile.MAX_AVATAR_SIZE)
- .start(this);
- }
- @Override
- public void hideLocalProgress() {
- getProgressView().setVisibility(View.GONE);
- }
Add Comment
Please, Sign In to add comment