diff --git a/app/metrics.yaml b/app/metrics.yaml index ef98cfe6b3..f42c383f87 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -659,6 +659,7 @@ toolbar_settings: The user selected a new position for the toolbar extra_keys: position: + type: string description: | A string that indicates the new position of the toolbar TOP or BOTTOM bugs: diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index 2313d03322..20312787e9 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -66,7 +66,6 @@ import org.mozilla.fenix.GleanMetrics.TopSites import org.mozilla.fenix.components.Components import org.mozilla.fenix.components.Core import org.mozilla.fenix.components.appstate.AppAction -import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.MetricServiceType import org.mozilla.fenix.components.metrics.MozillaProductDetector import org.mozilla.fenix.components.toolbar.ToolbarPosition @@ -82,6 +81,7 @@ import org.mozilla.fenix.push.PushFxaIntegration import org.mozilla.fenix.push.WebPushEngineIntegration import org.mozilla.fenix.session.PerformanceActivityLifecycleCallbacks import org.mozilla.fenix.session.VisibilityLifecycleCallback +import org.mozilla.fenix.settings.CustomizationFragment import org.mozilla.fenix.telemetry.TelemetryLifecycleObserver import org.mozilla.fenix.utils.BrowsersCache import org.mozilla.fenix.utils.Settings @@ -630,8 +630,8 @@ open class FenixApplication : LocaleAwareApplication(), Provider { toolbarPosition.set( when (settings.toolbarPosition) { - ToolbarPosition.BOTTOM -> Event.ToolbarPositionChanged.Position.BOTTOM.name - ToolbarPosition.TOP -> Event.ToolbarPositionChanged.Position.TOP.name + ToolbarPosition.BOTTOM -> CustomizationFragment.Companion.Position.BOTTOM.name + ToolbarPosition.TOP -> CustomizationFragment.Companion.Position.TOP.name } ) diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt index 06f5feb850..f6190e6a11 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt @@ -19,7 +19,6 @@ import org.mozilla.fenix.GleanMetrics.History import org.mozilla.fenix.GleanMetrics.Logins import org.mozilla.fenix.GleanMetrics.Pocket import org.mozilla.fenix.GleanMetrics.SearchTerms -import org.mozilla.fenix.GleanMetrics.ToolbarSettings import org.mozilla.fenix.GleanMetrics.TopSites import org.mozilla.fenix.R import org.mozilla.fenix.ext.name @@ -359,13 +358,6 @@ sealed class Event { get() = hashMapOf(Addons.openAddonSettingKeys.addonId to addonId) } - data class ToolbarPositionChanged(val position: Position) : Event() { - enum class Position { TOP, BOTTOM } - - override val extras: Map? - get() = hashMapOf(ToolbarSettings.changedPositionKeys.position to position.name) - } - data class OpenedLink(val mode: Mode) : Event() { enum class Mode { NORMAL, PRIVATE } diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt index ecb6ee1688..72aefbdf17 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt @@ -49,7 +49,6 @@ import org.mozilla.fenix.GleanMetrics.SyncAuth import org.mozilla.fenix.GleanMetrics.SyncedTabs import org.mozilla.fenix.GleanMetrics.Tab import org.mozilla.fenix.GleanMetrics.Tabs -import org.mozilla.fenix.GleanMetrics.ToolbarSettings import org.mozilla.fenix.GleanMetrics.TopSites import org.mozilla.fenix.GleanMetrics.VoiceSearch import org.mozilla.fenix.GleanMetrics.Wallpapers @@ -474,10 +473,6 @@ private val Event.wrapper: EventWrapper<*>? is Event.EditLoginSave -> EventWrapper( { Logins.saveEditedLogin.record(it) } ) - is Event.ToolbarPositionChanged -> EventWrapper( - { ToolbarSettings.changedPosition.record(it) }, - { ToolbarSettings.changedPositionKeys.valueOf(it) } - ) is Event.SaveLoginsSettingChanged -> EventWrapper( { Logins.saveLoginsSettingChanged.record(it) }, { Logins.saveLoginsSettingChangedKeys.valueOf(it) } diff --git a/app/src/main/java/org/mozilla/fenix/settings/CustomizationFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/CustomizationFragment.kt index b0d352f37b..1910ed3026 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/CustomizationFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/CustomizationFragment.kt @@ -12,6 +12,7 @@ import androidx.appcompat.app.AppCompatDelegate import androidx.preference.PreferenceFragmentCompat import androidx.preference.SwitchPreference import org.mozilla.fenix.FeatureFlags +import org.mozilla.fenix.GleanMetrics.ToolbarSettings import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.toolbar.ToolbarPosition @@ -115,18 +116,18 @@ class CustomizationFragment : PreferenceFragmentCompat() { private fun setupToolbarCategory() { val topPreference = requirePreference(R.string.pref_key_toolbar_top) topPreference.onClickListener { - requireContext().components.analytics.metrics.track( - Event.ToolbarPositionChanged( - Event.ToolbarPositionChanged.Position.TOP + ToolbarSettings.changedPosition.record( + ToolbarSettings.ChangedPositionExtra( + Position.TOP.name ) ) } val bottomPreference = requirePreference(R.string.pref_key_toolbar_bottom) bottomPreference.onClickListener { - requireContext().components.analytics.metrics.track( - Event.ToolbarPositionChanged( - Event.ToolbarPositionChanged.Position.BOTTOM + ToolbarSettings.changedPosition.record( + ToolbarSettings.ChangedPositionExtra( + Position.BOTTOM.name ) ) } @@ -153,4 +154,9 @@ class CustomizationFragment : PreferenceFragmentCompat() { onPreferenceChangeListener = SharedPreferenceUpdater() } } + + companion object { + // Used to send telemetry data about toolbar position changes + enum class Position { TOP, BOTTOM } + } }