Skip to content

Commit c154f17

Browse files
committed
Improve state model
1 parent e00de92 commit c154f17

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/woopos/settings/details/localcatalog/WooPosSettingsLocalCatalogState.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ package com.woocommerce.android.ui.woopos.settings.details.localcatalog
22

33
data class WooPosSettingsLocalCatalogState(
44
val catalogStatus: CatalogStatus = CatalogStatus.Loading,
5-
val allowCellularDataUpdate: Boolean = false,
6-
val hasCellularCapability: Boolean = false,
5+
val cellularCapability: CellularCapability = CellularCapability.None,
76
) {
87
sealed class CatalogStatus {
98
data class Available(
@@ -16,4 +15,9 @@ data class WooPosSettingsLocalCatalogState(
1615
object Loading : CatalogStatus()
1716
object RefreshingCatalog : CatalogStatus()
1817
}
18+
19+
sealed class CellularCapability {
20+
object None : CellularCapability()
21+
data class Available(val allowCellularDataUpdate: Boolean) : CellularCapability()
22+
}
1923
}

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/woopos/settings/details/localcatalog/WooPosSettingsLocalCatalogViewModel.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,8 @@ class WooPosSettingsLocalCatalogViewModel @Inject constructor(
4848
}
4949

5050
private fun checkCellularCapability() {
51-
val hasCellular = cellularCapabilityDetector.hasCellularCapability()
52-
_state.update { it.copy(hasCellularCapability = hasCellular) }
53-
54-
if (!hasCellular) {
51+
if (!cellularCapabilityDetector.hasCellularCapability()) {
52+
_state.update { it.copy(cellularCapability = WooPosSettingsLocalCatalogState.CellularCapability.None) }
5553
viewModelScope.launch {
5654
preferencesRepository.setAllowCellularDataUpdate(false)
5755
}
@@ -105,8 +103,18 @@ class WooPosSettingsLocalCatalogViewModel @Inject constructor(
105103
private fun listenToCellularDataUpdateValue() {
106104
viewModelScope.launch {
107105
preferencesRepository.allowCellularDataUpdate.collect { allowCellularDataUpdate ->
108-
_state.update {
109-
it.copy(allowCellularDataUpdate = allowCellularDataUpdate)
106+
_state.update { currentState ->
107+
if (cellularCapabilityDetector.hasCellularCapability()) {
108+
currentState.copy(
109+
cellularCapability = WooPosSettingsLocalCatalogState.CellularCapability.Available(
110+
allowCellularDataUpdate = allowCellularDataUpdate
111+
)
112+
)
113+
} else {
114+
currentState.copy(
115+
cellularCapability = WooPosSettingsLocalCatalogState.CellularCapability.None
116+
)
117+
}
110118
}
111119
}
112120
}

0 commit comments

Comments
 (0)