From 8ba9f7f8e3394f02a5fccca635df33f40aa35267 Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Fri, 23 Jun 2017 16:40:34 +0200 Subject: [PATCH 1/4] 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()); + } } }); } From a71fc80f5982d06038ecd7f736fe8682b6aeb40c Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Fri, 23 Jun 2017 20:35:47 +0200 Subject: [PATCH 2/4] Added ProgressDialog to upload. --- .../src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java | 1 + .../main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java index 51b3a3b..076c727 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java @@ -114,6 +114,7 @@ public class MainActivity extends AppCompatActivity implements CameraFragment.On FragmentManager man = getFragmentManager(); ProfileFragment frag = (ProfileFragment) man.findFragmentById(R.id.content); FragmentTransaction transaction = man.beginTransaction(); + frag.progressDialog.dismiss(); transaction.detach(frag) .attach(frag) .commit(); diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java index 5f87eb2..ae93f98 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java @@ -1,6 +1,7 @@ package nl.myhyvesbookplus.tagram; import android.app.Fragment; +import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -54,6 +55,7 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { protected TextView profileName; protected ImageView profilePicture; protected FirebaseUser user; + ProgressDialog progressDialog; // TODO: Rename and change types of parameters private String mParam1; private String mParam2; @@ -189,6 +191,7 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); + progressDialog = ProgressDialog.show(getActivity(), getString(R.string.please_wait), "bezig met uploaden", false, false); UploadClass uploadClass = new UploadClass(getActivity()); uploadClass.uploadProfilePicture(imageBitmap); } From c2582c128a0502fc353ae66ea463c8e0d4af5e21 Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Sun, 25 Jun 2017 15:01:52 +0200 Subject: [PATCH 3/4] Spilt UploadClass in two classes. Posts are now obtainable from firebase. --- .../myhyvesbookplus/tagram/MainActivity.java | 13 +- .../tagram/ProfileFragment.java | 6 +- .../tagram/controller/DownloadClass.java | 34 ++++- .../tagram/controller/PostUploader.java | 79 ++++++++++++ .../controller/ProfilePictureUploader.java | 87 +++++++++++++ .../tagram/controller/UploadClass.java | 119 ++---------------- .../myhyvesbookplus/tagram/model/UriPost.java | 17 +-- 7 files changed, 220 insertions(+), 135 deletions(-) create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java index 076c727..b8d1e62 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java @@ -3,7 +3,6 @@ package nl.myhyvesbookplus.tagram; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Intent; -import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; @@ -15,10 +14,10 @@ import android.view.View; import com.google.firebase.auth.FirebaseAuth; -import nl.myhyvesbookplus.tagram.controller.UploadClass; -import nl.myhyvesbookplus.tagram.model.BitmapPost; +import nl.myhyvesbookplus.tagram.controller.DownloadClass; +import nl.myhyvesbookplus.tagram.controller.ProfilePictureUploader; -public class MainActivity extends AppCompatActivity implements CameraFragment.OnFragmentInteractionListener, ProfileFragment.OnFragmentInteractionListener, TimelineFragment.OnFragmentInteractionListener, UploadClass.ProfilePictureUpdatedListener { +public class MainActivity extends AppCompatActivity implements CameraFragment.OnFragmentInteractionListener, ProfileFragment.OnFragmentInteractionListener, TimelineFragment.OnFragmentInteractionListener, ProfilePictureUploader.ProfilePictureUpdatedListener { final static private String TAG = "MainScreen"; FirebaseAuth mAuth; @@ -102,10 +101,8 @@ public class MainActivity extends AppCompatActivity implements CameraFragment.On } public void testCreatePost(View view) { - UploadClass uploadClass = new UploadClass(this); - Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ALPHA_8); - BitmapPost bitmapPost = new BitmapPost(bitmap, "Dit is een Test!"); - uploadClass.uploadPicture(bitmapPost); + DownloadClass downloadClass = new DownloadClass(); + downloadClass.getPosts(); } @Override diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java index ae93f98..191a3ef 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java @@ -27,7 +27,7 @@ import com.google.firebase.auth.FirebaseUser; import com.google.firebase.storage.FirebaseStorage; import com.google.firebase.storage.StorageReference; -import nl.myhyvesbookplus.tagram.controller.UploadClass; +import nl.myhyvesbookplus.tagram.controller.ProfilePictureUploader; import static android.app.Activity.RESULT_OK; @@ -192,8 +192,8 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); progressDialog = ProgressDialog.show(getActivity(), getString(R.string.please_wait), "bezig met uploaden", false, false); - UploadClass uploadClass = new UploadClass(getActivity()); - uploadClass.uploadProfilePicture(imageBitmap); + ProfilePictureUploader profilePictureUploader = new ProfilePictureUploader(getActivity()); + profilePictureUploader.uploadProfilePicture(imageBitmap); } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java index 1ddaf17..28a97a6 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java @@ -1,9 +1,14 @@ package nl.myhyvesbookplus.tagram.controller; +import android.util.Log; + +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; -import com.google.firebase.storage.FirebaseStorage; -import com.google.firebase.storage.StorageReference; +import com.google.firebase.database.ValueEventListener; + +import java.util.ArrayList; import nl.myhyvesbookplus.tagram.model.UriPost; @@ -13,16 +18,37 @@ import nl.myhyvesbookplus.tagram.model.UriPost; public class DownloadClass { private static final String TAG = "DownloadClass"; - private StorageReference mStorageRef; + // private StorageReference mStorageRef; private DatabaseReference mDataRef; public DownloadClass() { - mStorageRef = FirebaseStorage.getInstance().getReference(); +// mStorageRef = FirebaseStorage.getInstance().getReference(); mDataRef = FirebaseDatabase.getInstance().getReference(); } public UriPost[] getPosts() { UriPost[] posts = new UriPost[10]; + getPostsFromServer().toArray(posts); + return posts; } + + private ArrayList getPostsFromServer() { + Log.d(TAG, "getPostsFromServer: Begin of function"); + final ArrayList list = new ArrayList<>(); + mDataRef.child("posts").addListenerForSingleValueEvent(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + for (DataSnapshot data : dataSnapshot.getChildren()) { + list.add(data.getValue(UriPost.class)); + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + Log.d(TAG, "onCancelled: " + databaseError.getDetails() + databaseError.getMessage()); + } + }); + return list; + } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java new file mode 100644 index 0000000..c0e00d6 --- /dev/null +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java @@ -0,0 +1,79 @@ +package nl.myhyvesbookplus.tagram.controller; + +import android.content.Context; +import android.net.Uri; +import android.support.annotation.NonNull; +import android.util.Log; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnFailureListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.storage.UploadTask; + +import nl.myhyvesbookplus.tagram.model.BitmapPost; +import nl.myhyvesbookplus.tagram.model.UriPost; + +import static java.lang.System.currentTimeMillis; + +/** + * Created by marijnjansen on 25/06/2017. + */ + +public class PostUploader extends UploadClass { + + final private static String TAG = "PostUploader"; + + private PostUploadListener mListener; + + public PostUploader(Context context) { + super(); + if (context instanceof PostUploadListener) { + mListener = (PostUploadListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement PostUploadListener"); + } + } + + public void uploadPicture(final BitmapPost post) { + final String name = getUserUid() + currentTimeMillis(); + + UploadTask uploadTask = mStorageRef.child("posts").child(name + ".jpg").putBytes(bitmapToBytes(post.getBitmap())); + uploadTask.addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + Log.d(TAG, "onFailure: Upload Failed"); + } + }) + .addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + // Handle successful uploads on complete + Log.d(TAG, "onSuccess: Upload Success!"); + Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl(); + putPostInDatabase(post.getUriPost(downloadUrl), name); + } + }); + } + + private void putPostInDatabase(UriPost post, String name) { + DatabaseReference ref = mDataRef.child("posts").child(name); + ref.setValue(post) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + Log.d(TAG, "onComplete: Added post to database"); + } else { + Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); + } + } + }); + } + + public interface PostUploadListener { + void PostUploadComplete(Boolean success); + } +} diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java new file mode 100644 index 0000000..0668936 --- /dev/null +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java @@ -0,0 +1,87 @@ +package nl.myhyvesbookplus.tagram.controller; + +import android.content.Context; +import android.graphics.Bitmap; +import android.net.Uri; +import android.support.annotation.NonNull; +import android.util.Log; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.auth.UserProfileChangeRequest; +import com.google.firebase.storage.FirebaseStorage; +import com.google.firebase.storage.StorageReference; +import com.google.firebase.storage.UploadTask; + +import static java.lang.System.currentTimeMillis; + +/** + * Created by marijnjansen on 25/06/2017. + */ + +public class ProfilePictureUploader extends UploadClass { + + final static private String TAG = "PPUploader"; + + private Uri oldPicture; + private ProfilePictureUpdatedListener mListener; + + public ProfilePictureUploader(Context context) { + super(); + + if (context instanceof ProfilePictureUpdatedListener) { + mListener = (ProfilePictureUpdatedListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement ProfilePictureUpdatedListener"); + } + } + + 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 + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + Uri downloadUrl = taskSnapshot.getDownloadUrl(); + updateProfilePictureInUser(downloadUrl); + } + }); + } + + private void updateProfilePictureInUser(Uri url) { + UserProfileChangeRequest request = new UserProfileChangeRequest.Builder() + .setPhotoUri(url) + .build(); + 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()); + } + } + }); + } + + public interface ProfilePictureUpdatedListener { + void ProfilePictureUpdated(Boolean success); + } +} 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 c3e7c8b..8d838f8 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 @@ -1,149 +1,44 @@ package nl.myhyvesbookplus.tagram.controller; -import android.content.Context; import android.graphics.Bitmap; -import android.net.Uri; -import android.support.annotation.NonNull; -import android.util.Log; -import com.google.android.gms.tasks.OnCompleteListener; -import com.google.android.gms.tasks.OnFailureListener; -import com.google.android.gms.tasks.OnSuccessListener; -import com.google.android.gms.tasks.Task; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; -import com.google.firebase.auth.UserProfileChangeRequest; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.storage.FirebaseStorage; import com.google.firebase.storage.StorageReference; -import com.google.firebase.storage.UploadTask; import java.io.ByteArrayOutputStream; -import nl.myhyvesbookplus.tagram.model.BitmapPost; -import nl.myhyvesbookplus.tagram.model.UriPost; - -import static java.lang.System.currentTimeMillis; - /** * Class that does all the photo uploading things. */ -public class UploadClass { +public abstract class UploadClass { private static final String TAG = "UploadClass"; - private StorageReference mStorageRef; - private DatabaseReference mDataRef; - private ProfilePictureUpdatedListener mListener; - private FirebaseUser mUser; - private Uri oldPicture; + StorageReference mStorageRef; + DatabaseReference mDataRef; + FirebaseUser mUser; - public UploadClass(Context context) { + UploadClass() { mStorageRef = FirebaseStorage.getInstance().getReference(); mDataRef = FirebaseDatabase.getInstance().getReference(); - mListener = (ProfilePictureUpdatedListener) context; mUser = FirebaseAuth.getInstance().getCurrentUser(); } /// Helpers /// - private byte[] bitmapToBytes(Bitmap bitmap) { + byte[] bitmapToBytes(Bitmap bitmap) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); return baos.toByteArray(); } - private String getUserUid() { + String getUserUid() { if (mUser != null) { return mUser.getUid(); } return ""; } - - /// Post Uploads /// - - public void uploadPicture(final BitmapPost post) { - final String name = getUserUid() + currentTimeMillis(); - - UploadTask uploadTask = mStorageRef.child("posts").child(name + ".jpg").putBytes(bitmapToBytes(post.getBitmap())); - uploadTask.addOnFailureListener(new OnFailureListener() { - @Override - public void onFailure(@NonNull Exception e) { - Log.d(TAG, "onFailure: Upload Failed"); - } - }) - .addOnSuccessListener(new OnSuccessListener() { - @Override - public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { - // Handle successful uploads on complete - Log.d(TAG, "onSuccess: Upload Success!"); - Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl(); - putPostInDatabase(post.getUriPost(downloadUrl), name); - } - }); - } - - private void putPostInDatabase(UriPost post, String name) { - DatabaseReference ref = mDataRef.child("posts").child(name); - ref.setValue(post) - .addOnCompleteListener(new OnCompleteListener() { - @Override - public void onComplete(@NonNull Task task) { - if (task.isSuccessful()) { - Log.d(TAG, "onComplete: Added post to database"); - } else { - Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); - } - } - }); - } - - /// Profile picture /// - - 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 - public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { - Uri downloadUrl = taskSnapshot.getDownloadUrl(); - updateProfilePictureInUser(downloadUrl); - } - }); - } - - private void updateProfilePictureInUser(Uri url) { - UserProfileChangeRequest request = new UserProfileChangeRequest.Builder() - .setPhotoUri(url) - .build(); - 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()); - } - } - }); - } - - public interface ProfilePictureUpdatedListener { - void ProfilePictureUpdated(Boolean success); - } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/model/UriPost.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/model/UriPost.java index 2b80ad6..25358be 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/model/UriPost.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/model/UriPost.java @@ -8,28 +8,29 @@ import java.util.Date; * UriPost is a Class for a Post with a Uri as an image. */ public class UriPost extends Post { - private String photo; + private String uri; public UriPost() { // Default constructor required for calls to DataSnapshot.getValue(UriPost.class) } - public UriPost(Uri photo, String comment, Date date, int nietSlechts, String poster) { + public UriPost(Uri uri, String comment, Date date, int nietSlechts, String poster) { super(comment, date, nietSlechts, poster); - this.photo = photo.toString(); + this.uri = uri.toString(); } - public UriPost(String photo, String comment) { + public UriPost(String uri, String comment) { super(comment); - this.photo = photo; + this.uri = uri; } public String getUri() { - return photo; + return uri; } - public void setPhoto(String photo) { - this.photo = photo; + + public void setUri(String uri) { + this.uri = uri; } } \ No newline at end of file From a9ad1308667509e532c3ed7339f6de9af509d72e Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Sun, 25 Jun 2017 15:06:13 +0200 Subject: [PATCH 4/4] Added failure messages. --- .../nl/myhyvesbookplus/tagram/controller/PostUploader.java | 4 ++++ .../tagram/controller/ProfilePictureUploader.java | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java index c0e00d6..7076169 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java @@ -45,6 +45,7 @@ public class PostUploader extends UploadClass { @Override public void onFailure(@NonNull Exception e) { Log.d(TAG, "onFailure: Upload Failed"); + mListener.PostUploadComplete(false); } }) .addOnSuccessListener(new OnSuccessListener() { @@ -66,8 +67,11 @@ public class PostUploader extends UploadClass { public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { Log.d(TAG, "onComplete: Added post to database"); + mListener.PostUploadComplete(true); } else { Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); + mListener.PostUploadComplete(false); + } } }); diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java index 0668936..1137d5d 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java @@ -7,6 +7,7 @@ import android.support.annotation.NonNull; import android.util.Log; import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.OnSuccessListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.UserProfileChangeRequest; @@ -48,6 +49,12 @@ public class ProfilePictureUploader extends UploadClass { Uri downloadUrl = taskSnapshot.getDownloadUrl(); updateProfilePictureInUser(downloadUrl); } + }) + .addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + mListener.ProfilePictureUpdated(false); + } }); }