From 2d80ff22821dce55cd4c5aadae66fcf784077f66 Mon Sep 17 00:00:00 2001 From: Aaron Sun Date: Wed, 7 Oct 2020 21:21:59 -0700 Subject: [PATCH] Connected List UI with API --- Listify/app/src/main/AndroidManifest.xml | 2 +- .../listify/{List.java => ListPage.java} | 80 ++++++++++++++++++- .../com/example/listify/MainActivity.java | 2 + .../com/example/listify/ui/LoginPage.java | 5 +- .../com/example/listify/ui/SignupPage.java | 7 +- .../example/listify/ui/home/HomeFragment.java | 2 +- 6 files changed, 86 insertions(+), 12 deletions(-) rename Listify/app/src/main/java/com/example/listify/{List.java => ListPage.java} (69%) diff --git a/Listify/app/src/main/AndroidManifest.xml b/Listify/app/src/main/AndroidManifest.xml index 9de69e3..3451336 100644 --- a/Listify/app/src/main/AndroidManifest.xml +++ b/Listify/app/src/main/AndroidManifest.xml @@ -34,7 +34,7 @@ - + \ No newline at end of file diff --git a/Listify/app/src/main/java/com/example/listify/List.java b/Listify/app/src/main/java/com/example/listify/ListPage.java similarity index 69% rename from Listify/app/src/main/java/com/example/listify/List.java rename to Listify/app/src/main/java/com/example/listify/ListPage.java index f011f96..c4655eb 100644 --- a/Listify/app/src/main/java/com/example/listify/List.java +++ b/Listify/app/src/main/java/com/example/listify/ListPage.java @@ -13,13 +13,24 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; + +import com.example.listify.data.Item; +import com.example.listify.data.List; +import com.example.listify.data.ListEntry; +import com.example.listify.model.Product; +import static com.example.listify.MainActivity.am; + +import org.json.JSONException; + +import java.io.IOException; import java.util.ArrayList; +import java.util.Properties; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; -public class List extends AppCompatActivity { +public class ListPage extends AppCompatActivity { ListView listView; MyAdapter myAdapter; @@ -33,8 +44,50 @@ public class List extends AppCompatActivity { ArrayList pQuantity = new ArrayList<>(); //String[] pQuantity = {"1"}; ArrayList pImages = new ArrayList<>(); //int[] pImages = {R.drawable.milk}; + Requestor requestor; + @Override protected void onCreate(@Nullable Bundle savedInstanceState) { + Properties configs = new Properties(); + try { + configs = AuthManager.loadProperties(this, "android.resource://" + getPackageName() + "/raw/auths.json"); + } catch (IOException | JSONException e) { + e.printStackTrace(); + } + requestor = new Requestor(am, configs.getProperty("apiKey")); + SynchronousReceiver lr = new SynchronousReceiver<>(); + requestor.getObject("-1", List.class, lr, lr); + + List list; + + try { + list = lr.await(); + } + catch(Exception e) { + list = null; + } + + if(list != null) { + for (ListEntry entry : list.getEntries()) { + int product = entry.getProductID(); + SynchronousReceiver pr = new SynchronousReceiver<>(); + requestor.getObject(Integer.toString(product), Item.class, pr, pr); + Item item; + try { + item = pr.await(); + } catch (Exception e) { + item = null; + } + if(item != null) { + pNames.add(item.getDescription()); + pStores.add("Kroger"); + pPrices.add(item.getPrice().toString()); + pQuantity.add("1"); + pImages.add(R.drawable.placeholder); + } + } + } + pNames.add("Half-gallon organic whole milk"); pStores.add("Kroger"); pPrices.add("$5.00"); @@ -53,8 +106,6 @@ public class List extends AppCompatActivity { pQuantity.add("1"); pImages.add(R.drawable.peanutbutter); - int currSize = pNames.size(); - super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); @@ -151,4 +202,27 @@ public class List extends AppCompatActivity { return listproduct; } } + + /*class ListReceiver implements Requestor.Receiver { + @Override + public void acceptDelivery(T delivered) { + for(ListEntry entry : ((List) delivered).getEntries()) { + int product = entry.getProductID(); + ProductReceiver pr = new ProductReceiver<>(); + requestor.getObject(Integer.toString(product), Item.class, pr); + pQuantity.add("1"); + } + } + } + + class ProductReceiver implements Requestor.Receiver { + @Override + public void acceptDelivery(T delivered) { + Item i = (Item) delivered; + pNames.add(i.getDescription()); + pStores.add("Kroger"); + pPrices.add(i.getPrice().toString()); + pImages.add(R.drawable.placeholder); + } + }*/ } 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 5590ccd..160f533 100644 --- a/Listify/app/src/main/java/com/example/listify/MainActivity.java +++ b/Listify/app/src/main/java/com/example/listify/MainActivity.java @@ -29,6 +29,8 @@ import java.util.Random; public class MainActivity extends AppCompatActivity { private AppBarConfiguration mAppBarConfiguration; + public static AuthManager am = new AuthManager(); + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/Listify/app/src/main/java/com/example/listify/ui/LoginPage.java b/Listify/app/src/main/java/com/example/listify/ui/LoginPage.java index 04682b0..30199ba 100644 --- a/Listify/app/src/main/java/com/example/listify/ui/LoginPage.java +++ b/Listify/app/src/main/java/com/example/listify/ui/LoginPage.java @@ -10,6 +10,7 @@ import android.widget.EditText; import com.example.listify.R; import com.example.listify.AuthManager; import com.example.listify.MainActivity; +import static com.example.listify.MainActivity.am; import androidx.appcompat.app.AppCompatActivity; @@ -51,10 +52,8 @@ public class LoginPage extends AppCompatActivity { String email = emailText.getText().toString(); String password = passwordText.getText().toString(); - AuthManager authManager = new AuthManager(); - try { - authManager.signIn(email, password); + am.signIn(email, password); Intent intent = new Intent(LoginPage.this, MainActivity.class); startActivity(intent); } diff --git a/Listify/app/src/main/java/com/example/listify/ui/SignupPage.java b/Listify/app/src/main/java/com/example/listify/ui/SignupPage.java index ac9aa3c..f5774c2 100644 --- a/Listify/app/src/main/java/com/example/listify/ui/SignupPage.java +++ b/Listify/app/src/main/java/com/example/listify/ui/SignupPage.java @@ -10,6 +10,7 @@ import android.widget.EditText; import com.example.listify.R; import com.example.listify.AuthManager; import com.example.listify.MainActivity; +import static com.example.listify.MainActivity.am; import androidx.appcompat.app.AppCompatActivity; @@ -17,8 +18,6 @@ public class SignupPage extends AppCompatActivity implements CodePage.CodeDialog private Button button1; //Log in page button private Button button2; //Sign up button - AuthManager authManager = new AuthManager(); - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -44,7 +43,7 @@ public class SignupPage extends AppCompatActivity implements CodePage.CodeDialog String password = passwordText.getText().toString(); try { - authManager.startSignUp(email, password); + am.startSignUp(email, password); } catch(Exception e) { return; @@ -67,7 +66,7 @@ public class SignupPage extends AppCompatActivity implements CodePage.CodeDialog } else { try { - authManager.confirmSignUp(code); + am.confirmSignUp(code); Intent intent = new Intent(SignupPage.this, MainActivity.class); startActivity(intent); } diff --git a/Listify/app/src/main/java/com/example/listify/ui/home/HomeFragment.java b/Listify/app/src/main/java/com/example/listify/ui/home/HomeFragment.java index 2bb4814..2fb4fe2 100644 --- a/Listify/app/src/main/java/com/example/listify/ui/home/HomeFragment.java +++ b/Listify/app/src/main/java/com/example/listify/ui/home/HomeFragment.java @@ -32,7 +32,7 @@ public class HomeFragment extends Fragment { toListPage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(HomeFragment.this.getActivity(), com.example.listify.List.class); + Intent intent = new Intent(HomeFragment.this.getActivity(), com.example.listify.ListPage.class); startActivity(intent); } });