small refactor in SpecialMutableStateFlow

This commit is contained in:
InsanusMokrassar 2023-12-04 15:44:06 +06:00
parent 43e782ab6f
commit f6d5035c1a
1 changed files with 8 additions and 9 deletions

View File

@ -34,12 +34,19 @@ open class SpecialMutableStateFlow<T>(
) )
protected var _value: T = initialValue protected var _value: T = initialValue
@OptIn(InternalCoroutinesApi::class)
override var value: T override var value: T
get() = _value get() = _value
set(value) { set(value) {
doOnChangeAction(value) doOnChangeAction(value)
} }
protected val job = internalSharedFlow.subscribe(internalScope) {
doOnChangeAction(it)
}
override val replayCache: List<T>
get() = publicSharedFlow.replayCache
override val subscriptionCount: StateFlow<Int>
get() = publicSharedFlow.subscriptionCount
@OptIn(InternalCoroutinesApi::class) @OptIn(InternalCoroutinesApi::class)
override fun compareAndSet(expect: T, update: T): Boolean { override fun compareAndSet(expect: T, update: T): Boolean {
@ -63,14 +70,6 @@ open class SpecialMutableStateFlow<T>(
} }
} }
} }
protected val job = internalSharedFlow.subscribe(internalScope) {
doOnChangeAction(it)
}
override val replayCache: List<T>
get() = publicSharedFlow.replayCache
override val subscriptionCount: StateFlow<Int>
get() = publicSharedFlow.subscriptionCount
@ExperimentalCoroutinesApi @ExperimentalCoroutinesApi
override fun resetReplayCache() = publicSharedFlow.resetReplayCache() override fun resetReplayCache() = publicSharedFlow.resetReplayCache()