diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountViewModel.kt index c21e679d2..91d6dd0ea 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountViewModel.kt @@ -21,9 +21,13 @@ import com.keylesspalace.tusky.util.Success import com.keylesspalace.tusky.util.getDomain import javax.inject.Inject import kotlinx.coroutines.Job +import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.delay +import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch @@ -42,8 +46,8 @@ class AccountViewModel @Inject constructor( private val _noteSaved = MutableStateFlow(false) val noteSaved: StateFlow = _noteSaved.asStateFlow() - private val _isRefreshing = MutableStateFlow(false) - val isRefreshing: StateFlow = _isRefreshing.asStateFlow() + private val _isRefreshing = MutableSharedFlow(1, onBufferOverflow = BufferOverflow.DROP_OLDEST) + val isRefreshing: SharedFlow = _isRefreshing.asSharedFlow() private var isDataLoading = false @@ -84,13 +88,13 @@ class AccountViewModel @Inject constructor( _accountData.value = Success(account) isDataLoading = false - _isRefreshing.value = false + _isRefreshing.emit(false) }, { t -> Log.w(TAG, "failed obtaining account", t) _accountData.value = Error(cause = t) isDataLoading = false - _isRefreshing.value = false + _isRefreshing.emit(false) } ) }