@@ -32,13 +32,22 @@ val <T> T.viewErrorFlow: SharedFlow<ViewError> where T : ViewErrorAware, T : Vie
3232
3333val <T > T .loadingFlow: StateFlow <Boolean > where T : LoadingAware , T : ViewModel
3434 get() {
35- return getLoadingMutableStateFlow()
35+ return loadingMutableStateFlow
3636 }
3737
38- private fun <T > T.getLoadingMutableStateFlow (): MutableStateFlow <Boolean > where T : LoadingAware , T : ViewModel {
39- val flow: MutableStateFlow <Boolean >? = getTag(LOADING_FLOW_KEY )
40- return flow ? : setTagIfAbsent(LOADING_FLOW_KEY , MutableStateFlow (false ))
41- }
38+ var <T > T .isLoading: Boolean where T : LoadingAware , T : ViewModel
39+ get() {
40+ return loadingMutableStateFlow.value
41+ }
42+ set(value) {
43+ loadingMutableStateFlow.tryEmit(value)
44+ }
45+
46+ private val <T > T .loadingMutableStateFlow: MutableStateFlow <Boolean > where T : LoadingAware , T : ViewModel
47+ get() {
48+ val flow: MutableStateFlow <Boolean >? = getTag(LOADING_FLOW_KEY )
49+ return flow ? : setTagIfAbsent(LOADING_FLOW_KEY , MutableStateFlow (false ))
50+ }
4251
4352private fun <T > T.getErrorMutableSharedFlow (): MutableSharedFlow <ViewError > where T : ViewErrorAware , T : ViewModel {
4453 val flow: MutableSharedFlow <ViewError >? = getTag(ERROR_FLOW_KEY )
@@ -48,10 +57,10 @@ private fun <T> T.getErrorMutableSharedFlow(): MutableSharedFlow<ViewError> wher
4857fun <F , T > Flow<F>.bindLoading (t : T ): Flow <F > where T : LoadingAware , T : ViewModel {
4958 return this
5059 .onStart {
51- t.getLoadingMutableStateFlow() .value = true
60+ t.loadingMutableStateFlow .value = true
5261 }
5362 .onCompletion {
54- t.getLoadingMutableStateFlow() .value = false
63+ t.loadingMutableStateFlow .value = false
5564 }
5665}
5766
0 commit comments