Niels profile #17
@@ -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<UploadTask.TaskSnapshot>() {
|
||||
@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<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> 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<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