@@ -32,13 +32,22 @@ val <T> T.viewErrorFlow: SharedFlow<ViewError> where T : ViewErrorAware, T : Vie
32
32
33
33
val <T > T .loadingFlow: StateFlow <Boolean > where T : LoadingAware , T : ViewModel
34
34
get() {
35
- return getLoadingMutableStateFlow()
35
+ return loadingMutableStateFlow
36
36
}
37
37
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
+ }
42
51
43
52
private fun <T > T.getErrorMutableSharedFlow (): MutableSharedFlow <ViewError > where T : ViewErrorAware , T : ViewModel {
44
53
val flow: MutableSharedFlow <ViewError >? = getTag(ERROR_FLOW_KEY )
@@ -48,10 +57,10 @@ private fun <T> T.getErrorMutableSharedFlow(): MutableSharedFlow<ViewError> wher
48
57
fun <F , T > Flow<F>.bindLoading (t : T ): Flow <F > where T : LoadingAware , T : ViewModel {
49
58
return this
50
59
.onStart {
51
- t.getLoadingMutableStateFlow() .value = true
60
+ t.loadingMutableStateFlow .value = true
52
61
}
53
62
.onCompletion {
54
- t.getLoadingMutableStateFlow() .value = false
63
+ t.loadingMutableStateFlow .value = false
55
64
}
56
65
}
57
66
0 commit comments