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 android.view.ViewGroup
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.Observer
|
import androidx.lifecycle.Observer
|
||||||
|
import androidx.lifecycle.ViewModelProviders
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import fr.forum_thalie.tsumugi.R
|
import fr.forum_thalie.tsumugi.R
|
||||||
|
|
@ -20,21 +21,24 @@ class ProgrammeDayFragment : Fragment() {
|
||||||
private lateinit var viewAdapter: RecyclerView.Adapter<*>
|
private lateinit var viewAdapter: RecyclerView.Adapter<*>
|
||||||
private lateinit var viewManager: RecyclerView.LayoutManager
|
private lateinit var viewManager: RecyclerView.LayoutManager
|
||||||
private val programmeOfTheDay: ArrayList<Programme> = ArrayList()
|
private val programmeOfTheDay: ArrayList<Programme> = ArrayList()
|
||||||
private val day = arguments?.getString("day") ?: weekdays.first()
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View? {
|
||||||
// Inflate the layout for this fragment
|
// 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)
|
val root = inflater.inflate(R.layout.fragment_programme_day, container, false)
|
||||||
Planning.instance.programmes.forEach {
|
Planning.instance.programmes.forEach {
|
||||||
if (it.isThisDay(day = weekdays.indexOf(day)))
|
if (it.isThisDay(day = weekdays.indexOf(viewModel.day)))
|
||||||
programmeOfTheDay.add(it)
|
programmeOfTheDay.add(it)
|
||||||
}
|
}
|
||||||
viewManager = LinearLayoutManager(context)
|
viewManager = LinearLayoutManager(context)
|
||||||
viewAdapter =
|
viewAdapter =
|
||||||
ProgrammeAdapter(programmeOfTheDay, day)
|
ProgrammeAdapter(programmeOfTheDay, viewModel.day)
|
||||||
recyclerView = root.findViewById<RecyclerView>(R.id.programme_recycler).apply {
|
recyclerView = root.findViewById<RecyclerView>(R.id.programme_recycler).apply {
|
||||||
// use this setting to improve performance if you know that changes
|
// use this setting to improve performance if you know that changes
|
||||||
// in content do not change the layout size of the RecyclerView
|
// 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> {
|
Planning.instance.currentProgramme.observe(viewLifecycleOwner, Observer<String> {
|
||||||
programmeOfTheDay.clear()
|
programmeOfTheDay.clear()
|
||||||
Planning.instance.programmes.forEach {
|
Planning.instance.programmes.forEach {
|
||||||
if (it.isThisDay(day = weekdays.indexOf(day)))
|
if (it.isThisDay(day = weekdays.indexOf(viewModel.day)))
|
||||||
programmeOfTheDay.add(it)
|
programmeOfTheDay.add(it)
|
||||||
}
|
}
|
||||||
viewAdapter.notifyDataSetChanged()
|
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