Better ViewState
This commit is contained in:
parent
aee34ad552
commit
e546587efb
@ -23,7 +23,6 @@ import android.view.MenuItem
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.core.view.iterator
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.airbnb.mvrx.activityViewModel
|
import com.airbnb.mvrx.activityViewModel
|
||||||
import com.airbnb.mvrx.fragmentViewModel
|
import com.airbnb.mvrx.fragmentViewModel
|
||||||
|
@ -100,8 +100,6 @@ class HomeDetailViewModel @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private var forceDialPad = false
|
|
||||||
|
|
||||||
private fun observeDataStore() {
|
private fun observeDataStore() {
|
||||||
vectorDataStore.pushCounterFlow.setOnEach { nbOfPush ->
|
vectorDataStore.pushCounterFlow.setOnEach { nbOfPush ->
|
||||||
copy(
|
copy(
|
||||||
@ -109,10 +107,11 @@ class HomeDetailViewModel @AssistedInject constructor(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
vectorDataStore.forceDialPadDisplayFlow.onEach { force ->
|
vectorDataStore.forceDialPadDisplayFlow.setOnEach { force ->
|
||||||
forceDialPad = force
|
copy(
|
||||||
updateShowDialPadTab()
|
forceDialPadTab = force
|
||||||
}.launchIn(viewModelScope)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun handle(action: HomeDetailAction) {
|
override fun handle(action: HomeDetailAction) {
|
||||||
@ -158,7 +157,7 @@ class HomeDetailViewModel @AssistedInject constructor(
|
|||||||
|
|
||||||
private fun updateShowDialPadTab() {
|
private fun updateShowDialPadTab() {
|
||||||
setState {
|
setState {
|
||||||
copy(showDialPadTab = forceDialPad || callManager.supportsPSTNProtocol)
|
copy(pstnSupportFlag = callManager.supportsPSTNProtocol)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,8 +42,11 @@ data class HomeDetailViewState(
|
|||||||
val syncState: SyncState = SyncState.Idle,
|
val syncState: SyncState = SyncState.Idle,
|
||||||
val incrementalSyncStatus: SyncStatusService.Status.IncrementalSyncStatus = SyncStatusService.Status.IncrementalSyncIdle,
|
val incrementalSyncStatus: SyncStatusService.Status.IncrementalSyncStatus = SyncStatusService.Status.IncrementalSyncIdle,
|
||||||
val pushCounter: Int = 0,
|
val pushCounter: Int = 0,
|
||||||
val showDialPadTab: Boolean = false
|
val pstnSupportFlag: Boolean = false,
|
||||||
) : MavericksState
|
val forceDialPadTab: Boolean = false
|
||||||
|
) : MavericksState {
|
||||||
|
val showDialPadTab = forceDialPadTab || pstnSupportFlag
|
||||||
|
}
|
||||||
|
|
||||||
sealed class HomeTab(@StringRes val titleRes: Int) {
|
sealed class HomeTab(@StringRes val titleRes: Int) {
|
||||||
data class RoomList(val displayMode: RoomListDisplayMode) : HomeTab(displayMode.titleRes)
|
data class RoomList(val displayMode: RoomListDisplayMode) : HomeTab(displayMode.titleRes)
|
||||||
|
Loading…
Reference in New Issue
Block a user