From 722a5828ff603243885d5921ecc9454e580440d2 Mon Sep 17 00:00:00 2001 From: NMerz Date: Wed, 2 Dec 2020 17:01:37 -0500 Subject: [PATCH] Share confirm base layout --- .../com/example/listify/ConfirmShareView.java | 103 ++++++++++++++++++ .../java/com/example/listify/ListSharees.java | 1 + .../com/example/listify/MainActivity.java | 6 +- .../ShoppingListsSwipeableAdapter.java | 12 +- .../main/res/layout/share_confirmation.xml | 71 ++++++++++++ 5 files changed, 179 insertions(+), 14 deletions(-) create mode 100644 Listify/app/src/main/java/com/example/listify/ConfirmShareView.java create mode 100644 Listify/app/src/main/res/layout/share_confirmation.xml diff --git a/Listify/app/src/main/java/com/example/listify/ConfirmShareView.java b/Listify/app/src/main/java/com/example/listify/ConfirmShareView.java new file mode 100644 index 0000000..7da4780 --- /dev/null +++ b/Listify/app/src/main/java/com/example/listify/ConfirmShareView.java @@ -0,0 +1,103 @@ +package com.example.listify; + +import android.net.Uri; +import android.os.Bundle; +import android.os.PersistableBundle; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import com.example.listify.data.ListShare; +import com.example.listify.data.Picture; +import org.json.JSONException; + +import java.io.*; +import java.util.Properties; + +import static com.example.listify.MainActivity.am; + +public class ConfirmShareView extends AppCompatActivity { + @Override + public void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState, @Nullable @org.jetbrains.annotations.Nullable PersistableBundle persistentState) { + super.onCreate(savedInstanceState, persistentState); + setContentView(R.layout.share_confirmation); + TextView shareeEmailView = findViewById(R.id.shareeEmailView); + final String shareeEmail = (String) getIntent().getSerializableExtra("shareeEmail"); + final String shareeID = (String) getIntent().getSerializableExtra("shareeID"); + final Integer listID = (Integer) getIntent().getSerializableExtra("listID"); + + shareeEmailView.setText(shareeEmail); + Properties configs = new Properties(); + try { + configs = AuthManager.loadProperties(this, "android.resource://" + getPackageName() + "/raw/auths.json"); + } catch (IOException | JSONException e) { + e.printStackTrace(); + } + Requestor requestor = new Requestor(am, configs.getProperty("apiKey")); + SynchronousReceiver profilePictureReceiver = new SynchronousReceiver<>(); + ImageView profilePictureView = findViewById(R.id.otherProfilePicture); + try { + requestor.getObject("profile", Picture.class, profilePictureReceiver); + profilePictureView.setImageURI(Uri.fromFile(saveImage(profilePictureReceiver.await().getBase64EncodedImage(), "shareeProfilePicture"))); + } catch (Exception e) { + e.printStackTrace(); + } + Button confirmShare = (Button) findViewById(R.id.confirmShare); + Button cancelShare = (Button) findViewById(R.id.cancelShare); + + confirmShare.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + ListShare listShare = new ListShare(listID, shareeEmail, "Read, Write, Delete, Share", null); + try { + requestor.putObject(listShare); + } + catch(Exception e) { + e.printStackTrace(); + } + } + }); + + cancelShare.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //TODO: return to prior view + } + }); + + } + + //From: https://stackoverflow.com/questions/30005815/convert-encoded-base64-image-to-file-object-in-android + public File saveImage(final String imageData, String prefix) throws IOException { + final byte[] imgBytesData = android.util.Base64.decode(imageData, + android.util.Base64.DEFAULT); + + final File file = File.createTempFile(prefix, null, this.getCacheDir()); + final FileOutputStream fileOutputStream; + try { + fileOutputStream = new FileOutputStream(file); + } catch (FileNotFoundException e) { + e.printStackTrace(); + return null; + } + + final BufferedOutputStream bufferedOutputStream = new BufferedOutputStream( + fileOutputStream); + try { + bufferedOutputStream.write(imgBytesData); + } catch (IOException e) { + e.printStackTrace(); + return null; + } finally { + try { + bufferedOutputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return file; + } +} diff --git a/Listify/app/src/main/java/com/example/listify/ListSharees.java b/Listify/app/src/main/java/com/example/listify/ListSharees.java index 0393b0d..9f338ec 100644 --- a/Listify/app/src/main/java/com/example/listify/ListSharees.java +++ b/Listify/app/src/main/java/com/example/listify/ListSharees.java @@ -72,6 +72,7 @@ public class ListSharees extends AppCompatActivity implements Requestor.Receiver ListShare sharee = (ListShare) delivered; if(sharee != null) { + //should have lShareeEntries line here lShareeEmails.add(sharee.getShareWithEmail()); if(sharee.getEntries() != null) { diff --git a/Listify/app/src/main/java/com/example/listify/MainActivity.java b/Listify/app/src/main/java/com/example/listify/MainActivity.java index 096db85..8f431a5 100644 --- a/Listify/app/src/main/java/com/example/listify/MainActivity.java +++ b/Listify/app/src/main/java/com/example/listify/MainActivity.java @@ -184,7 +184,7 @@ public class MainActivity extends AppCompatActivity implements CreateListDialogF ImageView profilePictureView = navigationView.getHeaderView(0).findViewById(R.id.imageViewProfilePicture); try { requestor.getObject("profile", Picture.class, profilePictureReceiver); - profilePictureView.setImageURI(Uri.fromFile(saveImage(profilePictureReceiver.await().getBase64EncodedImage()))); + profilePictureView.setImageURI(Uri.fromFile(saveImage(profilePictureReceiver.await().getBase64EncodedImage(), "profilePicture"))); } catch (Exception e) { e.printStackTrace(); } @@ -241,11 +241,11 @@ public class MainActivity extends AppCompatActivity implements CreateListDialogF } //From: https://stackoverflow.com/questions/30005815/convert-encoded-base64-image-to-file-object-in-android - private File saveImage(final String imageData) throws IOException { + public File saveImage(final String imageData, String prefix) throws IOException { final byte[] imgBytesData = android.util.Base64.decode(imageData, android.util.Base64.DEFAULT); - final File file = File.createTempFile("profilePicture", null, this.getCacheDir()); + final File file = File.createTempFile(prefix, null, this.getCacheDir()); final FileOutputStream fileOutputStream; try { fileOutputStream = new FileOutputStream(file); diff --git a/Listify/app/src/main/java/com/example/listify/adapter/ShoppingListsSwipeableAdapter.java b/Listify/app/src/main/java/com/example/listify/adapter/ShoppingListsSwipeableAdapter.java index 1ad6d5e..c491ade 100644 --- a/Listify/app/src/main/java/com/example/listify/adapter/ShoppingListsSwipeableAdapter.java +++ b/Listify/app/src/main/java/com/example/listify/adapter/ShoppingListsSwipeableAdapter.java @@ -1,28 +1,18 @@ package com.example.listify.adapter; import android.app.Activity; -import android.app.AlertDialog; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; -import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; - import com.chauthai.swipereveallayout.SwipeRevealLayout; import com.chauthai.swipereveallayout.ViewBinderHelper; -import com.example.listify.AuthManager; -import com.example.listify.ListPage; -import com.example.listify.ListSharees; -import com.example.listify.R; -import com.example.listify.Requestor; +import com.example.listify.*; import com.example.listify.data.List; -import com.example.listify.data.ListShare; - import org.json.JSONException; import java.io.IOException; diff --git a/Listify/app/src/main/res/layout/share_confirmation.xml b/Listify/app/src/main/res/layout/share_confirmation.xml new file mode 100644 index 0000000..bbcb6c5 --- /dev/null +++ b/Listify/app/src/main/res/layout/share_confirmation.xml @@ -0,0 +1,71 @@ + + + + + + + + + + +