Delete profile pics on replace.
This commit is contained in:
@@ -34,13 +34,15 @@ public class UploadClass {
|
|||||||
private static final String TAG = "UploadClass";
|
private static final String TAG = "UploadClass";
|
||||||
private StorageReference mStorageRef;
|
private StorageReference mStorageRef;
|
||||||
private DatabaseReference mDataRef;
|
private DatabaseReference mDataRef;
|
||||||
|
|
||||||
private ProfilePictureUpdatedListener mListener;
|
private ProfilePictureUpdatedListener mListener;
|
||||||
|
private FirebaseUser mUser;
|
||||||
|
private Uri oldPicture;
|
||||||
|
|
||||||
public UploadClass(Context context) {
|
public UploadClass(Context context) {
|
||||||
mStorageRef = FirebaseStorage.getInstance().getReference();
|
mStorageRef = FirebaseStorage.getInstance().getReference();
|
||||||
mDataRef = FirebaseDatabase.getInstance().getReference();
|
mDataRef = FirebaseDatabase.getInstance().getReference();
|
||||||
mListener = (ProfilePictureUpdatedListener) context;
|
mListener = (ProfilePictureUpdatedListener) context;
|
||||||
|
mUser = FirebaseAuth.getInstance().getCurrentUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Helpers ///
|
/// Helpers ///
|
||||||
@@ -52,9 +54,8 @@ public class UploadClass {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getUserUid() {
|
private String getUserUid() {
|
||||||
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
|
if (mUser != null) {
|
||||||
if (user != null) {
|
return mUser.getUid();
|
||||||
return user.getUid();
|
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@@ -101,6 +102,7 @@ public class UploadClass {
|
|||||||
|
|
||||||
public void uploadProfilePicture(Bitmap picture) {
|
public void uploadProfilePicture(Bitmap picture) {
|
||||||
byte[] uploadPhoto = bitmapToBytes(picture);
|
byte[] uploadPhoto = bitmapToBytes(picture);
|
||||||
|
oldPicture = mUser.getPhotoUrl();
|
||||||
UploadTask photoUpload = mStorageRef.child("profile").child(getUserUid() + "_" + currentTimeMillis()).putBytes(uploadPhoto);
|
UploadTask photoUpload = mStorageRef.child("profile").child(getUserUid() + "_" + currentTimeMillis()).putBytes(uploadPhoto);
|
||||||
photoUpload.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
|
photoUpload.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
|
||||||
@Override
|
@Override
|
||||||
@@ -112,16 +114,31 @@ public class UploadClass {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateProfilePictureInUser(Uri url) {
|
private void updateProfilePictureInUser(Uri url) {
|
||||||
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
|
|
||||||
UserProfileChangeRequest request = new UserProfileChangeRequest.Builder()
|
UserProfileChangeRequest request = new UserProfileChangeRequest.Builder()
|
||||||
.setPhotoUri(url)
|
.setPhotoUri(url)
|
||||||
.build();
|
.build();
|
||||||
user.updateProfile(request)
|
mUser.updateProfile(request)
|
||||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||||
@Override
|
@Override
|
||||||
public void onComplete(@NonNull Task<Void> task) {
|
public void onComplete(@NonNull Task<Void> task) {
|
||||||
Log.d(TAG, "onComplete: Updated profile picture");
|
Log.d(TAG, "onComplete: Updated profile picture");
|
||||||
mListener.ProfilePictureUpdated(true);
|
mListener.ProfilePictureUpdated(true);
|
||||||
|
removeOldPicture();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeOldPicture() {
|
||||||
|
StorageReference ref = FirebaseStorage.getInstance().getReferenceFromUrl(oldPicture.toString());
|
||||||
|
ref.delete()
|
||||||
|
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||||
|
@Override
|
||||||
|
public void onComplete(@NonNull Task<Void> task) {
|
||||||
|
if (task.isSuccessful()) {
|
||||||
|
Log.d(TAG, "onComplete: Delete successfull");
|
||||||
|
} else {
|
||||||
|
Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user