From 81f53966f0f0409b8f75a5beebb66dd8835fed31 Mon Sep 17 00:00:00 2001 From: yattoz <12408848+yattoz@users.noreply.github.com> Date: Fri, 20 Dec 2019 17:48:54 +0100 Subject: [PATCH] put day for ProgrammeDayFragment in a ViewModel - should fix crash --- .../tsumugi/ui/programme/ProgrammeDayFragment.kt | 12 ++++++++---- .../tsumugi/ui/programme/ProgrammeDayViewModel.kt | 8 ++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayViewModel.kt diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayFragment.kt b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayFragment.kt index 2bab5ff..98d12dd 100644 --- a/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayFragment.kt +++ b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayFragment.kt @@ -6,6 +6,7 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import fr.forum_thalie.tsumugi.R @@ -20,21 +21,24 @@ class ProgrammeDayFragment : Fragment() { private lateinit var viewAdapter: RecyclerView.Adapter<*> private lateinit var viewManager: RecyclerView.LayoutManager private val programmeOfTheDay: ArrayList = ArrayList() - private val day = arguments?.getString("day") ?: weekdays.first() + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment + val viewModel: ProgrammeDayViewModel = ViewModelProviders.of(this).get(ProgrammeDayViewModel::class.java) + viewModel.day = arguments?.getString("day") ?: "" + val root = inflater.inflate(R.layout.fragment_programme_day, container, false) Planning.instance.programmes.forEach { - if (it.isThisDay(day = weekdays.indexOf(day))) + if (it.isThisDay(day = weekdays.indexOf(viewModel.day))) programmeOfTheDay.add(it) } viewManager = LinearLayoutManager(context) viewAdapter = - ProgrammeAdapter(programmeOfTheDay, day) + ProgrammeAdapter(programmeOfTheDay, viewModel.day) recyclerView = root.findViewById(R.id.programme_recycler).apply { // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView @@ -45,7 +49,7 @@ class ProgrammeDayFragment : Fragment() { Planning.instance.currentProgramme.observe(viewLifecycleOwner, Observer { programmeOfTheDay.clear() Planning.instance.programmes.forEach { - if (it.isThisDay(day = weekdays.indexOf(day))) + if (it.isThisDay(day = weekdays.indexOf(viewModel.day))) programmeOfTheDay.add(it) } viewAdapter.notifyDataSetChanged() diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayViewModel.kt b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayViewModel.kt new file mode 100644 index 0000000..d691b01 --- /dev/null +++ b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayViewModel.kt @@ -0,0 +1,8 @@ +package fr.forum_thalie.tsumugi.ui.programme + +import androidx.lifecycle.ViewModel + +class ProgrammeDayViewModel: ViewModel() { + var day: String = "" + +} \ No newline at end of file