initialization fixes

This commit is contained in:
InsanusMokrassar 2023-11-30 01:22:43 +06:00
parent 6f174cae1d
commit 871b27f37d
2 changed files with 45 additions and 47 deletions

View File

@ -10,9 +10,9 @@ import kotlinx.coroutines.Dispatchers
class FlowState<T>(
initial: T,
internalScope: CoroutineScope = CoroutineScope(Dispatchers.Main)
internalScope: CoroutineScope = CoroutineScope(Dispatchers.Default)
) : MutableState<T>,
SpecialMutableStateFlow.Default<T>(initial, internalScope) {
SpecialMutableStateFlow<T>(initial, internalScope) {
private var internalValue: T = initial
override var value: T
get() = internalValue

View File

@ -9,11 +9,10 @@ import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
interface SpecialMutableStateFlow<T> : StateFlow<T>, FlowCollector<T>, MutableSharedFlow<T> {
open class Default<T>(
open class SpecialMutableStateFlow<T>(
initialValue: T,
internalScope: CoroutineScope = CoroutineScope(Dispatchers.Default)
) : SpecialMutableStateFlow<T> {
) : StateFlow<T>, FlowCollector<T>, MutableSharedFlow<T> {
protected val internalSharedFlow: MutableSharedFlow<T> = MutableSharedFlow(
replay = 0,
extraBufferCapacity = 2,
@ -55,5 +54,4 @@ interface SpecialMutableStateFlow<T> : StateFlow<T>, FlowCollector<T>, MutableSh
}
override suspend fun collect(collector: FlowCollector<T>) = publicSharedFlow.collect(collector)
}
}