diff --git a/app/metrics.yaml b/app/metrics.yaml index 23e9bbe18f8e..8e8abbb6888e 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -137,7 +137,7 @@ events: show_search_shortcuts, open_links_in_a_private_tab (bug in implementation https://github.com/mozilla-mobile/fenix/issues/7384), pref_key_sync_logins, pref_key_sync_bookmarks, pref_key_sync_history, - and pref_key_show_search_suggestions_in_private. + pref_key_show_voice_search and pref_key_show_search_suggestions_in_private. enabled: description: "Whether or not the preference is *now* enabled" bugs: @@ -1826,6 +1826,19 @@ search_suggestions: - fenix-core@mozilla.com expires: "2020-09-01" +voice_search: + tapped: + type: event + description: | + A user selected the voice search button on the search screen. + bugs: + - https://github.com/mozilla-mobile/fenix/issues/10465 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/TODO + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + top_sites: open_in_new_tab: type: event 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 485f4cc0b79a..8fd647de474f 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 @@ -44,6 +44,7 @@ import org.mozilla.fenix.GleanMetrics.ToolbarSettings import org.mozilla.fenix.GleanMetrics.TopSites import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.GleanMetrics.UserSpecifiedSearchEngines +import org.mozilla.fenix.GleanMetrics.VoiceSearch import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings import org.mozilla.fenix.utils.BrowsersCache @@ -522,6 +523,9 @@ private val Event.wrapper: EventWrapper<*>? { Tip.closed.record(it) }, { Tip.closedKeys.valueOf(it) } ) + is Event.VoiceSearchTapped -> EventWrapper( + { VoiceSearch.tapped.record(it) } + ) // Don't record other events in Glean: is Event.AddBookmark -> null is Event.OpenedBookmark -> null 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 875a9e736fe4..7afc84be0e28 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 @@ -13,9 +13,9 @@ import mozilla.components.browser.toolbar.facts.ToolbarFacts import mozilla.components.concept.awesomebar.AwesomeBar import mozilla.components.feature.awesomebar.provider.BookmarksStorageSuggestionProvider import mozilla.components.feature.awesomebar.provider.ClipboardSuggestionProvider +import mozilla.components.feature.awesomebar.provider.HistoryStorageSuggestionProvider import mozilla.components.feature.awesomebar.provider.SearchSuggestionProvider import mozilla.components.feature.awesomebar.provider.SessionSuggestionProvider -import mozilla.components.feature.awesomebar.provider.HistoryStorageSuggestionProvider import mozilla.components.feature.contextmenu.facts.ContextMenuFacts import mozilla.components.feature.customtabs.CustomTabsFacts import mozilla.components.feature.downloads.facts.DownloadsFacts @@ -166,6 +166,7 @@ sealed class Event { object FennecToFenixMigrated : Event() object AddonsOpenInSettings : Event() object AddonsOpenInToolbarMenu : Event() + object VoiceSearchTapped : Event() // Interaction events with extras @@ -187,6 +188,7 @@ sealed class Event { context.getString(R.string.pref_key_sync_logins), context.getString(R.string.pref_key_sync_bookmarks), context.getString(R.string.pref_key_sync_history), + context.getString(R.string.pref_key_show_voice_search), context.getString(R.string.pref_key_show_search_suggestions_in_private) ) diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt index 6cabe0f268ae..f70bac52b70f 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt @@ -154,6 +154,7 @@ class SearchFragment : Fragment(), UserInteractionHandler { } private fun launchVoiceSearch() { + requireComponents.analytics.metrics.track(Event.VoiceSearchTapped) val speechIntent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply { putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM) putExtra(RecognizerIntent.EXTRA_PROMPT, requireContext().getString(R.string.voice_search_explainer)) diff --git a/docs/metrics.md b/docs/metrics.md index e008d2b34523..a70e4bc5e5e6 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -180,6 +180,7 @@ The following metrics are added to the ping: | tracking_protection.panel_settings |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened tracking protection settings from the panel. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-09-01 | | user_specified_search_engines.custom_engine_added |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user added a new custom search engine |[1](https://github.com/mozilla-mobile/fenix/pull/6918)||2020-09-01 | | user_specified_search_engines.custom_engine_deleted |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user deleted a custom search engine |[1](https://github.com/mozilla-mobile/fenix/pull/6918)||2020-09-01 | +| voice_search.tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user selected the voice search button on the search screen. |[1](https://github.com/mozilla-mobile/fenix/pull/TODO)||2020-09-01 | ## installation