put day for ProgrammeDayFragment in a ViewModel - should fix crash

remotes/origin/devel
yattoz 2019-12-20 17:48:54 +01:00
parent b063d96977
commit 81f53966f0
2 changed files with 16 additions and 4 deletions

View File

@ -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<Programme> = 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<RecyclerView>(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<String> {
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()

View File

@ -0,0 +1,8 @@
package fr.forum_thalie.tsumugi.ui.programme
import androidx.lifecycle.ViewModel
class ProgrammeDayViewModel: ViewModel() {
var day: String = ""
}