[fenix] For https://github.com/mozilla-mobile/fenix/issues/24591 - Remove Event.wrapper for ReaderMode telemetry

pull/600/head
Alexandru2909 3 years ago committed by mergify[bot]
parent acaf9de949
commit 2c1605effa

@ -24,12 +24,13 @@ import mozilla.components.feature.contextmenu.ContextMenuCandidate
import mozilla.components.feature.readerview.ReaderViewFeature import mozilla.components.feature.readerview.ReaderViewFeature
import mozilla.components.feature.tab.collections.TabCollection import mozilla.components.feature.tab.collections.TabCollection
import mozilla.components.feature.tabs.WindowFeature import mozilla.components.feature.tabs.WindowFeature
import mozilla.components.service.glean.private.NoExtras
import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.feature.UserInteractionHandler
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
import org.mozilla.fenix.GleanMetrics.ReaderMode
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.TabCollectionStorage import org.mozilla.fenix.components.TabCollectionStorage
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.toolbar.ToolbarMenu import org.mozilla.fenix.components.toolbar.ToolbarMenu
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.nav
@ -203,7 +204,7 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
binding.readerViewControlsBar binding.readerViewControlsBar
) { available, active -> ) { available, active ->
if (available) { if (available) {
components.analytics.metrics.track(Event.ReaderModeAvailable) ReaderMode.available.record(NoExtras())
} }
readerModeAvailable = available readerModeAvailable = available

@ -31,10 +31,6 @@ sealed class Event {
object CustomTabsMenuOpened : Event() object CustomTabsMenuOpened : Event()
object HistoryHighlightOpened : Event() object HistoryHighlightOpened : Event()
object HistorySearchGroupOpened : Event() object HistorySearchGroupOpened : Event()
object ReaderModeAvailable : Event()
object ReaderModeOpened : Event()
object ReaderModeClosed : Event()
object ReaderModeAppearanceOpened : Event()
object TabMediaPlay : Event() object TabMediaPlay : Event()
object TabMediaPause : Event() object TabMediaPause : Event()
object MediaPlayState : Event() object MediaPlayState : Event()

@ -28,7 +28,6 @@ import org.mozilla.fenix.GleanMetrics.Metrics
import org.mozilla.fenix.GleanMetrics.Pings import org.mozilla.fenix.GleanMetrics.Pings
import org.mozilla.fenix.GleanMetrics.Pocket import org.mozilla.fenix.GleanMetrics.Pocket
import org.mozilla.fenix.GleanMetrics.ProgressiveWebApp import org.mozilla.fenix.GleanMetrics.ProgressiveWebApp
import org.mozilla.fenix.GleanMetrics.ReaderMode
import org.mozilla.fenix.GleanMetrics.RecentBookmarks import org.mozilla.fenix.GleanMetrics.RecentBookmarks
import org.mozilla.fenix.GleanMetrics.RecentSearches import org.mozilla.fenix.GleanMetrics.RecentSearches
import org.mozilla.fenix.GleanMetrics.RecentTabs import org.mozilla.fenix.GleanMetrics.RecentTabs
@ -127,18 +126,6 @@ private val Event.wrapper: EventWrapper<*>?
is Event.CustomTabsClosed -> EventWrapper<NoExtraKeys>( is Event.CustomTabsClosed -> EventWrapper<NoExtraKeys>(
{ CustomTab.closed.record(it) } { CustomTab.closed.record(it) }
) )
is Event.ReaderModeAvailable -> EventWrapper<NoExtraKeys>(
{ ReaderMode.available.record(it) }
)
is Event.ReaderModeOpened -> EventWrapper<NoExtraKeys>(
{ ReaderMode.opened.record(it) }
)
is Event.ReaderModeClosed -> EventWrapper<NoExtraKeys>(
{ ReaderMode.closed.record(it) }
)
is Event.ReaderModeAppearanceOpened -> EventWrapper<NoExtraKeys>(
{ ReaderMode.appearance.record(it) }
)
is Event.TabMediaPlay -> EventWrapper<NoExtraKeys>( is Event.TabMediaPlay -> EventWrapper<NoExtraKeys>(
{ Tab.mediaPlay.record(it) } { Tab.mediaPlay.record(it) }
) )

@ -17,6 +17,7 @@ import mozilla.components.service.glean.private.NoExtras
import mozilla.components.support.ktx.kotlin.isUrl import mozilla.components.support.ktx.kotlin.isUrl
import mozilla.components.ui.tabcounter.TabCounterMenu import mozilla.components.ui.tabcounter.TabCounterMenu
import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.Events
import org.mozilla.fenix.GleanMetrics.ReaderMode
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.browser.BrowserAnimator import org.mozilla.fenix.browser.BrowserAnimator
@ -24,7 +25,6 @@ import org.mozilla.fenix.browser.BrowserAnimator.Companion.getToolbarNavOptions
import org.mozilla.fenix.browser.BrowserFragmentDirections import org.mozilla.fenix.browser.BrowserFragmentDirections
import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.browser.browsingmode.BrowsingMode
import org.mozilla.fenix.browser.readermode.ReaderModeController import org.mozilla.fenix.browser.readermode.ReaderModeController
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.components.toolbar.interactor.BrowserToolbarInteractor import org.mozilla.fenix.components.toolbar.interactor.BrowserToolbarInteractor
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
@ -128,10 +128,10 @@ class DefaultBrowserToolbarController(
override fun handleReaderModePressed(enabled: Boolean) { override fun handleReaderModePressed(enabled: Boolean) {
if (enabled) { if (enabled) {
readerModeController.showReaderView() readerModeController.showReaderView()
metrics.track(Event.ReaderModeOpened) ReaderMode.opened.record(NoExtras())
} else { } else {
readerModeController.hideReaderView() readerModeController.hideReaderView()
metrics.track(Event.ReaderModeClosed) ReaderMode.closed.record(NoExtras())
} }
} }

@ -26,9 +26,11 @@ import mozilla.components.feature.session.SessionFeature
import mozilla.components.feature.top.sites.DefaultTopSitesStorage import mozilla.components.feature.top.sites.DefaultTopSitesStorage
import mozilla.components.feature.top.sites.PinnedSiteStorage import mozilla.components.feature.top.sites.PinnedSiteStorage
import mozilla.components.feature.top.sites.TopSite import mozilla.components.feature.top.sites.TopSite
import mozilla.components.service.glean.private.NoExtras
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
import org.mozilla.fenix.GleanMetrics.Collections import org.mozilla.fenix.GleanMetrics.Collections
import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.Events
import org.mozilla.fenix.GleanMetrics.ReaderMode
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.NavGraphDirections
import org.mozilla.fenix.R import org.mozilla.fenix.R
@ -165,7 +167,7 @@ class DefaultBrowserToolbarMenuController(
} }
is ToolbarMenu.Item.CustomizeReaderView -> { is ToolbarMenu.Item.CustomizeReaderView -> {
readerModeController.showControls() readerModeController.showControls()
metrics.track(Event.ReaderModeAppearanceOpened) ReaderMode.appearance.record(NoExtras())
} }
is ToolbarMenu.Item.Back -> { is ToolbarMenu.Item.Back -> {
if (item.viewHistory) { if (item.viewHistory) {

@ -25,21 +25,23 @@ import mozilla.components.feature.search.SearchUseCases
import mozilla.components.feature.session.SessionUseCases import mozilla.components.feature.session.SessionUseCases
import mozilla.components.feature.tabs.TabsUseCases import mozilla.components.feature.tabs.TabsUseCases
import mozilla.components.feature.top.sites.TopSitesUseCases import mozilla.components.feature.top.sites.TopSitesUseCases
import mozilla.components.service.glean.testing.GleanTestRule
import mozilla.components.support.test.ext.joinBlocking import mozilla.components.support.test.ext.joinBlocking
import mozilla.components.support.test.libstate.ext.waitUntilIdle import mozilla.components.support.test.libstate.ext.waitUntilIdle
import mozilla.components.support.test.middleware.CaptureActionsMiddleware import mozilla.components.support.test.middleware.CaptureActionsMiddleware
import mozilla.components.support.test.robolectric.testContext import mozilla.components.support.test.robolectric.testContext
import mozilla.components.ui.tabcounter.TabCounterMenu import mozilla.components.ui.tabcounter.TabCounterMenu
import mozilla.telemetry.glean.testing.GleanTestRule
import org.junit.After import org.junit.After
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse import org.junit.Assert.assertFalse
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue
import org.junit.Before import org.junit.Before
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.Events
import org.mozilla.fenix.GleanMetrics.ReaderMode
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.browser.BrowserAnimator import org.mozilla.fenix.browser.BrowserAnimator
@ -211,17 +213,25 @@ class DefaultBrowserToolbarControllerTest {
@Test @Test
fun `handle reader mode enabled`() { fun `handle reader mode enabled`() {
val controller = createController() val controller = createController()
assertFalse(ReaderMode.opened.testHasValue())
controller.handleReaderModePressed(enabled = true) controller.handleReaderModePressed(enabled = true)
verify { readerModeController.showReaderView() } verify { readerModeController.showReaderView() }
assertTrue(ReaderMode.opened.testHasValue())
assertNull(ReaderMode.opened.testGetValue().single().extra)
} }
@Test @Test
fun `handle reader mode disabled`() { fun `handle reader mode disabled`() {
val controller = createController() val controller = createController()
assertFalse(ReaderMode.closed.testHasValue())
controller.handleReaderModePressed(enabled = false) controller.handleReaderModePressed(enabled = false)
verify { readerModeController.hideReaderView() } verify { readerModeController.hideReaderView() }
assertTrue(ReaderMode.closed.testHasValue())
assertNull(ReaderMode.closed.testGetValue().single().extra)
} }
@Test @Test

@ -52,6 +52,7 @@ import org.junit.After
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse import org.junit.Assert.assertFalse
import org.junit.Assert.assertNotNull import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue
import org.junit.Before import org.junit.Before
import org.junit.Rule import org.junit.Rule
@ -59,6 +60,7 @@ import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mozilla.fenix.GleanMetrics.Collections import org.mozilla.fenix.GleanMetrics.Collections
import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.Events
import org.mozilla.fenix.GleanMetrics.ReaderMode
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.NavGraphDirections
import org.mozilla.fenix.R import org.mozilla.fenix.R
@ -69,7 +71,6 @@ import org.mozilla.fenix.collections.SaveCollectionStep
import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.TabCollectionStorage import org.mozilla.fenix.components.TabCollectionStorage
import org.mozilla.fenix.components.accounts.AccountState import org.mozilla.fenix.components.accounts.AccountState
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.directionsEq import org.mozilla.fenix.ext.directionsEq
@ -241,13 +242,15 @@ class DefaultBrowserToolbarMenuControllerTest {
@Test @Test
fun `WHEN reader mode menu item is pressed THEN handle appearance change`() = runBlockingTest { fun `WHEN reader mode menu item is pressed THEN handle appearance change`() = runBlockingTest {
val item = ToolbarMenu.Item.CustomizeReaderView val item = ToolbarMenu.Item.CustomizeReaderView
assertFalse(ReaderMode.appearance.testHasValue())
val controller = createController(scope = this, store = browserStore) val controller = createController(scope = this, store = browserStore)
controller.handleToolbarItemInteraction(item) controller.handleToolbarItemInteraction(item)
verify { readerModeController.showControls() } verify { readerModeController.showControls() }
verify { metrics.track(Event.ReaderModeAppearanceOpened) } assertTrue(ReaderMode.appearance.testHasValue())
assertNull(ReaderMode.appearance.testGetValue().single().extra)
} }
@Test @Test

Loading…
Cancel
Save