@@ -19,13 +19,13 @@ package com.google.samples.apps.sunflower.viewmodels
1919import androidx.lifecycle.LiveData
2020import androidx.lifecycle.Transformations
2121import androidx.lifecycle.ViewModel
22+ import androidx.lifecycle.viewModelScope
2223import com.google.samples.apps.sunflower.PlantDetailFragment
2324import com.google.samples.apps.sunflower.data.GardenPlantingRepository
2425import com.google.samples.apps.sunflower.data.Plant
2526import com.google.samples.apps.sunflower.data.PlantRepository
26- import kotlinx.coroutines.CoroutineScope
27- import kotlinx.coroutines.Dispatchers.Main
28- import kotlinx.coroutines.Job
27+ import kotlinx.coroutines.ExperimentalCoroutinesApi
28+ import kotlinx.coroutines.cancel
2929import kotlinx.coroutines.launch
3030
3131/* *
@@ -40,27 +40,13 @@ class PlantDetailViewModel(
4040 val isPlanted: LiveData <Boolean >
4141 val plant: LiveData <Plant >
4242
43- /* *
44- * This is the job for all coroutines started by this ViewModel.
45- *
46- * Cancelling this job will cancel all coroutines started by this ViewModel.
47- */
48- private val viewModelJob = Job ()
49-
50- /* *
51- * This is the scope for all coroutines launched by [PlantDetailViewModel].
52- *
53- * Since we pass [viewModelJob], you can cancel all coroutines launched by [viewModelScope] by calling
54- * viewModelJob.cancel(). This is called in [onCleared].
55- */
56- private val viewModelScope = CoroutineScope (Main + viewModelJob)
57-
5843 /* *
5944 * Cancel all coroutines when the ViewModel is cleared.
6045 */
46+ @ExperimentalCoroutinesApi
6147 override fun onCleared () {
6248 super .onCleared()
63- viewModelJob .cancel()
49+ viewModelScope .cancel()
6450 }
6551
6652 init {
0 commit comments