From 8ba9f7f8e3394f02a5fccca635df33f40aa35267 Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Fri, 23 Jun 2017 16:40:34 +0200 Subject: [PATCH] Delete profile pics on replace. --- .../tagram/controller/UploadClass.java | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java index 3f104a2..c3e7c8b 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java @@ -34,13 +34,15 @@ public class UploadClass { private static final String TAG = "UploadClass"; private StorageReference mStorageRef; private DatabaseReference mDataRef; - private ProfilePictureUpdatedListener mListener; + private FirebaseUser mUser; + private Uri oldPicture; public UploadClass(Context context) { mStorageRef = FirebaseStorage.getInstance().getReference(); mDataRef = FirebaseDatabase.getInstance().getReference(); mListener = (ProfilePictureUpdatedListener) context; + mUser = FirebaseAuth.getInstance().getCurrentUser(); } /// Helpers /// @@ -52,9 +54,8 @@ public class UploadClass { } private String getUserUid() { - FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); - if (user != null) { - return user.getUid(); + if (mUser != null) { + return mUser.getUid(); } return ""; } @@ -101,6 +102,7 @@ public class UploadClass { public void uploadProfilePicture(Bitmap picture) { byte[] uploadPhoto = bitmapToBytes(picture); + oldPicture = mUser.getPhotoUrl(); UploadTask photoUpload = mStorageRef.child("profile").child(getUserUid() + "_" + currentTimeMillis()).putBytes(uploadPhoto); photoUpload.addOnSuccessListener(new OnSuccessListener() { @Override @@ -112,16 +114,31 @@ public class UploadClass { } private void updateProfilePictureInUser(Uri url) { - FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); UserProfileChangeRequest request = new UserProfileChangeRequest.Builder() .setPhotoUri(url) .build(); - user.updateProfile(request) + mUser.updateProfile(request) .addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { Log.d(TAG, "onComplete: Updated profile picture"); mListener.ProfilePictureUpdated(true); + removeOldPicture(); + } + }); + } + + private void removeOldPicture() { + StorageReference ref = FirebaseStorage.getInstance().getReferenceFromUrl(oldPicture.toString()); + ref.delete() + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + Log.d(TAG, "onComplete: Delete successfull"); + } else { + Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); + } } }); }