From ea9eabd398a482986be37c52a50bda8426cd2d87 Mon Sep 17 00:00:00 2001 From: Clayton Wilson Date: Mon, 5 Oct 2020 21:49:21 -0400 Subject: [PATCH] Create-new-list dialog added to item details page --- .../listify/CreateListDialogFragment.java | 68 +++++++++++++++++++ .../java/com/example/listify/ItemDetails.java | 17 +++-- .../main/res/layout/dialog_add_to_list.xml | 15 +++- .../main/res/layout/dialog_create_list.xml | 22 ++++++ Listify/app/src/main/res/values/strings.xml | 6 ++ 5 files changed, 118 insertions(+), 10 deletions(-) create mode 100644 Listify/app/src/main/java/com/example/listify/CreateListDialogFragment.java create mode 100644 Listify/app/src/main/res/layout/dialog_create_list.xml diff --git a/Listify/app/src/main/java/com/example/listify/CreateListDialogFragment.java b/Listify/app/src/main/java/com/example/listify/CreateListDialogFragment.java new file mode 100644 index 0000000..00ff7ee --- /dev/null +++ b/Listify/app/src/main/java/com/example/listify/CreateListDialogFragment.java @@ -0,0 +1,68 @@ +package com.example.listify; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.EditText; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.DialogFragment; + + +public class CreateListDialogFragment extends DialogFragment { + + public interface OnNewListListener { + void sendNewListName(String name); + } + + public OnNewListListener onNewListListener; + + EditText etNewListName; + + public CreateListDialogFragment() {} + + + @Override + public Dialog onCreateDialog(final Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + // Get the layout inflater + LayoutInflater inflater = requireActivity().getLayoutInflater(); + + // Inflate and set the layout for the dialog + // Pass null as the parent view because its going in the dialog layout + View root = inflater.inflate(R.layout.dialog_create_list, null); + builder.setView(root) + // Add action buttons + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + onNewListListener.sendNewListName(etNewListName.getText().toString()); + } + }) + .setNegativeButton("cancel", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + CreateListDialogFragment.this.getDialog().cancel(); + } + }); + + etNewListName = (EditText) root.findViewById(R.id.et_new_list_name); + + + return builder.create(); + } + + // Required to extend DialogFragment + @Override + public void onAttach(@NonNull Context context) { + super.onAttach(context); + try { + onNewListListener = (OnNewListListener) getActivity(); + } catch (ClassCastException e) { + Log.e("CreateListDialogFragment", "onAttach: ClassCastException: " + e.getMessage()); + } + } +} diff --git a/Listify/app/src/main/java/com/example/listify/ItemDetails.java b/Listify/app/src/main/java/com/example/listify/ItemDetails.java index 2417b93..3af413b 100644 --- a/Listify/app/src/main/java/com/example/listify/ItemDetails.java +++ b/Listify/app/src/main/java/com/example/listify/ItemDetails.java @@ -1,10 +1,7 @@ package com.example.listify; import android.os.Bundle; - -import com.amazonaws.services.cognitoidentityprovider.model.TooManyFailedAttemptsException; import com.bumptech.glide.Glide; -import com.example.listify.adapter.DisplayShoppingListsAdapter; import com.example.listify.model.Product; import com.example.listify.model.ShoppingList; import com.google.android.material.floatingactionbutton.FloatingActionButton; @@ -16,10 +13,9 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; - import java.util.ArrayList; -public class ItemDetails extends AppCompatActivity implements ListPickerDialogFragment.OnListPickListener { +public class ItemDetails extends AppCompatActivity implements ListPickerDialogFragment.OnListPickListener, CreateListDialogFragment.OnNewListListener { private Product curProduct; private LinearLayout linAddItem; private LinearLayout linCreateList; @@ -79,8 +75,10 @@ public class ItemDetails extends AppCompatActivity implements ListPickerDialogFr linCreateList.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Toast.makeText(ItemDetails.this, "create", Toast.LENGTH_SHORT).show(); closeFABMenu(); + + CreateListDialogFragment createListDialogFragment = new CreateListDialogFragment(); + createListDialogFragment.show(getSupportFragmentManager(), "Create New List"); } }); @@ -134,6 +132,11 @@ public class ItemDetails extends AppCompatActivity implements ListPickerDialogFr @Override public void sendListSelection(int selectedListIndex, int quantity) { - Toast.makeText(this, String.format("%d of Item added to %s", quantity, shoppingLists.get(selectedListIndex).getName()), Toast.LENGTH_SHORT).show(); + Toast.makeText(this, String.format("%d of Item added to %s", quantity, shoppingLists.get(selectedListIndex).getName()), Toast.LENGTH_LONG).show(); + } + + @Override + public void sendNewListName(String name) { + Toast.makeText(this, String.format("%s created", name), Toast.LENGTH_LONG).show(); } } \ No newline at end of file diff --git a/Listify/app/src/main/res/layout/dialog_add_to_list.xml b/Listify/app/src/main/res/layout/dialog_add_to_list.xml index 8c93694..8325780 100644 --- a/Listify/app/src/main/res/layout/dialog_add_to_list.xml +++ b/Listify/app/src/main/res/layout/dialog_add_to_list.xml @@ -3,6 +3,15 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"> + + + android:text="@string/minus"/>