diff --git a/Listify/app/src/main/AndroidManifest.xml b/Listify/app/src/main/AndroidManifest.xml index cfa6d82..3be9097 100644 --- a/Listify/app/src/main/AndroidManifest.xml +++ b/Listify/app/src/main/AndroidManifest.xml @@ -40,8 +40,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 68% 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..f33608e 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,51 @@ 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<>(); + //ListReceiver lr = new ListReceiver<>(); + requestor.getObject("39", List.class, 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 +107,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 +203,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 6c34431..23d74f2 100644 --- a/Listify/app/src/main/java/com/example/listify/MainActivity.java +++ b/Listify/app/src/main/java/com/example/listify/MainActivity.java @@ -30,6 +30,8 @@ import java.util.Random; public class MainActivity extends AppCompatActivity implements CreateListDialogFragment.OnNewListListener { private AppBarConfiguration mAppBarConfiguration; + public static AuthManager am = new AuthManager(); + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -86,6 +88,7 @@ public class MainActivity extends AppCompatActivity implements CreateListDialogF List testList = new List(-1, "New List", "user filled by lambda", Instant.now().toEpochMilli()); //Everything except addedDate is used for ItemEntry ListEntry entry = new ListEntry(1, 4, Math.abs(new Random().nextInt()), Instant.now().toEpochMilli(),false); + SynchronousReceiver idReceiver = new SynchronousReceiver<>(); try { requestor.postObject(testList, idReceiver, idReceiver); 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); } });