@@ -6,12 +6,9 @@ import android.view.View
66import android.view.ViewGroup
77import android.widget.TextView
88import androidx.fragment.app.viewModels
9- import androidx.lifecycle.Lifecycle
10- import androidx.lifecycle.lifecycleScope
11- import androidx.lifecycle.repeatOnLifecycle
129import androidx.recyclerview.widget.LinearLayoutManager
1310import dagger.hilt.android.AndroidEntryPoint
14- import kotlinx.coroutines.launch
11+ import org.ole.planet.myplanet.utils.collectWhenStarted
1512import org.ole.planet.myplanet.MainApplication
1613import org.ole.planet.myplanet.R
1714import org.ole.planet.myplanet.base.BaseContainerFragment
@@ -48,21 +45,17 @@ class CourseDetailFragment : BaseContainerFragment(), OnRatingChangeListener {
4845 viewModel.loadCourseDetail(it)
4946 }
5047
51- viewLifecycleOwner.lifecycleScope.launch {
52- viewLifecycleOwner.repeatOnLifecycle(Lifecycle .State .STARTED ) {
53- viewModel.uiState.collect { state ->
54- when (state) {
55- is CourseDetailUiState .Loading -> {
56- // Show loading indicator if needed
57- }
58- is CourseDetailUiState .Success -> {
59- bindCourseData(state)
60- }
61- is CourseDetailUiState .Error -> {
62- context?.let { ctx ->
63- android.widget.Toast .makeText(ctx, state.message, android.widget.Toast .LENGTH_LONG ).show()
64- }
65- }
48+ collectWhenStarted(viewModel.uiState) { state ->
49+ when (state) {
50+ is CourseDetailUiState .Loading -> {
51+ // Show loading indicator if needed
52+ }
53+ is CourseDetailUiState .Success -> {
54+ bindCourseData(state)
55+ }
56+ is CourseDetailUiState .Error -> {
57+ context?.let { ctx ->
58+ android.widget.Toast .makeText(ctx, state.message, android.widget.Toast .LENGTH_LONG ).show()
6659 }
6760 }
6861 }
0 commit comments