How to crop and upload my image to firebase?

Viewed 233

Here I am using imagecropper dependency to crop and upload it to Firebase.

@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == IMAGE_PICK_GALLERY_CODE) {
            Uri image_uri = data.getData();
            CropImage.activity(data.getData())
                    .setGuidelines(CropImageView.Guidelines.ON)
                    .start(getActivity());

            //Updateprofilephoto(image_uri);


        } else if (requestCode == IMAGE_PICK_CAMERA_CODE) {
            //profileIv.setImageURI(image_uri);
            CropImage.activity(data.getData())
                    .setGuidelines(CropImageView.Guidelines.ON)
                    .start(getActivity());

            //uploadProfilePhoto(resulturi);


        }
        if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
            CropImage.ActivityResult result = CropImage.getActivityResult(data);
            if (resultCode == RESULT_OK) {
                Uri resultUri = result.getUri();
                Updateprofilephoto(resultUri);

            }
        }


        
        super.onActivityResult(requestCode, resultCode, data);
    }


}

My code works until this. I can crop the image by choosing an image from my gallery. But by using the following method I cannot upload my cropped image to the Firebase. The original image is uploaded to the Firebase. Not the cropped one. How can I solve that issue?

The code follows:

private void Updateprofilephoto(Uri resulturi) {

    progressDialog.setMessage("Updating Account Info...");
    progressDialog.setProgressStyle(progressDialog.STYLE_SPINNER);
    progressDialog.show();
    String filePathAndName = "profile_image/" + "" + firebaseAuth.getUid();
    StorageReference storageReference = FirebaseStorage.getInstance().getReference(filePathAndName);
    storageReference.putFile(resulturi)
            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    Task<Uri> uriTask = taskSnapshot.getStorage().getDownloadUrl();
                    while (!uriTask.isSuccessful()) ;
                    Uri downloadImageUri = uriTask.getResult();
                    if (uriTask.isSuccessful()) {
                        HashMap<String, Object> hashMap = new HashMap<>();

                        hashMap.put("profileImage", "" + downloadImageUri);


                        DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
                        ref.child(firebaseAuth.getUid()).updateChildren(hashMap)
                                .addOnSuccessListener(new OnSuccessListener<Void>() {
                                    @Override
                                    public void onSuccess(Void aVoid) {
                                        progressDialog.dismiss();
                                        Toast.makeText(getActivity(), "Profile Picture is updated...", Toast.LENGTH_SHORT).show();

                                    }
                                })
                                .addOnFailureListener(new OnFailureListener() {
                                    @Override
                                    public void onFailure(@NonNull Exception e) {
                                        progressDialog.dismiss();
                                        Toast.makeText(getActivity(), "" + e.getMessage(), Toast.LENGTH_SHORT).show();

                                    }
                                });


                    }

                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    progressDialog.dismiss();
                    Toast.makeText(getActivity(), "" + e.getMessage(), Toast.LENGTH_SHORT).show();

                }
            });

}
0 Answers
Related