For #24454 - Remove Event.wrapper for SyncAccount metrics

This commit is contained in:
Alexandru2909 2022-03-25 15:16:45 +02:00 committed by mergify[bot]
parent 54e17f4e2d
commit 480ab3dca7
5 changed files with 23 additions and 28 deletions

View File

@ -33,10 +33,6 @@ sealed class Event {
object CustomTabsActionTapped : Event()
object CustomTabsMenuOpened : Event()
object NormalAndPrivateUriOpened : Event()
object SyncAccountOpened : Event()
object SyncAccountSyncNow : Event()
object SendTab : Event()
object SignInToSendTab : Event()
object HistoryOpened : Event()
object HistoryItemShared : Event()
object HistoryItemOpened : Event()

View File

@ -37,7 +37,6 @@ import org.mozilla.fenix.GleanMetrics.RecentTabs
import org.mozilla.fenix.GleanMetrics.RecentlyVisitedHomepage
import org.mozilla.fenix.GleanMetrics.SearchTerms
import org.mozilla.fenix.GleanMetrics.StartOnHome
import org.mozilla.fenix.GleanMetrics.SyncAccount
import org.mozilla.fenix.GleanMetrics.SyncedTabs
import org.mozilla.fenix.GleanMetrics.Tab
import org.mozilla.fenix.GleanMetrics.Tabs
@ -156,18 +155,6 @@ private val Event.wrapper: EventWrapper<*>?
is Event.NormalAndPrivateUriOpened -> EventWrapper<NoExtraKeys>(
{ Events.normalAndPrivateUriCount.add(1) }
)
is Event.SyncAccountOpened -> EventWrapper<NoExtraKeys>(
{ SyncAccount.opened.record(it) }
)
is Event.SyncAccountSyncNow -> EventWrapper<NoExtraKeys>(
{ SyncAccount.syncNow.record(it) }
)
is Event.SignInToSendTab -> EventWrapper<NoExtraKeys>(
{ SyncAccount.signInToSendTab.record(it) }
)
is Event.SendTab -> EventWrapper<NoExtraKeys>(
{ SyncAccount.sendTab.record(it) }
)
is Event.PreferenceToggled -> EventWrapper(
{ Events.preferenceToggled.record(it) },
{ Events.preferenceToggledKeys.valueOf(it) }

View File

@ -34,11 +34,12 @@ import mozilla.components.service.fxa.sync.SyncReason
import mozilla.components.service.fxa.sync.SyncStatusObserver
import mozilla.components.service.fxa.sync.getLastSynced
import mozilla.components.support.ktx.android.content.getColorFromAttr
import mozilla.telemetry.glean.private.NoExtras
import org.mozilla.fenix.FeatureFlags
import org.mozilla.fenix.GleanMetrics.SyncAccount
import org.mozilla.fenix.R
import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.StoreProvider
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getPreferenceKey
import org.mozilla.fenix.ext.requireComponents
@ -81,7 +82,7 @@ class AccountSettingsFragment : PreferenceFragmentCompat() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requireComponents.analytics.metrics.track(Event.SyncAccountOpened)
SyncAccount.opened.record(NoExtras())
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -326,7 +327,7 @@ class AccountSettingsFragment : PreferenceFragmentCompat() {
*/
private fun syncNow() {
viewLifecycleOwner.lifecycleScope.launch {
requireComponents.analytics.metrics.track(Event.SyncAccountSyncNow)
SyncAccount.syncNow.record(NoExtras())
// Trigger a sync.
requireComponents.backgroundServices.accountManager.syncNow(SyncReason.User)
// Poll for device events & update devices.

View File

@ -30,11 +30,11 @@ import mozilla.components.concept.sync.Device
import mozilla.components.concept.sync.TabData
import mozilla.components.feature.accounts.push.SendTabUseCases
import mozilla.components.feature.share.RecentAppsStorage
import mozilla.components.service.glean.private.NoExtras
import mozilla.components.support.ktx.kotlin.isExtensionUrl
import org.mozilla.fenix.GleanMetrics.SyncAccount
import org.mozilla.fenix.R
import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.metrics
import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.share.listadapters.AppShareOption
@ -136,7 +136,7 @@ class DefaultShareController(
}
override fun handleShareToDevice(device: Device) {
context.metrics.track(Event.SendTab)
SyncAccount.sendTab.record(NoExtras())
shareToDevicesWithRetry { sendTabUseCases.sendToDeviceAsync(device.id, shareData.toTabData()) }
}
@ -145,7 +145,7 @@ class DefaultShareController(
}
override fun handleSignIn() {
context.metrics.track(Event.SignInToSendTab)
SyncAccount.signInToSendTab.record(NoExtras())
val directions =
ShareFragmentDirections.actionGlobalTurnOnSync(padSnackbar = true)
navController.nav(R.id.shareFragment, directions)

View File

@ -26,19 +26,21 @@ import mozilla.components.concept.sync.DeviceType
import mozilla.components.concept.sync.TabData
import mozilla.components.feature.accounts.push.SendTabUseCases
import mozilla.components.feature.share.RecentAppsStorage
import mozilla.components.service.glean.testing.GleanTestRule
import mozilla.components.support.test.robolectric.testContext
import mozilla.components.support.test.rule.MainCoroutineRule
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotEquals
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mozilla.fenix.GleanMetrics.SyncAccount
import org.mozilla.fenix.R
import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.ext.metrics
import org.mozilla.fenix.ext.nav
@ -68,6 +70,9 @@ class ShareControllerTest {
private val dismiss = mockk<(ShareController.Result) -> Unit>(relaxed = true)
private val recentAppStorage = mockk<RecentAppsStorage>(relaxed = true)
@get:Rule
val gleanTestRule = GleanTestRule(testContext)
@get:Rule
val coroutinesTestRule = MainCoroutineRule()
private val testDispatcher = coroutinesTestRule.testDispatcher
@ -265,9 +270,12 @@ class ShareControllerTest {
controller.handleShareToDevice(deviceToShareTo)
assertTrue(SyncAccount.sendTab.testHasValue())
assertEquals(1, SyncAccount.sendTab.testGetValue().size)
assertNull(SyncAccount.sendTab.testGetValue().single().extra)
// Verify all the needed methods are called.
verifyOrder {
metrics.track(Event.SendTab)
verify {
sendTabUseCases.sendToDeviceAsync(capture(deviceId), capture(tabsShared))
// dismiss() is also to be called, but at the moment cannot test it in a coroutine.
}
@ -321,8 +329,11 @@ class ShareControllerTest {
fun `handleSignIn should navigate to the Sync Fragment and dismiss this one`() {
controller.handleSignIn()
assertTrue(SyncAccount.signInToSendTab.testHasValue())
assertEquals(1, SyncAccount.signInToSendTab.testGetValue().size)
assertNull(SyncAccount.signInToSendTab.testGetValue().single().extra)
verifyOrder {
metrics.track(Event.SignInToSendTab)
navController.nav(
R.id.shareFragment,
ShareFragmentDirections.actionGlobalTurnOnSync()