Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,14 @@ sealed class WooPosSettingsDetailDestination {
}
}

sealed class LocalCatalog : WooPosSettingsDetailDestination() {
data object Overview : LocalCatalog() {
override val titleRes: Int = R.string.woopos_settings_local_catalog_category
override val parentDestination: WooPosSettingsDetailDestination? = null
override val childDestinations: List<WooPosSettingsDetailDestination> = emptyList()
}
}

sealed class Help : WooPosSettingsDetailDestination() {
data object Overview : Help() {
override val titleRes: Int = R.string.woopos_settings_help_category
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.woocommerce.android.ui.woopos.settings.categories.WooPosSettingsCateg
import com.woocommerce.android.ui.woopos.util.analytics.WooPosAnalyticsEvent
import com.woocommerce.android.ui.woopos.util.analytics.WooPosAnalyticsEvent.Event.HardwareTapped
import com.woocommerce.android.ui.woopos.util.analytics.WooPosAnalyticsEvent.Event.HelpTapped
import com.woocommerce.android.ui.woopos.util.analytics.WooPosAnalyticsEvent.Event.LocalCatalogTapped
import com.woocommerce.android.ui.woopos.util.analytics.WooPosAnalyticsEvent.Event.SettingsClosed
import com.woocommerce.android.ui.woopos.util.analytics.WooPosAnalyticsEvent.Event.SettingsOpened
import com.woocommerce.android.ui.woopos.util.analytics.WooPosAnalyticsEvent.Event.StoreDetailsTapped
Expand Down Expand Up @@ -38,6 +39,7 @@ class WooPosSettingsViewModel @Inject constructor(
private fun trackCategorySelection(category: WooPosSettingsCategory) {
val event = when (category) {
WooPosSettingsCategory.STORE -> StoreDetailsTapped
WooPosSettingsCategory.LOCAL_CATALOG -> LocalCatalogTapped
WooPosSettingsCategory.HARDWARE -> HardwareTapped
WooPosSettingsCategory.HELP -> HelpTapped
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import androidx.annotation.StringRes
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.Help
import androidx.compose.material.icons.filled.Hardware
import androidx.compose.material.icons.filled.Inventory
import androidx.compose.material.icons.filled.Store
import androidx.compose.ui.graphics.vector.ImageVector
import com.woocommerce.android.R
Expand All @@ -22,6 +23,12 @@ enum class WooPosSettingsCategory(
Icons.Default.Store,
WooPosSettingsDetailDestination.Store.Overview
),
LOCAL_CATALOG(
R.string.woopos_settings_local_catalog_category,
R.string.woopos_settings_local_catalog_category_subtitle,
Icons.Default.Inventory,
WooPosSettingsDetailDestination.LocalCatalog.Overview
),
HARDWARE(
R.string.woopos_settings_hardware_category,
R.string.woopos_settings_hardware_category_subtitle,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,28 @@
package com.woocommerce.android.ui.woopos.settings.categories

import android.content.Context
import androidx.lifecycle.ViewModel
import com.woocommerce.android.util.FeatureFlag
import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import javax.inject.Inject

@HiltViewModel
class WooPosSettingsCategoriesViewModel @Inject constructor() : ViewModel() {
private val _state = MutableStateFlow(WooPosSettingsCategoriesState())
class WooPosSettingsCategoriesViewModel @Inject constructor(
@ApplicationContext private val context: Context
) : ViewModel() {
private val _state = MutableStateFlow(createInitialState())
val state: StateFlow<WooPosSettingsCategoriesState> = _state.asStateFlow()
private fun createInitialState(): WooPosSettingsCategoriesState {
val allCategories = WooPosSettingsCategory.entries
val visibleCategories = if (FeatureFlag.WOO_POS_LOCAL_CATALOG_M1.isEnabled(context)) {
allCategories
} else {
allCategories.filter { it != WooPosSettingsCategory.LOCAL_CATALOG }
}
return WooPosSettingsCategoriesState(categories = visibleCategories)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import com.woocommerce.android.ui.woopos.settings.details.hardware.WooPosHardwar
import com.woocommerce.android.ui.woopos.settings.details.hardware.barcodescanner.WooPosSettingsHardwareBarcodeScannerScreen
import com.woocommerce.android.ui.woopos.settings.details.hardware.cardreader.WooPosSettingsHardwareCardReaderScreen
import com.woocommerce.android.ui.woopos.settings.details.help.WooPosHelpDetailScreen
import com.woocommerce.android.ui.woopos.settings.details.localcatalog.WooPosSettingsLocalCatalogScreen
import com.woocommerce.android.ui.woopos.settings.details.store.WooPosSettingsStoreScreen

@Composable
Expand Down Expand Up @@ -93,6 +94,10 @@ fun WooPosSettingsDetailPaneScreen(
WooPosSettingsStoreScreen()
}

is WooPosSettingsDetailDestination.LocalCatalog.Overview -> {
WooPosSettingsLocalCatalogScreen()
}

is WooPosSettingsDetailDestination.Help.Overview -> {
WooPosHelpDetailScreen(onShowProductInfoDialog = onShowProductInfoDialog)
}
Expand Down
Loading