Better ViewState

This commit is contained in:
Benoit Marty 2021-11-22 17:18:11 +01:00
parent aee34ad552
commit e546587efb
3 changed files with 11 additions and 10 deletions

View file

@ -23,7 +23,6 @@ import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.core.view.iterator
import androidx.fragment.app.Fragment
import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.fragmentViewModel

View file

@ -100,8 +100,6 @@ class HomeDetailViewModel @AssistedInject constructor(
}
}
private var forceDialPad = false
private fun observeDataStore() {
vectorDataStore.pushCounterFlow.setOnEach { nbOfPush ->
copy(
@ -109,10 +107,11 @@ class HomeDetailViewModel @AssistedInject constructor(
)
}
vectorDataStore.forceDialPadDisplayFlow.onEach { force ->
forceDialPad = force
updateShowDialPadTab()
}.launchIn(viewModelScope)
vectorDataStore.forceDialPadDisplayFlow.setOnEach { force ->
copy(
forceDialPadTab = force
)
}
}
override fun handle(action: HomeDetailAction) {
@ -158,7 +157,7 @@ class HomeDetailViewModel @AssistedInject constructor(
private fun updateShowDialPadTab() {
setState {
copy(showDialPadTab = forceDialPad || callManager.supportsPSTNProtocol)
copy(pstnSupportFlag = callManager.supportsPSTNProtocol)
}
}

View file

@ -42,8 +42,11 @@ data class HomeDetailViewState(
val syncState: SyncState = SyncState.Idle,
val incrementalSyncStatus: SyncStatusService.Status.IncrementalSyncStatus = SyncStatusService.Status.IncrementalSyncIdle,
val pushCounter: Int = 0,
val showDialPadTab: Boolean = false
) : MavericksState
val pstnSupportFlag: Boolean = false,
val forceDialPadTab: Boolean = false
) : MavericksState {
val showDialPadTab = forceDialPadTab || pstnSupportFlag
}
sealed class HomeTab(@StringRes val titleRes: Int) {
data class RoomList(val displayMode: RoomListDisplayMode) : HomeTab(displayMode.titleRes)