@@ -23,9 +23,9 @@ import com.pocket_plan.j7_003.data.settings.SettingId
2323import com.pocket_plan.j7_003.data.settings.SettingsManager
2424import kotlinx.android.synthetic.main.dialog_add_item.view.*
2525import kotlinx.android.synthetic.main.dialog_add_shopping_list.view.*
26+ import kotlinx.android.synthetic.main.drawer_layout.*
2627import kotlinx.android.synthetic.main.fragment_multi_shopping.*
2728import kotlinx.android.synthetic.main.fragment_multi_shopping.view.*
28- import kotlinx.android.synthetic.main.drawer_layout.*
2929import kotlinx.android.synthetic.main.title_dialog.view.*
3030import java.util.*
3131import kotlin.collections.ArrayDeque
@@ -51,7 +51,6 @@ class MultiShoppingFr : Fragment() {
5151 var deletedItems = ArrayList <ArrayDeque <ShoppingItem ?>>()
5252 var activeDeletedItems = ArrayDeque <ShoppingItem ?>()
5353
54- lateinit var shoppingListWrapper: ShoppingListWrapper
5554 lateinit var shoppingFragments: ArrayList <ShoppingFr >
5655 private var currentpos = 0
5756 private lateinit var activeShoppingFr: ShoppingFr
@@ -77,7 +76,6 @@ class MultiShoppingFr : Fragment() {
7776 savedInstanceState : Bundle ?
7877 ): View ? {
7978 myActivity = activity as MainActivity
80- shoppingListWrapper = MainActivity .shoppingListWrapper
8179
8280 // reset parameters when fragment is opened again
8381 shoppingFragments = ArrayList ()
@@ -137,20 +135,20 @@ class MultiShoppingFr : Fragment() {
137135 }
138136
139137 private fun updateTabs () {
140- if (shoppingListWrapper.size == 1 ) {
138+ if (MainActivity . shoppingListWrapper.size == 1 ) {
141139 tabLayout.visibility = View .GONE
142140 } else {
143141 tabLayout.visibility = View .VISIBLE
144142 }
145143 tabLayout.removeAllTabs()
146- shoppingListWrapper.forEach {
144+ MainActivity . shoppingListWrapper.forEach {
147145 tabLayout.addTab(tabLayout.newTab().setText(it.first))
148146 }
149147 }
150148 // initialize all necessary fragments
151149 private fun initializeShoppingFragments () {
152150 val isEmpty = deletedItems.isEmpty()
153- shoppingListWrapper.forEach {
151+ MainActivity . shoppingListWrapper.forEach {
154152 val newFr = createShoppingFrInstance(listName = it.first, shoppingList = it.second)
155153 shoppingFragments.add(newFr)
156154
@@ -253,20 +251,20 @@ class MultiShoppingFr : Fragment() {
253251 myAlertDialog?.show()
254252
255253 // show current name
256- val oldName = shoppingListWrapper[currentpos].first
254+ val oldName = MainActivity . shoppingListWrapper[currentpos].first
257255 myDialogView.etAddShoppingList.setText(oldName)
258256
259257 myDialogView.btnAddShoppingList.setOnClickListener {
260258
261259 val newName = myDialogView.etAddShoppingList.text.toString()
262- val taken = shoppingListWrapper.contains(newName)
260+ val taken = MainActivity . shoppingListWrapper.contains(newName)
263261 if (newName.trim() == " " || taken) {
264262 val animationShake =
265263 AnimationUtils .loadAnimation(myActivity, R .anim.shake)
266264 myDialogView.etAddShoppingList.startAnimation(animationShake)
267265 return @setOnClickListener
268266 }
269- shoppingListWrapper.rename(oldName, newName)
267+ MainActivity . shoppingListWrapper.rename(oldName, newName)
270268 activeShoppingFr.shoppingListName = newName
271269 tabLayout.getTabAt(currentpos)?.text = newName
272270 myAlertDialog?.dismiss()
@@ -297,15 +295,15 @@ class MultiShoppingFr : Fragment() {
297295
298296 myDialogView.btnAddShoppingList.setOnClickListener {
299297 val newName = myDialogView.etAddShoppingList.text.toString()
300- val addResult = shoppingListWrapper.add(newName)
298+ val addResult = MainActivity . shoppingListWrapper.add(newName)
301299 if (newName.trim() == " " || ! addResult) {
302300 val animationShake =
303301 AnimationUtils .loadAnimation(myActivity, R .anim.shake)
304302 myDialogView!! .etAddShoppingList.startAnimation(animationShake)
305303 return @setOnClickListener
306304 }
307305
308- val newFr = createShoppingFrInstance(newName, shoppingListWrapper.getListByName(newName)!! )
306+ val newFr = createShoppingFrInstance(newName, MainActivity . shoppingListWrapper.getListByName(newName)!! )
309307 shoppingFragments.add(newFr)
310308
311309 deletedItems.add(ArrayDeque ())
@@ -314,7 +312,7 @@ class MultiShoppingFr : Fragment() {
314312 tabLayout.visibility = View .VISIBLE
315313
316314 shoppingPager.adapter = ScreenSlidePagerAdapter (myActivity)
317- shoppingPager.currentItem = shoppingListWrapper.size - 1
315+ shoppingPager.currentItem = MainActivity . shoppingListWrapper.size - 1
318316 myAlertDialog?.dismiss()
319317 }
320318
@@ -333,12 +331,12 @@ class MultiShoppingFr : Fragment() {
333331 R .id.item_shopping_delete_list -> {
334332 val titleId = R .string.shoppingDialogDeleteTitle
335333 val action: () -> Unit = {
336- shoppingListWrapper.remove(activeShoppingFr.shoppingListName)
334+ MainActivity . shoppingListWrapper.remove(activeShoppingFr.shoppingListName)
337335 shoppingFragments.remove(activeShoppingFr)
338336 shoppingPager.adapter = ScreenSlidePagerAdapter (myActivity)
339337 // This automatically selects the tab left of the deleted tab
340338 tabLayout.removeTabAt(currentpos)
341- if (shoppingListWrapper.size == 1 ) {
339+ if (MainActivity . shoppingListWrapper.size == 1 ) {
342340 tabLayout.visibility = View .GONE
343341 }
344342 }
@@ -559,8 +557,11 @@ class MultiShoppingFr : Fragment() {
559557 spCategory.tag = categoryToSet
560558 spCategory.setSelection(categoryToSet)
561559
562- spItemUnit.tag = unitToSet
563- spItemUnit.setSelection(unitToSet)
560+ // select unit depending on text change (user or regular template)
561+ if (! unitChanged){
562+ spItemUnit.tag = unitToSet
563+ spItemUnit.setSelection(unitToSet)
564+ }
564565
565566 }
566567
@@ -688,7 +689,7 @@ class MultiShoppingFr : Fragment() {
688689 updateShoppingMenu()
689690 } else {
690691 // handling adding in home
691- shoppingListWrapper[0 ].second.add(item)
692+ MainActivity . shoppingListWrapper[0 ].second.add(item)
692693 Toast .makeText(
693694 myActivity,
694695 myActivity.getString(R .string.shoppingNotificationItemAdded),
@@ -769,6 +770,7 @@ class MultiShoppingFr : Fragment() {
769770 .indexOf(item.suggestedUnit)
770771
771772 addItemDialogView!! .spItemUnit.tag = unitIndex
773+ // Select correct unit when opening dialog for edit
772774 addItemDialogView!! .spItemUnit.setSelection(unitIndex)
773775
774776 unitChanged = false
@@ -852,7 +854,7 @@ class MultiShoppingFr : Fragment() {
852854 }
853855
854856 private fun updateDeleteListIcon () {
855- myMenu.findItem(R .id.item_shopping_delete_list)?.isVisible = shoppingListWrapper.size > 1
857+ myMenu.findItem(R .id.item_shopping_delete_list)?.isVisible = MainActivity . shoppingListWrapper.size > 1
856858 }
857859
858860 private fun updateRemoveChecked () {
@@ -877,7 +879,7 @@ class MultiShoppingFr : Fragment() {
877879
878880
879881 private inner class ScreenSlidePagerAdapter (fa : FragmentActivity ) : FragmentStateAdapter(fa) {
880- override fun getItemCount (): Int = shoppingListWrapper.size
882+ override fun getItemCount (): Int = MainActivity . shoppingListWrapper.size
881883
882884 override fun createFragment (position : Int ): Fragment {
883885 return this @MultiShoppingFr.shoppingFragments[position]
0 commit comments