change database to use destructive migration and properly clear the extra data on each migration
store database extra data using the datastore-preferences library instead of SharedPreferences
move ScheduleDao access from TracksFragment to TracksViewModel and rename previous TracksViewModel to TracksListViewModel
centralize all UI State preferences in the same SharedPreferences file and inject it. It is loaded asynchronously on application startup to minimize blocking the main thread
change days cache in ScheduleDao from LiveData to a hot Flow.
SharedPreferences
TracksViewModel
toTracksListViewModel
SharedPreferences
file and inject it. It is loaded asynchronously on application startup to minimize blocking the main threadScheduleDao
fromLiveData
to a hotFlow
.