diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt index 6aa75d613..f0038dfe5 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt @@ -301,10 +301,10 @@ sealed class Event { get() = mapOf(Events.performedSearchKeys.source to eventSource.sourceLabel) } - // Track only built-in engine selection. Do not track user-added engines! - data class SearchShortcutSelected(val engine: String) : Event() { + data class SearchShortcutSelected(val engine: SearchEngine, val isCustom: Boolean) : Event() { + private val engineName = if (isCustom) "custom" else engine.name override val extras: Map? - get() = mapOf(SearchShortcuts.selectedKeys.engine to engine) + get() = mapOf(SearchShortcuts.selectedKeys.engine to engineName) } class ContextMenuItemTapped private constructor(val item: String) : Event() { diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchController.kt b/app/src/main/java/org/mozilla/fenix/search/SearchController.kt index 98e6b988d..71ea16bea 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchController.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchController.kt @@ -18,6 +18,7 @@ import org.mozilla.fenix.components.metrics.Event.PerformedSearch.SearchAccessPo import org.mozilla.fenix.components.metrics.Event.PerformedSearch.SearchAccessPoint.NONE import org.mozilla.fenix.components.metrics.Event.PerformedSearch.SearchAccessPoint.SUGGESTION import org.mozilla.fenix.components.metrics.MetricsUtils +import org.mozilla.fenix.components.searchengine.CustomSearchEngineStore import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.metrics import org.mozilla.fenix.ext.nav @@ -127,7 +128,8 @@ class DefaultSearchController( override fun handleSearchShortcutEngineSelected(searchEngine: SearchEngine) { store.dispatch(SearchFragmentAction.SearchShortcutEngineSelected(searchEngine)) - context.metrics.track(Event.SearchShortcutSelected(searchEngine.name)) + val isCustom = CustomSearchEngineStore.isCustomSearchEngine(context, searchEngine.identifier) + context.metrics.track(Event.SearchShortcutSelected(searchEngine, isCustom)) } override fun handleSearchShortcutsButtonClicked() { diff --git a/app/src/test/java/org/mozilla/fenix/search/DefaultSearchControllerTest.kt b/app/src/test/java/org/mozilla/fenix/search/DefaultSearchControllerTest.kt index 932f84c7c..8bc116f72 100644 --- a/app/src/test/java/org/mozilla/fenix/search/DefaultSearchControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/search/DefaultSearchControllerTest.kt @@ -192,7 +192,7 @@ class DefaultSearchControllerTest { controller.handleSearchShortcutEngineSelected(searchEngine) verify { store.dispatch(SearchFragmentAction.SearchShortcutEngineSelected(searchEngine)) } - verify { metrics.track(Event.SearchShortcutSelected(searchEngine.name)) } + verify { metrics.track(Event.SearchShortcutSelected(searchEngine, false)) } } @Test