Skip to content

Instantly share code, notes, and snippets.

View hafizrahman's full-sized avatar
🦉

Hafiz Rahman hafizrahman

🦉
View GitHub Profile
@hafizrahman
hafizrahman / MainViewModel.kt
Created April 20, 2020 08:03
Methods inside ViewModel to grab two LiveData from repository and put them into one MediatorLiveData
fun getSubjects(): LiveData<List<Subject>>? {
return sroRepository.getSubjects()
}
fun getReminders(): LiveData<List<Reminder>>? {
return sroRepository.getReminders()
}
fun getAllData(): CombinedSubjectReminders? {
var ldSubjects = getSubjects()
@hafizrahman
hafizrahman / SubjectRecyclerViewAdapter.kt
Created April 20, 2020 08:04
Put in the two List<> as constructor parameters in RecyclerViewAdapter
class SubjectRecyclerViewAdapter(
val subjects: List<Subject>,
val reminders: List<Reminder>,
val listener: OnListFragmentInteractionListener?
) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
@hafizrahman
hafizrahman / SubjectFragment.kt
Created April 20, 2020 08:06
Observe the MediatorLiveData given by ViewModel, and update RecyclerViewAdapter accordingly.
mainViewModel = ViewModelProvider(activity!!).get(MainViewModel::class.java)
// New observer
mainViewModel.getAllData()?.observe(viewLifecycleOwner,
Observer { subjectsAndRemindersPair ->
view.sro_subject_list.adapter = SubjectRecyclerViewAdapter(
subjectsAndRemindersPair.first,
subjectsAndRemindersPair.second,
listener)
})