diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt index 21dcd6c657..e3195c7e34 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt @@ -1,5 +1,6 @@ package com.tangem.tap.common.analytics.events +import com.tangem.domain.apptheme.model.AppThemeMode import com.tangem.tap.features.details.redux.SecurityOption sealed class AnalyticsParam { @@ -139,6 +140,22 @@ sealed class AnalyticsParam { object SeedImport : WalletCreationType(value = "Seed Import") } + sealed class AppTheme(val value: String) { + object System : AppTheme("System") + object Dark : AppTheme("Dark") + object Light : AppTheme("Light") + + companion object { + fun fromAppThemeMode(mode: AppThemeMode): AppTheme { + return when (mode) { + AppThemeMode.FORCE_DARK -> Dark + AppThemeMode.FORCE_LIGHT -> Light + AppThemeMode.FOLLOW_SYSTEM -> System + } + } + } + } + companion object Key { const val BLOCKCHAIN = "blockchain" const val TOKEN = "Token" diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Settings.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Settings.kt index 772c85c8b1..b2123614eb 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/Settings.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Settings.kt @@ -84,5 +84,10 @@ sealed class Settings( event = "Main Currency Changed", params = mapOf("Currency Type" to currencyType), ) + + class ThemeSwitched(theme: AnalyticsParam.AppTheme) : AppSettings( + event = "App Theme Switched", + params = mapOf("State" to theme.value), + ) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsViewModel.kt b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsViewModel.kt index b7a081674b..3bebecb90a 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsViewModel.kt @@ -4,10 +4,13 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.lifecycle.LifecycleCoroutineScope +import com.tangem.core.analytics.Analytics import com.tangem.core.navigation.AppScreen import com.tangem.core.navigation.NavigationAction import com.tangem.domain.appcurrency.repository.AppCurrencyRepository import com.tangem.domain.apptheme.model.AppThemeMode +import com.tangem.tap.common.analytics.events.AnalyticsParam +import com.tangem.tap.common.analytics.events.Settings import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.extensions.dispatchWithMain @@ -121,6 +124,11 @@ internal class AppSettingsViewModel( dialog = dialogsFactory.createThemeModeSelectorDialog( selectedModeIndex = selectedMode.ordinal, onSelect = { mode -> + Analytics.send( + event = Settings.AppSettings.ThemeSwitched( + theme = AnalyticsParam.AppTheme.fromAppThemeMode(mode), + ), + ) store.dispatchOnMain(DetailsAction.AppSettings.ChangeAppThemeMode(mode)) dismissDialog() },