11package com.nlinterface.activities
22
3- import android.app.AlertDialog
4- import android.content.res.Resources
53import android.os.Bundle
64import android.util.Log
75import android.view.View
86import android.view.WindowManager
97import android.widget.Button
108import android.widget.EditText
119import android.widget.ImageButton
10+ import androidx.appcompat.app.AlertDialog
1211import androidx.appcompat.app.AppCompatActivity
1312import androidx.constraintlayout.widget.ConstraintLayout
1413import androidx.lifecycle.ViewModelProvider
14+ import androidx.recyclerview.widget.ItemTouchHelper
1515import androidx.recyclerview.widget.LinearLayoutManager
1616import androidx.recyclerview.widget.RecyclerView
17+ import com.google.android.material.dialog.MaterialAlertDialogBuilder
18+ import com.google.android.material.dialog.MaterialDialogs
1719import com.nlinterface.R
1820import com.nlinterface.adapters.GroceryListAdapter
1921import com.nlinterface.databinding.ActivityGroceryListBinding
2022import com.nlinterface.dataclasses.GroceryItem
2123import com.nlinterface.interfaces.GroceryListCallback
2224import com.nlinterface.utility.GlobalParameters
23- import com.nlinterface.utility.SpeechToTextUtility
24- import com.nlinterface.utility.setViewRelativeHeight
2525import com.nlinterface.utility.setViewRelativeSize
2626import com.nlinterface.viewmodels.GroceryListViewModel
2727
@@ -73,6 +73,48 @@ class GroceryListActivity : AppCompatActivity(), GroceryListCallback {
7373 voiceActivationButton.setOnClickListener {
7474 onAddVoiceActivationButtonClick()
7575 }
76+
77+ ItemTouchHelper (object : ItemTouchHelper .SimpleCallback (
78+ 0 , ItemTouchHelper .LEFT
79+ ) {
80+ override fun onMove (
81+ recyclerView : RecyclerView ,
82+ viewHolder : RecyclerView .ViewHolder ,
83+ target : RecyclerView .ViewHolder
84+ ): Boolean {return false }
85+
86+ override fun onSwiped (viewHolder : RecyclerView .ViewHolder , direction : Int ) {
87+ val groceryItem: GroceryItem =
88+ groceryItemList[viewHolder.adapterPosition]
89+
90+ val index = viewHolder.adapterPosition
91+
92+ viewModel.deleteGroceryItem(groceryItem)
93+
94+ adapter.notifyItemRemoved(index)
95+ }
96+ }).attachToRecyclerView(rvGroceryList)
97+
98+ ItemTouchHelper (object : ItemTouchHelper .SimpleCallback (
99+ 0 , ItemTouchHelper .RIGHT
100+ ) {
101+ override fun onMove (
102+ recyclerView : RecyclerView ,
103+ viewHolder : RecyclerView .ViewHolder ,
104+ target : RecyclerView .ViewHolder
105+ ): Boolean {return false }
106+
107+ override fun onSwiped (viewHolder : RecyclerView .ViewHolder , direction : Int ) {
108+ val groceryItem: GroceryItem =
109+ groceryItemList[viewHolder.adapterPosition]
110+
111+ val index = viewHolder.adapterPosition
112+
113+ viewModel.deleteGroceryItem(groceryItem)
114+
115+ adapter.notifyItemRemoved(index)
116+ }
117+ }).attachToRecyclerView(rvGroceryList)
76118 }
77119
78120 override fun onDestroy () {
@@ -86,14 +128,16 @@ class GroceryListActivity : AppCompatActivity(), GroceryListCallback {
86128
87129 private fun onAddItemButtonClick () {
88130
89- val alertDialog: AlertDialog ? = this ?.let {
90- val builder = AlertDialog .Builder (it)
91- val view = layoutInflater.inflate(R .layout.add_item_dialog, null )
131+ val alertDialog: AlertDialog = this .let {
132+ val builder = MaterialAlertDialogBuilder (it, R .style.ThemeOverlay_MaterialComponents_MaterialAlertDialog_Background )
133+
134+ val view = layoutInflater.inflate(R .layout.edit_text_dialog, null )
135+
92136 builder.setView(view)
93137 builder.apply {
94138 setPositiveButton(R .string.add) { _, _ ->
95139
96- val addItemEt = view.findViewById<EditText >(R .id.add_item_et )
140+ val addItemEt = view.findViewById<EditText >(R .id.et )
97141 val newItemName = addItemEt.text.toString()
98142
99143 viewModel.addGroceryItem(newItemName)
@@ -103,17 +147,20 @@ class GroceryListActivity : AppCompatActivity(), GroceryListCallback {
103147 setNegativeButton(R .string.cancel) { _, _ -> }
104148 }
105149 // Set other dialog properties
106- builder.setMessage (R .string.add_new_grocery_item)
150+ builder.setTitle (R .string.add_new_grocery_item)
107151 // Create the AlertDialog
108152 builder.create()
109153 }
110- alertDialog?.show()
154+ alertDialog.window?.setSoftInputMode(WindowManager .LayoutParams .SOFT_INPUT_STATE_VISIBLE );
155+ alertDialog.show()
111156 }
112157
158+
159+
113160 override fun onLongClick (item : GroceryItem ) {
114161 val index = groceryItemList.indexOf(item)
115- viewModel.deleteGroceryItem (item)
116- adapter?.notifyItemRemoved (index)
162+ viewModel.placeGroceryItemInCart (item)
163+ adapter.notifyItemChanged (index)
117164 }
118165
119166}
0 commit comments