From afe15703eeb66d8b5e7b24af6555472b506637bb Mon Sep 17 00:00:00 2001 From: Clayton Wilson Date: Sun, 4 Oct 2020 00:13:31 -0400 Subject: [PATCH 1/6] Adapter and ShoppingList class for displaying shopping lists --- .../com/example/listify/MainActivity.java | 1 + .../adapter/DisplayShoppingListsAdapter.java | 56 ++++++++++++++ .../example/listify/model/ShoppingList.java | 74 +++++++++++++++++++ .../layout/display_shopping_lists_item.xml | 8 ++ 4 files changed, 139 insertions(+) create mode 100644 Listify/app/src/main/java/com/example/listify/adapter/DisplayShoppingListsAdapter.java create mode 100644 Listify/app/src/main/java/com/example/listify/model/ShoppingList.java create mode 100644 Listify/app/src/main/res/layout/display_shopping_lists_item.xml 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 0549e08..2575fb3 100644 --- a/Listify/app/src/main/java/com/example/listify/MainActivity.java +++ b/Listify/app/src/main/java/com/example/listify/MainActivity.java @@ -82,6 +82,7 @@ public class MainActivity extends AppCompatActivity { NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration); NavigationUI.setupWithNavController(navigationView, navController); + // Handle search button click ImageButton searchButton = (ImageButton) findViewById(R.id.searchButton); searchButton.setOnClickListener(new View.OnClickListener() { diff --git a/Listify/app/src/main/java/com/example/listify/adapter/DisplayShoppingListsAdapter.java b/Listify/app/src/main/java/com/example/listify/adapter/DisplayShoppingListsAdapter.java new file mode 100644 index 0000000..6e94238 --- /dev/null +++ b/Listify/app/src/main/java/com/example/listify/adapter/DisplayShoppingListsAdapter.java @@ -0,0 +1,56 @@ +package com.example.listify.adapter; + +import android.app.Activity; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.TextView; +import com.example.listify.R; +import com.example.listify.model.ShoppingList; + +import java.util.ArrayList; + +public class DisplayShoppingListsAdapter extends BaseAdapter { + private Activity activity; + private ArrayList lists; + private LayoutInflater inflater; + + public DisplayShoppingListsAdapter(Activity activity, ArrayList lists){ + this.activity = activity; + this.lists = lists; + } + + @Override + public int getCount() { + return lists.size(); + } + + @Override + public Object getItem(int position) { + return lists.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + if (inflater == null) { + inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + } + if (convertView == null) { + convertView = inflater.inflate(R.layout.search_list_item, null); + } + + ShoppingList curList = lists.get(position); + + TextView tvListName = (TextView) convertView.findViewById(R.id.shopping_list_name); + tvListName.setText(curList.getName()); + + return convertView; + } +} diff --git a/Listify/app/src/main/java/com/example/listify/model/ShoppingList.java b/Listify/app/src/main/java/com/example/listify/model/ShoppingList.java new file mode 100644 index 0000000..d833eed --- /dev/null +++ b/Listify/app/src/main/java/com/example/listify/model/ShoppingList.java @@ -0,0 +1,74 @@ +package com.example.listify.model; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.util.ArrayList; +import java.util.Collection; + +public class ShoppingList extends ArrayList { + private ArrayList list; + private String name; + + public ShoppingList(String name) { + list = new ArrayList(); + this.name = name; + } + + public Product get(int position) { + return this.list.get(position); + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public int size() { + return list.size(); + } + + @Override + public boolean isEmpty() { + return list.isEmpty(); + } + + @Override + public boolean contains(@Nullable Object o) { + return list.contains(o); + } + + @Override + public int indexOf(@Nullable Object o) { + return list.indexOf(o); + } + + @Override + public boolean add(Product product) { + return list.add(product); + } + + @Override + public Product remove(int index) { + return list.remove(index); + } + + @Override + public void clear() { + list.clear(); + } + + @Override + public boolean remove(@Nullable Object o) { + return list.remove(o); + } + + @Override + public boolean addAll(@NonNull Collection c) { + return list.addAll(c); + } +} diff --git a/Listify/app/src/main/res/layout/display_shopping_lists_item.xml b/Listify/app/src/main/res/layout/display_shopping_lists_item.xml new file mode 100644 index 0000000..45c92e4 --- /dev/null +++ b/Listify/app/src/main/res/layout/display_shopping_lists_item.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file From 64d4fb0192130ddaffd3e508b49a65d03461a855 Mon Sep 17 00:00:00 2001 From: Clayton Wilson Date: Sun, 4 Oct 2020 00:47:27 -0400 Subject: [PATCH 2/6] Fix search results not filtering by store selection --- .../com/example/listify/SearchResults.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Listify/app/src/main/java/com/example/listify/SearchResults.java b/Listify/app/src/main/java/com/example/listify/SearchResults.java index e87fd48..328f273 100644 --- a/Listify/app/src/main/java/com/example/listify/SearchResults.java +++ b/Listify/app/src/main/java/com/example/listify/SearchResults.java @@ -137,12 +137,16 @@ public class SearchResults extends AppCompatActivity implements SortDialogFragme Product d = new Product("Video Game", "0003", "Walmart", "0001", "0123456783", "Fun Vidya Gaemz", "Electronics", 60.00, "9/24/2020", "1", "https://i1.wp.com/bestlifeonline.com/wp-content/uploads/2018/06/cat-meme-67.jpg?resize=1024%2C1024&ssl=1"); Product e = new Product("Mountain Dew", "0004", "Walmart", "0001", "0123456784", "Gamer fuel", "Grocery", 5.87, "9/24/2020", "1", "https://memeguy.com/photos/images/gaming-cat-7680.png"); Product f = new Product("Tire", "0005", "Walmart", "0001", "0123456785", "30 inch rims", "Automotive", 146.97, "9/24/2020", "1", "http://cdn.sheknows.com/articles/2013/05/pet5.jpg"); + Product g = new Product("Bottled Water", "0000", "Target", "0001", "0123456780", "Bro, it's water...", "Grocery", 13.37, "9/24/2020", "1", "http://3.bp.blogspot.com/-MfroPPQVDKo/UyhUZWqGvkI/AAAAAAAAB-I/DGk622onsvc/s1600/lettuce-b-kool-cat-meme.jpg"); + Product h = new Product("Tin Foil", "0001", "Kroger", "0001", "0123456781", "Not aluminum foil", "Grocery", 1.00, "9/24/2020", "1", "https://i.ytimg.com/vi/q9N1doYMxR0/maxresdefault.jpg"); resultsProductList.add(a); resultsProductList.add(b); resultsProductList.add(c); resultsProductList.add(d); resultsProductList.add(e); resultsProductList.add(f); + resultsProductList.add(g); + resultsProductList.add(h); } // Create a list of all stores in the results so the user can filter by store name @@ -173,8 +177,7 @@ public class SearchResults extends AppCompatActivity implements SortDialogFragme case 0: resultsProductListSorted.clear(); resultsProductListSorted.addAll(resultsProductList); - searchResultsListAdapter.notifyDataSetChanged(); - return; + break; case 1: resultsProductListSorted.sort(new Comparator() { @Override @@ -219,7 +222,7 @@ public class SearchResults extends AppCompatActivity implements SortDialogFragme break; } - if (this.descending) { + if (this.sortMode != 0 & this.descending) { for (int i = 0; i < resultsProductListSorted.size() / 2; i++) { Product temp = resultsProductListSorted.get(i); resultsProductListSorted.set(i, resultsProductListSorted.get(resultsProductListSorted.size() - i - 1)); @@ -227,6 +230,18 @@ public class SearchResults extends AppCompatActivity implements SortDialogFragme } } + // Only keep results that match the current store selection + if (this.storeSelection != 0) { + ArrayList temp = new ArrayList<>(); + resultsProductListSorted.forEach(product -> { + if (product.getChainName().equals(this.stores.get(this.storeSelection - 1))) { + temp.add(product); + } + }); + resultsProductListSorted.clear(); + resultsProductListSorted.addAll(temp); + } + searchResultsListAdapter.notifyDataSetChanged(); } } \ No newline at end of file From 4a1bab20012d4f5de89f67ca324b5a108601bb4d Mon Sep 17 00:00:00 2001 From: Clayton Wilson Date: Sun, 4 Oct 2020 19:48:00 -0400 Subject: [PATCH 3/6] Display users lists --- .../com/example/listify/MainActivity.java | 4 +- .../adapter/DisplayShoppingListsAdapter.java | 2 +- .../listify/ui/lists/ListsFragment.java | 53 +++++++++++++++++++ .../res/drawable/ic_baseline_list_alt_28.xml | 5 ++ .../app/src/main/res/layout/app_bar_lists.xml | 46 ++++++++++++++++ .../layout/display_shopping_lists_item.xml | 16 +++++- .../src/main/res/layout/fragment_lists.xml | 22 ++++++++ .../main/res/menu/activity_main_drawer.xml | 4 ++ Listify/app/src/main/res/menu/lists_menu.xml | 9 ++++ .../main/res/navigation/mobile_navigation.xml | 6 +++ Listify/app/src/main/res/values/strings.xml | 1 + 11 files changed, 163 insertions(+), 5 deletions(-) create mode 100644 Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java create mode 100644 Listify/app/src/main/res/drawable/ic_baseline_list_alt_28.xml create mode 100644 Listify/app/src/main/res/layout/app_bar_lists.xml create mode 100644 Listify/app/src/main/res/layout/fragment_lists.xml create mode 100644 Listify/app/src/main/res/menu/lists_menu.xml 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 2575fb3..3cdd75b 100644 --- a/Listify/app/src/main/java/com/example/listify/MainActivity.java +++ b/Listify/app/src/main/java/com/example/listify/MainActivity.java @@ -76,13 +76,13 @@ public class MainActivity extends AppCompatActivity { NavigationView navigationView = findViewById(R.id.nav_view); // Passing each menu ID as a set of Ids because each menu should be considered as top level destinations. mAppBarConfiguration = new AppBarConfiguration.Builder( - R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow) + R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow, R.id.nav_lists) .setDrawerLayout(drawer) .build(); NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration); NavigationUI.setupWithNavController(navigationView, navController); - + // Handle search button click ImageButton searchButton = (ImageButton) findViewById(R.id.searchButton); searchButton.setOnClickListener(new View.OnClickListener() { diff --git a/Listify/app/src/main/java/com/example/listify/adapter/DisplayShoppingListsAdapter.java b/Listify/app/src/main/java/com/example/listify/adapter/DisplayShoppingListsAdapter.java index 6e94238..4de7e08 100644 --- a/Listify/app/src/main/java/com/example/listify/adapter/DisplayShoppingListsAdapter.java +++ b/Listify/app/src/main/java/com/example/listify/adapter/DisplayShoppingListsAdapter.java @@ -43,7 +43,7 @@ public class DisplayShoppingListsAdapter extends BaseAdapter { inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } if (convertView == null) { - convertView = inflater.inflate(R.layout.search_list_item, null); + convertView = inflater.inflate(R.layout.display_shopping_lists_item, null); } ShoppingList curList = lists.get(position); diff --git a/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java b/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java new file mode 100644 index 0000000..b188136 --- /dev/null +++ b/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java @@ -0,0 +1,53 @@ +package com.example.listify.ui.lists; + +import android.os.Bundle; +import android.view.View; +import android.view.ViewGroup; +import android.view.LayoutInflater; +import android.widget.AdapterView; +import android.widget.ListView; +import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.Fragment; + +import com.example.listify.MainActivity; +import com.example.listify.R; +import com.example.listify.adapter.DisplayShoppingListsAdapter; +import com.example.listify.model.ShoppingList; + +import java.util.ArrayList; + +public class ListsFragment extends Fragment { + ListView shoppingListsView; + + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View root = inflater.inflate(R.layout.fragment_lists, container, false); + +// Toolbar toolbar = (Toolbar) root.findViewById(R.id.toolbar_lists); +// ((AppCompatActivity)getActivity()).setActionBar(toolbar); + + // Hardcode shopping lists to demonstrate displaying lists + shoppingListsView = root.findViewById(R.id.shopping_lists); + ShoppingList a = new ShoppingList("first list"); + ShoppingList b = new ShoppingList("Groceries"); + ShoppingList c = new ShoppingList("Expensive Stuff"); + ArrayList shoppingLists = new ArrayList<>(); + shoppingLists.add(a); + shoppingLists.add(b); + shoppingLists.add(c); + + // Set adapter and display this users lists + DisplayShoppingListsAdapter displayShoppingListsAdapter = new DisplayShoppingListsAdapter(getActivity(), shoppingLists); + shoppingListsView.setAdapter(displayShoppingListsAdapter); + shoppingListsView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + Toast.makeText(getContext(), "open and display " + shoppingLists.get(position).getName(), Toast.LENGTH_SHORT).show(); + } + }); + + return root; + } +} \ No newline at end of file diff --git a/Listify/app/src/main/res/drawable/ic_baseline_list_alt_28.xml b/Listify/app/src/main/res/drawable/ic_baseline_list_alt_28.xml new file mode 100644 index 0000000..e8b9972 --- /dev/null +++ b/Listify/app/src/main/res/drawable/ic_baseline_list_alt_28.xml @@ -0,0 +1,5 @@ + + + diff --git a/Listify/app/src/main/res/layout/app_bar_lists.xml b/Listify/app/src/main/res/layout/app_bar_lists.xml new file mode 100644 index 0000000..6f0d3ab --- /dev/null +++ b/Listify/app/src/main/res/layout/app_bar_lists.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Listify/app/src/main/res/layout/display_shopping_lists_item.xml b/Listify/app/src/main/res/layout/display_shopping_lists_item.xml index 45c92e4..5419294 100644 --- a/Listify/app/src/main/res/layout/display_shopping_lists_item.xml +++ b/Listify/app/src/main/res/layout/display_shopping_lists_item.xml @@ -1,8 +1,20 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + xmlns:app="http://schemas.android.com/apk/res-auto"> + android:layout_height="wrap_content" + android:layout_marginStart="8dp" + android:layout_marginTop="10dp" + android:layout_marginBottom="10dp" + android:layout_marginEnd="8dp" + android:textSize="20sp" + android:textStyle="bold" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> \ No newline at end of file diff --git a/Listify/app/src/main/res/layout/fragment_lists.xml b/Listify/app/src/main/res/layout/fragment_lists.xml new file mode 100644 index 0000000..fc4831a --- /dev/null +++ b/Listify/app/src/main/res/layout/fragment_lists.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/Listify/app/src/main/res/menu/activity_main_drawer.xml b/Listify/app/src/main/res/menu/activity_main_drawer.xml index d7f2df2..f95fd19 100644 --- a/Listify/app/src/main/res/menu/activity_main_drawer.xml +++ b/Listify/app/src/main/res/menu/activity_main_drawer.xml @@ -16,5 +16,9 @@ android:id="@+id/nav_slideshow" android:icon="@drawable/ic_menu_slideshow" android:title="@string/menu_slideshow" /> + \ No newline at end of file diff --git a/Listify/app/src/main/res/menu/lists_menu.xml b/Listify/app/src/main/res/menu/lists_menu.xml new file mode 100644 index 0000000..493c783 --- /dev/null +++ b/Listify/app/src/main/res/menu/lists_menu.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/Listify/app/src/main/res/navigation/mobile_navigation.xml b/Listify/app/src/main/res/navigation/mobile_navigation.xml index a8103d9..274deba 100644 --- a/Listify/app/src/main/res/navigation/mobile_navigation.xml +++ b/Listify/app/src/main/res/navigation/mobile_navigation.xml @@ -22,4 +22,10 @@ android:name="com.example.listify.ui.slideshow.SlideshowFragment" android:label="@string/menu_slideshow" tools:layout="@layout/fragment_slideshow" /> + + \ No newline at end of file diff --git a/Listify/app/src/main/res/values/strings.xml b/Listify/app/src/main/res/values/strings.xml index 6299f7d..293ec9c 100644 --- a/Listify/app/src/main/res/values/strings.xml +++ b/Listify/app/src/main/res/values/strings.xml @@ -29,4 +29,5 @@ Search Button SearchResults Store selection + My Lists \ No newline at end of file From dd13995ffefe632dd89e9a57439a06d6f755e452 Mon Sep 17 00:00:00 2001 From: Clayton Wilson Date: Sun, 4 Oct 2020 21:17:02 -0400 Subject: [PATCH 4/6] Fix bug in search results sorting --- .../src/main/java/com/example/listify/SearchResults.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Listify/app/src/main/java/com/example/listify/SearchResults.java b/Listify/app/src/main/java/com/example/listify/SearchResults.java index 328f273..28d6d8d 100644 --- a/Listify/app/src/main/java/com/example/listify/SearchResults.java +++ b/Listify/app/src/main/java/com/example/listify/SearchResults.java @@ -165,6 +165,10 @@ public class SearchResults extends AppCompatActivity implements SortDialogFragme // Sorts the search results private void sortResults() { + // Reset the filtered list + resultsProductListSorted.clear(); + resultsProductListSorted.addAll(resultsProductList); + // Sort Modes // 0 default (no sorting) // 1 itemName @@ -175,8 +179,7 @@ public class SearchResults extends AppCompatActivity implements SortDialogFragme // Sort based on mode switch (this.sortMode) { case 0: - resultsProductListSorted.clear(); - resultsProductListSorted.addAll(resultsProductList); + // Do nothing break; case 1: resultsProductListSorted.sort(new Comparator() { From 12bee4c48cfb23c1ab00f8c1d3f3c116f67ca583 Mon Sep 17 00:00:00 2001 From: Clayton Wilson Date: Mon, 5 Oct 2020 19:57:39 -0400 Subject: [PATCH 5/6] Add floating action button to lists fragment --- .../java/com/example/listify/ui/lists/ListsFragment.java | 9 +++++++++ Listify/app/src/main/res/layout/fragment_lists.xml | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java b/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java index b188136..de5585a 100644 --- a/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java +++ b/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java @@ -16,6 +16,7 @@ import com.example.listify.MainActivity; import com.example.listify.R; import com.example.listify.adapter.DisplayShoppingListsAdapter; import com.example.listify.model.ShoppingList; +import com.google.android.material.floatingactionbutton.FloatingActionButton; import java.util.ArrayList; @@ -48,6 +49,14 @@ public class ListsFragment extends Fragment { } }); + FloatingActionButton fab = (FloatingActionButton) root.findViewById(R.id.new_list_fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Toast.makeText(getContext(), "yo", Toast.LENGTH_SHORT).show(); + } + }); + return root; } } \ No newline at end of file diff --git a/Listify/app/src/main/res/layout/fragment_lists.xml b/Listify/app/src/main/res/layout/fragment_lists.xml index fc4831a..19493ab 100644 --- a/Listify/app/src/main/res/layout/fragment_lists.xml +++ b/Listify/app/src/main/res/layout/fragment_lists.xml @@ -19,4 +19,13 @@ android:divider="@color/list_divider" android:dividerHeight="1dp"/> + + \ No newline at end of file From bdaeb94daf3703d388a03371fcc9c44f2577cdf2 Mon Sep 17 00:00:00 2001 From: Clayton Wilson Date: Wed, 7 Oct 2020 21:59:23 -0400 Subject: [PATCH 6/6] Add create list dialog to various buttons --- .../com/example/listify/MainActivity.java | 20 ++++++++++++++++++- .../listify/ui/lists/ListsFragment.java | 11 ++++++++-- .../src/main/res/layout/fragment_lists.xml | 2 +- .../main/res/menu/activity_main_drawer.xml | 5 +++++ 4 files changed, 34 insertions(+), 4 deletions(-) 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 c6a4c89..6c34431 100644 --- a/Listify/app/src/main/java/com/example/listify/MainActivity.java +++ b/Listify/app/src/main/java/com/example/listify/MainActivity.java @@ -3,6 +3,7 @@ package com.example.listify; import android.content.Intent; import android.os.Bundle; import android.util.Log; +import android.view.MenuItem; import android.view.View; import android.widget.ImageButton; import androidx.appcompat.app.AppCompatActivity; @@ -26,7 +27,7 @@ import java.util.Arrays; import java.util.Properties; import java.util.Random; -public class MainActivity extends AppCompatActivity { +public class MainActivity extends AppCompatActivity implements CreateListDialogFragment.OnNewListListener { private AppBarConfiguration mAppBarConfiguration; @Override @@ -161,4 +162,21 @@ public class MainActivity extends AppCompatActivity { NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); return NavigationUI.navigateUp(navController, mAppBarConfiguration) || super.onSupportNavigateUp(); } + + // This function only exists for the create new list option in hamburger menu + public void onClickCreateList(MenuItem m) { + m.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + CreateListDialogFragment createListDialogFragment = new CreateListDialogFragment(); + createListDialogFragment.show(getSupportFragmentManager(), "Create New List"); + return false; + } + }); + } + + @Override + public void sendNewListName(String name) { + + } } \ No newline at end of file diff --git a/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java b/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java index de5585a..d13fe36 100644 --- a/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java +++ b/Listify/app/src/main/java/com/example/listify/ui/lists/ListsFragment.java @@ -12,6 +12,7 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; +import com.example.listify.CreateListDialogFragment; import com.example.listify.MainActivity; import com.example.listify.R; import com.example.listify.adapter.DisplayShoppingListsAdapter; @@ -20,7 +21,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; import java.util.ArrayList; -public class ListsFragment extends Fragment { +public class ListsFragment extends Fragment implements CreateListDialogFragment.OnNewListListener { ListView shoppingListsView; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -53,10 +54,16 @@ public class ListsFragment extends Fragment { fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Toast.makeText(getContext(), "yo", Toast.LENGTH_SHORT).show(); + CreateListDialogFragment createListDialogFragment = new CreateListDialogFragment(); + createListDialogFragment.show(getActivity().getSupportFragmentManager(), "Create New List"); } }); return root; } + + @Override + public void sendNewListName(String name) { + Toast.makeText(getActivity(), String.format("%s created", name), Toast.LENGTH_LONG).show(); + } } \ No newline at end of file diff --git a/Listify/app/src/main/res/layout/fragment_lists.xml b/Listify/app/src/main/res/layout/fragment_lists.xml index 19493ab..0793341 100644 --- a/Listify/app/src/main/res/layout/fragment_lists.xml +++ b/Listify/app/src/main/res/layout/fragment_lists.xml @@ -24,7 +24,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/fab_margin" - app:srcCompat="@drawable/ic_baseline_sort_28" + app:srcCompat="@drawable/ic_baseline_add_28" android:layout_alignParentBottom="true" android:layout_alignParentEnd="true"/> diff --git a/Listify/app/src/main/res/menu/activity_main_drawer.xml b/Listify/app/src/main/res/menu/activity_main_drawer.xml index f95fd19..b9f5501 100644 --- a/Listify/app/src/main/res/menu/activity_main_drawer.xml +++ b/Listify/app/src/main/res/menu/activity_main_drawer.xml @@ -20,5 +20,10 @@ android:id="@+id/nav_lists" android:icon="@drawable/ic_baseline_list_alt_28" android:title="@string/menu_lists" /> + \ No newline at end of file