In the previous video, we added a taskTiming MutableLiveData object (exposed via a public LiveData object called timing).
That code should have gone before the init block. It doesn't cause a problem yet, but it will do later.
Lines 45 to 47 (in the video) need to be moved to before the init block
private val databaseCursor = MutableLiveData<Cursor>() val cursor: LiveData<Cursor> get() = databaseCursor private val taskTiming = MutableLiveData<String>() val timing: LiveData<String> get() = taskTiming init { Log.d(TAG, "TaskTimerViewModel: created") getApplication<Application>().contentResolver.registerContentObserver(TasksContract.CONTENT_URI, true, contentObserver) loadTasks() }
In the code block above, lines 5 to 7 were after the init block. They need to be moved to before it.