Niels profile #17

Merged
11025980 merged 11 commits from niels-profile into master 2017-06-26 16:21:12 +02:00
Showing only changes of commit da765832f1 - Show all commits

View File

@@ -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());
}
}
});
}