From f57be9751a7011dc4ae6d234c705075444e5d2cf Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Thu, 17 Mar 2022 21:16:20 +0200 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/24147 - Remove Event.wrapper for Search widget telemetry --- .../org/mozilla/fenix/components/metrics/Event.kt | 2 -- .../components/metrics/GleanMetricsService.kt | 7 ------- .../home/intent/StartSearchIntentProcessor.kt | 4 +++- .../mozilla/fenix/widget/VoiceSearchActivity.kt | 6 +++--- .../home/intent/StartSearchIntentProcessorTest.kt | 15 ++++++++++++++- 5 files changed, 20 insertions(+), 14 deletions(-) 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 b24503085..5f037bb57 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 @@ -110,8 +110,6 @@ sealed class Event { object CollectionTabLongPressed : Event() object CollectionAddTabPressed : Event() object CollectionRenamePressed : Event() - object SearchWidgetNewTabPressed : Event() - object SearchWidgetVoiceSearchPressed : Event() object TabMediaPlay : Event() object TabMediaPause : Event() object MediaPlayState : 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 ec3cb1b9b..06597752f 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 @@ -40,7 +40,6 @@ import org.mozilla.fenix.GleanMetrics.RecentTabs import org.mozilla.fenix.GleanMetrics.RecentlyClosedTabs import org.mozilla.fenix.GleanMetrics.RecentlyVisitedHomepage import org.mozilla.fenix.GleanMetrics.SearchTerms -import org.mozilla.fenix.GleanMetrics.SearchWidget import org.mozilla.fenix.GleanMetrics.StartOnHome import org.mozilla.fenix.GleanMetrics.SyncAccount import org.mozilla.fenix.GleanMetrics.SyncAuth @@ -393,12 +392,6 @@ private val Event.wrapper: EventWrapper<*>? { Collections.tabsAdded.record(it) }, { Collections.tabsAddedKeys.valueOf(it) } ) - is Event.SearchWidgetNewTabPressed -> EventWrapper( - { SearchWidget.newTabButton.record(it) } - ) - is Event.SearchWidgetVoiceSearchPressed -> EventWrapper( - { SearchWidget.voiceButton.record(it) } - ) is Event.WhatsNewTapped -> EventWrapper( { Events.whatsNewTapped.record(it) } ) diff --git a/app/src/main/java/org/mozilla/fenix/home/intent/StartSearchIntentProcessor.kt b/app/src/main/java/org/mozilla/fenix/home/intent/StartSearchIntentProcessor.kt index f16cf6bfa..2bcd2fb2d 100644 --- a/app/src/main/java/org/mozilla/fenix/home/intent/StartSearchIntentProcessor.kt +++ b/app/src/main/java/org/mozilla/fenix/home/intent/StartSearchIntentProcessor.kt @@ -7,6 +7,8 @@ package org.mozilla.fenix.home.intent import android.content.Intent import androidx.navigation.NavController import androidx.navigation.navOptions +import mozilla.components.service.glean.private.NoExtras +import org.mozilla.fenix.GleanMetrics.SearchWidget import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.R @@ -27,7 +29,7 @@ class StartSearchIntentProcessor( return if (event != null) { val source = when (event) { SEARCH_WIDGET -> { - metrics.track(Event.SearchWidgetNewTabPressed) + SearchWidget.newTabButton.record(NoExtras()) Event.PerformedSearch.SearchAccessPoint.WIDGET } STATIC_SHORTCUT_NEW_TAB, diff --git a/app/src/main/java/org/mozilla/fenix/widget/VoiceSearchActivity.kt b/app/src/main/java/org/mozilla/fenix/widget/VoiceSearchActivity.kt index 1f22b397b..5a763b60e 100644 --- a/app/src/main/java/org/mozilla/fenix/widget/VoiceSearchActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/widget/VoiceSearchActivity.kt @@ -11,11 +11,11 @@ import android.os.StrictMode import android.speech.RecognizerIntent import androidx.appcompat.app.AppCompatActivity import mozilla.components.support.locale.LocaleManager +import mozilla.telemetry.glean.private.NoExtras +import org.mozilla.fenix.GleanMetrics.SearchWidget import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.IntentReceiverActivity -import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components -import org.mozilla.fenix.ext.metrics /** * Launches voice recognition then uses it to start a new web search. @@ -77,7 +77,7 @@ class VoiceSearchActivity : AppCompatActivity() { } ) } - metrics.track(Event.SearchWidgetVoiceSearchPressed) + SearchWidget.voiceButton.record(NoExtras()) startActivityForResult(intentSpeech, SPEECH_REQUEST_CODE) } diff --git a/app/src/test/java/org/mozilla/fenix/home/intent/StartSearchIntentProcessorTest.kt b/app/src/test/java/org/mozilla/fenix/home/intent/StartSearchIntentProcessorTest.kt index a614494e4..3229d2b8b 100644 --- a/app/src/test/java/org/mozilla/fenix/home/intent/StartSearchIntentProcessorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/home/intent/StartSearchIntentProcessorTest.kt @@ -10,8 +10,14 @@ import androidx.navigation.navOptions import io.mockk.Called import io.mockk.mockk import io.mockk.verify +import mozilla.components.service.glean.testing.GleanTestRule +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith +import org.mozilla.fenix.GleanMetrics.SearchWidget import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.R @@ -23,6 +29,9 @@ import org.mozilla.fenix.helpers.FenixRobolectricTestRunner @RunWith(FenixRobolectricTestRunner::class) class StartSearchIntentProcessorTest { + @get:Rule + val gleanTestRule = GleanTestRule(testContext) + private val metrics: MetricController = mockk(relaxed = true) private val navController: NavController = mockk(relaxed = true) private val out: Intent = mockk(relaxed = true) @@ -58,7 +67,11 @@ class StartSearchIntentProcessorTest { popUpTo = R.id.homeFragment } - verify { metrics.track(Event.SearchWidgetNewTabPressed) } + assertTrue(SearchWidget.newTabButton.testHasValue()) + val recordedEvents = SearchWidget.newTabButton.testGetValue() + assertEquals(1, recordedEvents.size) + assertEquals(null, recordedEvents.single().extra) + verify { navController.nav( null,