put day for ProgrammeDayFragment in a ViewModel - should fix crash
parent
b063d96977
commit
81f53966f0
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
package fr.forum_thalie.tsumugi.ui.programme
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
|
||||
class ProgrammeDayViewModel: ViewModel() {
|
||||
var day: String = ""
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue