For #24098: Remove wrapper from tabs tray metrics.
This commit is contained in:
parent
21df5a1a4a
commit
1f18f62a5a
|
@ -3418,6 +3418,7 @@ tabs_tray:
|
|||
source:
|
||||
description: |
|
||||
From which app feature was an existing tab opened.
|
||||
type: string
|
||||
bugs:
|
||||
- https://github.com/mozilla-mobile/fenix/issues/11273
|
||||
data_reviews:
|
||||
|
@ -3444,6 +3445,7 @@ tabs_tray:
|
|||
source:
|
||||
description: |
|
||||
From which app feature was an existing tab closed.
|
||||
type: string
|
||||
bugs:
|
||||
- https://github.com/mozilla-mobile/fenix/issues/11273
|
||||
data_reviews:
|
||||
|
@ -3695,6 +3697,7 @@ tabs_tray:
|
|||
inactive_tabs_count:
|
||||
description:
|
||||
The number of inactive tabs the user currently has.
|
||||
type: quantity
|
||||
bugs:
|
||||
- https://github.com/mozilla-mobile/fenix/issues/21903
|
||||
data_reviews:
|
||||
|
|
|
@ -21,7 +21,6 @@ import org.mozilla.fenix.GleanMetrics.Onboarding
|
|||
import org.mozilla.fenix.GleanMetrics.Pocket
|
||||
import org.mozilla.fenix.GleanMetrics.SearchShortcuts
|
||||
import org.mozilla.fenix.GleanMetrics.SearchTerms
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
import org.mozilla.fenix.GleanMetrics.ToolbarSettings
|
||||
import org.mozilla.fenix.GleanMetrics.TopSites
|
||||
import org.mozilla.fenix.GleanMetrics.TrackingProtection
|
||||
|
@ -202,41 +201,6 @@ sealed class Event {
|
|||
object LoginDialogPromptSave : Event()
|
||||
object LoginDialogPromptNeverSave : Event()
|
||||
|
||||
// Tab tray
|
||||
object TabsTrayOpened : Event()
|
||||
object TabsTrayClosed : Event()
|
||||
data class OpenedExistingTab(val source: String) : Event() {
|
||||
override val extras = mapOf(TabsTray.openedExistingTabKeys.source to source)
|
||||
}
|
||||
data class ClosedExistingTab(val source: String) : Event() {
|
||||
override val extras = mapOf(TabsTray.closedExistingTabKeys.source to source)
|
||||
}
|
||||
object TabsTrayPrivateModeTapped : Event()
|
||||
object TabsTrayNormalModeTapped : Event()
|
||||
object TabsTraySyncedModeTapped : Event()
|
||||
object NewTabTapped : Event()
|
||||
object NewPrivateTabTapped : Event()
|
||||
object TabsTrayMenuOpened : Event()
|
||||
object TabsTraySaveToCollectionPressed : Event()
|
||||
object TabsTrayShareAllTabsPressed : Event()
|
||||
object TabsTrayCloseAllTabsPressed : Event()
|
||||
object TabsTrayInactiveTabsExpanded : Event()
|
||||
object TabsTrayInactiveTabsCollapsed : Event()
|
||||
object TabsTrayAutoCloseDialogSeen : Event()
|
||||
object TabsTrayAutoCloseDialogTurnOnClicked : Event()
|
||||
object TabsTrayAutoCloseDialogDismissed : Event()
|
||||
data class TabsTrayHasInactiveTabs(val count: Int) : Event() {
|
||||
override val extras = mapOf(TabsTray.hasInactiveTabsKeys.inactiveTabsCount to count.toString())
|
||||
}
|
||||
object TabsTrayCloseAllInactiveTabs : Event()
|
||||
data class TabsTrayCloseInactiveTab(val amountClosed: Int = 1) : Event()
|
||||
object TabsTrayOpenInactiveTab : Event()
|
||||
object TabsTrayInactiveTabsCFRGotoSettings : Event()
|
||||
object TabsTrayInactiveTabsCFRDismissed : Event()
|
||||
object TabsTrayInactiveTabsCFRIsVisible : Event()
|
||||
|
||||
data class InactiveTabsCountUpdate(val count: Int) : Event()
|
||||
|
||||
object ProgressiveWebAppOpenFromHomescreenTap : Event()
|
||||
object ProgressiveWebAppInstallAsShortcut : Event()
|
||||
|
||||
|
|
|
@ -52,7 +52,6 @@ import org.mozilla.fenix.GleanMetrics.SyncAuth
|
|||
import org.mozilla.fenix.GleanMetrics.SyncedTabs
|
||||
import org.mozilla.fenix.GleanMetrics.Tab
|
||||
import org.mozilla.fenix.GleanMetrics.Tabs
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
import org.mozilla.fenix.GleanMetrics.ToolbarSettings
|
||||
import org.mozilla.fenix.GleanMetrics.TopSites
|
||||
import org.mozilla.fenix.GleanMetrics.TrackingProtection
|
||||
|
@ -647,87 +646,6 @@ private val Event.wrapper: EventWrapper<*>?
|
|||
{ Onboarding.prefToggledToolbarPositionKeys.valueOf(it) }
|
||||
)
|
||||
|
||||
is Event.TabsTrayOpened -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.opened.record(it) }
|
||||
)
|
||||
is Event.TabsTrayClosed -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.closed.record(it) }
|
||||
)
|
||||
is Event.OpenedExistingTab -> EventWrapper(
|
||||
{ TabsTray.openedExistingTab.record(it) },
|
||||
{ TabsTray.openedExistingTabKeys.valueOf(it) }
|
||||
)
|
||||
is Event.ClosedExistingTab -> EventWrapper(
|
||||
{ TabsTray.closedExistingTab.record(it) },
|
||||
{ TabsTray.closedExistingTabKeys.valueOf(it) }
|
||||
)
|
||||
is Event.TabsTrayPrivateModeTapped -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.privateModeTapped.record(it) }
|
||||
)
|
||||
is Event.TabsTrayNormalModeTapped -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.normalModeTapped.record(it) }
|
||||
)
|
||||
is Event.TabsTraySyncedModeTapped -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.syncedModeTapped.record(it) }
|
||||
)
|
||||
is Event.NewTabTapped -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.newTabTapped.record(it) }
|
||||
)
|
||||
is Event.NewPrivateTabTapped -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.newPrivateTabTapped.record(it) }
|
||||
)
|
||||
is Event.TabsTrayMenuOpened -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.menuOpened.record(it) }
|
||||
)
|
||||
is Event.TabsTraySaveToCollectionPressed -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.saveToCollection.record(it) }
|
||||
)
|
||||
is Event.TabsTrayShareAllTabsPressed -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.shareAllTabs.record(it) }
|
||||
)
|
||||
is Event.TabsTrayCloseAllTabsPressed -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.closeAllTabs.record(it) }
|
||||
)
|
||||
is Event.TabsTrayInactiveTabsExpanded -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.inactiveTabsExpanded.record(it) }
|
||||
)
|
||||
is Event.TabsTrayInactiveTabsCollapsed -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.inactiveTabsCollapsed.record(it) }
|
||||
)
|
||||
is Event.TabsTrayAutoCloseDialogDismissed -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.autoCloseDimissed.record(it) }
|
||||
)
|
||||
is Event.TabsTrayAutoCloseDialogSeen -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.autoCloseSeen.record(it) }
|
||||
)
|
||||
is Event.TabsTrayAutoCloseDialogTurnOnClicked -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.autoCloseTurnOnClicked.record(it) }
|
||||
)
|
||||
is Event.TabsTrayHasInactiveTabs -> EventWrapper(
|
||||
{ TabsTray.hasInactiveTabs.record(it) },
|
||||
{ TabsTray.hasInactiveTabsKeys.valueOf(it) }
|
||||
)
|
||||
is Event.TabsTrayCloseAllInactiveTabs -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.closeAllInactiveTabs.record(it) }
|
||||
)
|
||||
is Event.TabsTrayCloseInactiveTab -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.closeInactiveTab.add(amountClosed) }
|
||||
)
|
||||
is Event.TabsTrayOpenInactiveTab -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.openInactiveTab.add() }
|
||||
)
|
||||
is Event.InactiveTabsCountUpdate -> EventWrapper<NoExtraKeys>(
|
||||
{ Metrics.inactiveTabsCount.set(this.count.toLong()) },
|
||||
)
|
||||
is Event.TabsTrayInactiveTabsCFRGotoSettings -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.inactiveTabsCfrSettings.record(it) }
|
||||
)
|
||||
is Event.TabsTrayInactiveTabsCFRDismissed -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.inactiveTabsCfrDismissed.record(it) }
|
||||
)
|
||||
is Event.TabsTrayInactiveTabsCFRIsVisible -> EventWrapper<NoExtraKeys>(
|
||||
{ TabsTray.inactiveTabsCfrVisible.record(it) }
|
||||
)
|
||||
is Event.AutoPlaySettingVisited -> EventWrapper<NoExtraKeys>(
|
||||
{ Autoplay.visitedSetting.record(it) }
|
||||
)
|
||||
|
|
|
@ -15,6 +15,7 @@ import mozilla.components.browser.state.store.BrowserStore
|
|||
import mozilla.components.browser.storage.sync.Tab as SyncTab
|
||||
import mozilla.components.concept.engine.prompt.ShareData
|
||||
import mozilla.components.service.fxa.manager.FxaAccountManager
|
||||
import mozilla.telemetry.glean.private.NoExtras
|
||||
import org.mozilla.fenix.BrowserDirection
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
|
@ -118,7 +119,7 @@ class DefaultNavigationInteractor(
|
|||
) : NavigationInteractor {
|
||||
|
||||
override fun onTabTrayDismissed() {
|
||||
metrics.track(Event.TabsTrayClosed)
|
||||
TabsTray.closed.record(NoExtras())
|
||||
dismissTabTray()
|
||||
}
|
||||
|
||||
|
@ -199,7 +200,7 @@ class DefaultNavigationInteractor(
|
|||
override fun onSaveToCollections(tabs: Collection<TabSessionState>) {
|
||||
TabsTray.selectedTabsToCollection.record(TabsTray.SelectedTabsToCollectionExtra(tabCount = tabs.size))
|
||||
|
||||
metrics.track(Event.TabsTraySaveToCollectionPressed)
|
||||
TabsTray.saveToCollection.record(NoExtras())
|
||||
tabsTrayStore.dispatch(TabsTrayAction.ExitSelectMode)
|
||||
|
||||
CollectionsDialog(
|
||||
|
|
|
@ -9,9 +9,9 @@ import androidx.viewpager2.widget.ViewPager2
|
|||
import com.google.android.material.tabs.TabLayout
|
||||
import mozilla.components.browser.state.store.BrowserStore
|
||||
import mozilla.components.support.base.feature.LifecycleAwareFeature
|
||||
import mozilla.telemetry.glean.private.NoExtras
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
import org.mozilla.fenix.browser.browsingmode.BrowsingModeManager
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.components.metrics.MetricController
|
||||
import org.mozilla.fenix.tabstray.TrayPagerAdapter.Companion.POSITION_NORMAL_TABS
|
||||
import org.mozilla.fenix.tabstray.TrayPagerAdapter.Companion.POSITION_PRIVATE_TABS
|
||||
import org.mozilla.fenix.utils.Do
|
||||
|
@ -26,10 +26,9 @@ class TabLayoutMediator(
|
|||
interactor: TabsTrayInteractor,
|
||||
private val browsingModeManager: BrowsingModeManager,
|
||||
private val tabsTrayStore: TabsTrayStore,
|
||||
metrics: MetricController
|
||||
) : LifecycleAwareFeature {
|
||||
|
||||
private val observer = TabLayoutObserver(interactor, metrics)
|
||||
private val observer = TabLayoutObserver(interactor)
|
||||
|
||||
/**
|
||||
* Start observing the [TabLayout] and select the current tab for initial state.
|
||||
|
@ -67,7 +66,6 @@ class TabLayoutMediator(
|
|||
*/
|
||||
internal class TabLayoutObserver(
|
||||
private val interactor: TabsTrayInteractor,
|
||||
private val metrics: MetricController
|
||||
) : TabLayout.OnTabSelectedListener {
|
||||
|
||||
private var initialScroll = true
|
||||
|
@ -84,9 +82,9 @@ internal class TabLayoutObserver(
|
|||
interactor.onTrayPositionSelected(tab.position, animate)
|
||||
|
||||
Do exhaustive when (Page.positionToPage(tab.position)) {
|
||||
Page.NormalTabs -> metrics.track(Event.TabsTrayNormalModeTapped)
|
||||
Page.PrivateTabs -> metrics.track(Event.TabsTrayPrivateModeTapped)
|
||||
Page.SyncedTabs -> metrics.track(Event.TabsTraySyncedModeTapped)
|
||||
Page.NormalTabs -> TabsTray.normalModeTapped.record(NoExtras())
|
||||
Page.PrivateTabs -> TabsTray.privateModeTapped.record(NoExtras())
|
||||
Page.SyncedTabs -> TabsTray.syncedModeTapped.record(NoExtras())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ import mozilla.components.browser.state.store.BrowserStore
|
|||
import mozilla.components.concept.base.profiler.Profiler
|
||||
import mozilla.components.feature.tabs.TabsUseCases
|
||||
import mozilla.components.lib.state.DelicateAction
|
||||
import mozilla.telemetry.glean.private.NoExtras
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
|
||||
|
@ -190,7 +191,7 @@ class DefaultTabsTrayController(
|
|||
dismissTabsTrayAndNavigateHome(tabId)
|
||||
}
|
||||
}
|
||||
metrics.track(Event.ClosedExistingTab(source ?: "unknown"))
|
||||
TabsTray.closedExistingTab.record(TabsTray.ClosedExistingTabExtra(source ?: "unknown"))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -263,13 +264,11 @@ class DefaultTabsTrayController(
|
|||
|
||||
@VisibleForTesting
|
||||
internal fun sendNewTabEvent(isPrivateModeSelected: Boolean) {
|
||||
val eventToSend = if (isPrivateModeSelected) {
|
||||
Event.NewPrivateTabTapped
|
||||
if (isPrivateModeSelected) {
|
||||
TabsTray.newPrivateTabTapped.record(NoExtras())
|
||||
} else {
|
||||
Event.NewTabTapped
|
||||
TabsTray.newTabTapped.record(NoExtras())
|
||||
}
|
||||
|
||||
metrics.track(eventToSend)
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
@ -279,7 +278,7 @@ class DefaultTabsTrayController(
|
|||
}
|
||||
|
||||
override fun handleDeleteAllInactiveTabs() {
|
||||
metrics.track(Event.TabsTrayCloseAllInactiveTabs)
|
||||
TabsTray.closeAllInactiveTabs.record(NoExtras())
|
||||
browserStore.state.potentialInactiveTabs.map { it.id }.let {
|
||||
tabsUseCases.removeTabs(it)
|
||||
}
|
||||
|
|
|
@ -30,12 +30,13 @@ import mozilla.components.browser.state.store.BrowserStore
|
|||
import mozilla.components.feature.downloads.ui.DownloadCancelDialogFragment
|
||||
import mozilla.components.feature.tabs.tabstray.TabsFeature
|
||||
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
|
||||
import mozilla.telemetry.glean.private.NoExtras
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.NavGraphDirections
|
||||
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.databinding.ComponentTabstray2Binding
|
||||
import org.mozilla.fenix.databinding.ComponentTabstrayFabBinding
|
||||
import org.mozilla.fenix.databinding.FragmentTabTrayDialogBinding
|
||||
|
@ -174,7 +175,7 @@ class TabsTrayFragment : AppCompatDialogFragment() {
|
|||
fabButtonBinding.newTabButton.accessibilityTraversalAfter =
|
||||
tabsTrayBinding.tabLayout.id
|
||||
}
|
||||
requireComponents.analytics.metrics.track(Event.TabsTrayOpened)
|
||||
TabsTray.opened.record(NoExtras())
|
||||
|
||||
navigationInteractor =
|
||||
DefaultNavigationInteractor(
|
||||
|
@ -218,7 +219,6 @@ class TabsTrayFragment : AppCompatDialogFragment() {
|
|||
tabsTrayInteractor,
|
||||
tabsTrayController,
|
||||
requireComponents.useCases.tabsUseCases.selectTab,
|
||||
requireComponents.analytics.metrics
|
||||
)
|
||||
|
||||
setupMenu(navigationInteractor)
|
||||
|
@ -231,7 +231,7 @@ class TabsTrayFragment : AppCompatDialogFragment() {
|
|||
)
|
||||
|
||||
setupBackgroundDismissalListener {
|
||||
requireComponents.analytics.metrics.track(Event.TabsTrayClosed)
|
||||
TabsTray.closed.record(NoExtras())
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
|
@ -283,7 +283,6 @@ class TabsTrayFragment : AppCompatDialogFragment() {
|
|||
interactor = tabsTrayInteractor,
|
||||
browsingModeManager = activity.browsingModeManager,
|
||||
tabsTrayStore = tabsTrayStore,
|
||||
metrics = requireComponents.analytics.metrics
|
||||
),
|
||||
owner = this,
|
||||
view = view
|
||||
|
@ -489,7 +488,7 @@ class TabsTrayFragment : AppCompatDialogFragment() {
|
|||
internal fun setupMenu(navigationInteractor: NavigationInteractor) {
|
||||
tabsTrayBinding.tabTrayOverflow.setOnClickListener { anchor ->
|
||||
|
||||
requireComponents.analytics.metrics.track(Event.TabsTrayMenuOpened)
|
||||
TabsTray.menuOpened.record(NoExtras())
|
||||
|
||||
val menu = getTrayMenu(
|
||||
context = requireContext(),
|
||||
|
|
|
@ -25,12 +25,12 @@ import mozilla.components.browser.state.store.BrowserStore
|
|||
import mozilla.components.lib.state.helpers.AbstractBinding
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged
|
||||
import mozilla.telemetry.glean.private.NoExtras
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.browser.infobanner.InfoBanner
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.databinding.ComponentTabstray2Binding
|
||||
import org.mozilla.fenix.databinding.OnboardingInactiveTabsCfrBinding
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.ext.potentialInactiveTabs
|
||||
import org.mozilla.fenix.utils.Settings
|
||||
|
||||
|
@ -69,7 +69,6 @@ class TabsTrayInactiveTabsOnboardingBinding(
|
|||
if (this::inactiveTabsDialog.isInitialized) return
|
||||
|
||||
val context: Context = context
|
||||
val metrics = context.components.analytics.metrics
|
||||
val anchorPosition = IntArray(2)
|
||||
val popupBinding = OnboardingInactiveTabsCfrBinding.inflate(LayoutInflater.from(context))
|
||||
inactiveTabsDialog = Dialog(context)
|
||||
|
@ -83,14 +82,14 @@ class TabsTrayInactiveTabsOnboardingBinding(
|
|||
popupBinding.closeInfoBanner.setOnClickListener {
|
||||
inactiveTabsDialog.dismiss()
|
||||
settings.shouldShowInactiveTabsOnboardingPopup = false
|
||||
metrics.track(Event.TabsTrayInactiveTabsCFRDismissed)
|
||||
TabsTray.inactiveTabsCfrDismissed.record(NoExtras())
|
||||
}
|
||||
|
||||
popupBinding.bannerInfoMessage.setOnClickListener {
|
||||
inactiveTabsDialog.dismiss()
|
||||
settings.shouldShowInactiveTabsOnboardingPopup = false
|
||||
navigationInteractor.onTabSettingsClicked()
|
||||
metrics.track(Event.TabsTrayInactiveTabsCFRGotoSettings)
|
||||
TabsTray.inactiveTabsCfrSettings.record(NoExtras())
|
||||
}
|
||||
|
||||
val messageText = context.getString(R.string.tab_tray_inactive_onboarding_message)
|
||||
|
@ -120,6 +119,6 @@ class TabsTrayInactiveTabsOnboardingBinding(
|
|||
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
}
|
||||
inactiveTabsDialog.show()
|
||||
metrics.track(Event.TabsTrayInactiveTabsCFRIsVisible)
|
||||
TabsTray.inactiveTabsCfrVisible.record(NoExtras())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,9 +11,9 @@ import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
|
|||
import mozilla.components.browser.state.selector.normalTabs
|
||||
import mozilla.components.browser.state.selector.privateTabs
|
||||
import mozilla.components.browser.state.store.BrowserStore
|
||||
import mozilla.telemetry.glean.private.NoExtras
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.tabstray.ext.isNormalModeSelected
|
||||
import org.mozilla.fenix.tabstray.ext.isPrivateModeSelected
|
||||
import org.mozilla.fenix.tabstray.ext.isSyncedModeSelected
|
||||
|
@ -63,7 +63,7 @@ class TabsTrayMenu(
|
|||
context.getString(R.string.tab_tray_menu_item_share),
|
||||
textColorResource = R.color.fx_mobile_text_color_primary
|
||||
) {
|
||||
context.components.analytics.metrics.track(Event.TabsTrayShareAllTabsPressed)
|
||||
TabsTray.shareAllTabs.record(NoExtras())
|
||||
onItemTapped.invoke(Item.ShareAllTabs)
|
||||
}.apply { visible = shouldShowSelectOrShare },
|
||||
|
||||
|
@ -92,7 +92,7 @@ class TabsTrayMenu(
|
|||
context.getString(R.string.tab_tray_menu_item_close),
|
||||
textColorResource = R.color.fx_mobile_text_color_primary
|
||||
) {
|
||||
context.components.analytics.metrics.track(Event.TabsTrayCloseAllTabsPressed)
|
||||
TabsTray.closeAllTabs.record(NoExtras())
|
||||
onItemTapped.invoke(Item.CloseAllTabs)
|
||||
}.apply { visible = { checkOpenTabs } }
|
||||
)
|
||||
|
|
|
@ -7,6 +7,7 @@ package org.mozilla.fenix.tabstray
|
|||
import androidx.annotation.VisibleForTesting
|
||||
import mozilla.components.lib.state.Middleware
|
||||
import mozilla.components.lib.state.MiddlewareContext
|
||||
import org.mozilla.fenix.GleanMetrics.Metrics
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.components.metrics.MetricController
|
||||
|
@ -34,8 +35,9 @@ class TabsTrayMiddleware(
|
|||
is TabsTrayAction.UpdateInactiveTabs -> {
|
||||
if (shouldReportInactiveTabMetrics) {
|
||||
shouldReportInactiveTabMetrics = false
|
||||
metrics.track(Event.InactiveTabsCountUpdate(action.tabs.size))
|
||||
metrics.track(Event.TabsTrayHasInactiveTabs(action.tabs.size))
|
||||
|
||||
TabsTray.hasInactiveTabs.record(TabsTray.HasInactiveTabsExtra(action.tabs.size))
|
||||
Metrics.inactiveTabsCount.set(action.tabs.size.toLong())
|
||||
}
|
||||
}
|
||||
is TabsTrayAction.UpdateTabPartitions -> {
|
||||
|
|
|
@ -10,7 +10,6 @@ import mozilla.components.feature.tabs.TabsUseCases
|
|||
import mozilla.components.support.base.feature.UserInteractionHandler
|
||||
import org.mozilla.fenix.selection.SelectionInteractor
|
||||
import org.mozilla.fenix.tabstray.TabsTrayAction
|
||||
import org.mozilla.fenix.components.metrics.MetricController
|
||||
import org.mozilla.fenix.tabstray.TabsTrayController
|
||||
import org.mozilla.fenix.tabstray.TabsTrayInteractor
|
||||
import org.mozilla.fenix.tabstray.TabsTrayState.Mode
|
||||
|
@ -58,11 +57,10 @@ class DefaultBrowserTrayInteractor(
|
|||
private val trayInteractor: TabsTrayInteractor,
|
||||
private val controller: TabsTrayController,
|
||||
private val selectTab: TabsUseCases.SelectTabUseCase,
|
||||
private val metrics: MetricController
|
||||
) : BrowserTrayInteractor {
|
||||
|
||||
private val selectTabWrapper by lazy {
|
||||
SelectTabUseCaseWrapper(metrics, selectTab) {
|
||||
SelectTabUseCaseWrapper(selectTab) {
|
||||
trayInteractor.onBrowserTabSelected()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,8 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import mozilla.components.browser.state.state.TabSessionState
|
||||
import mozilla.components.browser.tabstray.TabsTray
|
||||
import mozilla.components.browser.toolbar.MAX_URI_LENGTH
|
||||
import mozilla.telemetry.glean.private.NoExtras
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.components.FenixSnackbar
|
||||
import org.mozilla.fenix.databinding.InactiveFooterItemBinding
|
||||
import org.mozilla.fenix.databinding.InactiveHeaderItemBinding
|
||||
|
@ -19,9 +19,9 @@ import org.mozilla.fenix.databinding.InactiveTabListItemBinding
|
|||
import org.mozilla.fenix.databinding.InactiveTabsAutoCloseBinding
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.ext.loadIntoView
|
||||
import org.mozilla.fenix.ext.metrics
|
||||
import org.mozilla.fenix.ext.toShortUrl
|
||||
import org.mozilla.fenix.home.topsites.dpToPx
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray as TabsTrayMetrics
|
||||
import org.mozilla.fenix.tabstray.TabsTrayFragment
|
||||
import org.mozilla.fenix.tabstray.TabsTrayInteractor
|
||||
|
||||
|
@ -78,7 +78,7 @@ sealed class InactiveTabViewHolder(itemView: View) : RecyclerView.ViewHolder(ite
|
|||
private val binding = InactiveTabsAutoCloseBinding.bind(itemView)
|
||||
|
||||
init {
|
||||
binding.root.context.metrics.track(Event.TabsTrayAutoCloseDialogSeen)
|
||||
TabsTrayMetrics.autoCloseSeen.record(NoExtras())
|
||||
|
||||
binding.message.text = with(binding.root.context) {
|
||||
getString(
|
||||
|
@ -86,7 +86,6 @@ sealed class InactiveTabViewHolder(itemView: View) : RecyclerView.ViewHolder(ite
|
|||
getString(R.string.app_name)
|
||||
)
|
||||
}
|
||||
|
||||
binding.closeButton.setOnClickListener {
|
||||
interactor.onCloseClicked()
|
||||
}
|
||||
|
@ -135,7 +134,7 @@ sealed class InactiveTabViewHolder(itemView: View) : RecyclerView.ViewHolder(ite
|
|||
val url = tab.content.url.toShortUrl(components.publicSuffixList).take(MAX_URI_LENGTH)
|
||||
|
||||
itemView.setOnClickListener {
|
||||
components.analytics.metrics.track(Event.TabsTrayOpenInactiveTab)
|
||||
TabsTrayMetrics.openInactiveTab.add()
|
||||
delegate.onTabSelected(tab, featureName)
|
||||
}
|
||||
|
||||
|
@ -146,7 +145,7 @@ sealed class InactiveTabViewHolder(itemView: View) : RecyclerView.ViewHolder(ite
|
|||
R.drawable.mozac_ic_close,
|
||||
R.string.content_description_close_button
|
||||
) {
|
||||
components.analytics.metrics.track(Event.TabsTrayCloseInactiveTab())
|
||||
TabsTrayMetrics.closeInactiveTab.add()
|
||||
delegate.onTabClosed(tab, featureName)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,9 +8,10 @@ import androidx.annotation.VisibleForTesting
|
|||
import mozilla.components.browser.state.state.TabSessionState
|
||||
import mozilla.components.browser.state.store.BrowserStore
|
||||
import mozilla.components.browser.tabstray.TabsTray
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import mozilla.telemetry.glean.private.NoExtras
|
||||
import org.mozilla.fenix.components.metrics.MetricController
|
||||
import org.mozilla.fenix.utils.Settings
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray as TabsTrayMetrics
|
||||
|
||||
class InactiveTabsAutoCloseDialogController(
|
||||
private val browserStore: BrowserStore,
|
||||
|
@ -25,7 +26,9 @@ class InactiveTabsAutoCloseDialogController(
|
|||
fun close() {
|
||||
markDialogAsShown()
|
||||
refreshInactiveTabsSection()
|
||||
metrics.track(Event.TabsTrayAutoCloseDialogDismissed)
|
||||
org.mozilla.fenix.GleanMetrics.TabsTray.autoCloseSeen.record(NoExtras())
|
||||
|
||||
TabsTrayMetrics.autoCloseDimissed.record(NoExtras())
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -38,7 +41,7 @@ class InactiveTabsAutoCloseDialogController(
|
|||
settings.closeTabsAfterOneDay = false
|
||||
settings.manuallyCloseTabs = false
|
||||
refreshInactiveTabsSection()
|
||||
metrics.track(Event.TabsTrayAutoCloseDialogTurnOnClicked)
|
||||
TabsTrayMetrics.autoCloseTurnOnClicked.record(NoExtras())
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -6,10 +6,10 @@ package org.mozilla.fenix.tabstray.browser
|
|||
|
||||
import androidx.annotation.VisibleForTesting
|
||||
import mozilla.components.browser.tabstray.TabsTray
|
||||
import mozilla.telemetry.glean.private.NoExtras
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray as TabsTrayMetrics
|
||||
import org.mozilla.fenix.components.AppStore
|
||||
import org.mozilla.fenix.components.appstate.AppAction.UpdateInactiveExpanded
|
||||
import org.mozilla.fenix.components.metrics.MetricController
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.tabstray.TabsTrayStore
|
||||
import org.mozilla.fenix.utils.Settings
|
||||
|
||||
|
@ -17,7 +17,6 @@ class InactiveTabsController(
|
|||
private val tabsTrayStore: TabsTrayStore,
|
||||
private val appStore: AppStore,
|
||||
private val tray: TabsTray,
|
||||
private val metrics: MetricController,
|
||||
private val settings: Settings
|
||||
) {
|
||||
/**
|
||||
|
@ -31,12 +30,10 @@ class InactiveTabsController(
|
|||
refreshInactiveTabsSection()
|
||||
}
|
||||
|
||||
metrics.track(
|
||||
when (isExpanded) {
|
||||
true -> Event.TabsTrayInactiveTabsExpanded
|
||||
false -> Event.TabsTrayInactiveTabsCollapsed
|
||||
}
|
||||
)
|
||||
when (isExpanded) {
|
||||
true -> TabsTrayMetrics.inactiveTabsExpanded.record(NoExtras())
|
||||
false -> TabsTrayMetrics.inactiveTabsCollapsed.record(NoExtras())
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -45,7 +42,7 @@ class InactiveTabsController(
|
|||
fun close() {
|
||||
markDialogAsShown()
|
||||
refreshInactiveTabsSection()
|
||||
metrics.track(Event.TabsTrayAutoCloseDialogDismissed)
|
||||
TabsTrayMetrics.autoCloseDimissed.record(NoExtras())
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,7 +55,7 @@ class InactiveTabsController(
|
|||
settings.closeTabsAfterOneDay = false
|
||||
settings.manuallyCloseTabs = false
|
||||
refreshInactiveTabsSection()
|
||||
metrics.track(Event.TabsTrayAutoCloseDialogTurnOnClicked)
|
||||
TabsTrayMetrics.autoCloseTurnOnClicked.record(NoExtras())
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -45,7 +45,6 @@ class NormalBrowserTrayList @JvmOverloads constructor(
|
|||
tabsTrayStore,
|
||||
context.components.appStore,
|
||||
concatAdapter.inactiveTabsAdapter,
|
||||
context.components.analytics.metrics,
|
||||
context.settings()
|
||||
)
|
||||
)
|
||||
|
|
|
@ -5,16 +5,14 @@
|
|||
package org.mozilla.fenix.tabstray.browser
|
||||
|
||||
import mozilla.components.feature.tabs.TabsUseCases
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.components.metrics.MetricController
|
||||
import org.mozilla.fenix.GleanMetrics.TabsTray
|
||||
|
||||
class SelectTabUseCaseWrapper(
|
||||
private val metrics: MetricController,
|
||||
private val selectTab: TabsUseCases.SelectTabUseCase,
|
||||
private val onSelect: (String) -> Unit
|
||||
) : TabsUseCases.SelectTabUseCase {
|
||||
operator fun invoke(tabId: String, source: String? = null) {
|
||||
metrics.track(Event.OpenedExistingTab(source ?: "unknown"))
|
||||
TabsTray.openedExistingTab.record(TabsTray.OpenedExistingTabExtra(source ?: "unknown"))
|
||||
selectTab(tabId)
|
||||
onSelect(tabId)
|
||||
}
|
||||
|
@ -25,11 +23,10 @@ class SelectTabUseCaseWrapper(
|
|||
}
|
||||
|
||||
class RemoveTabUseCaseWrapper(
|
||||
private val metrics: MetricController,
|
||||
private val onRemove: (String) -> Unit,
|
||||
) : TabsUseCases.RemoveTabUseCase {
|
||||
operator fun invoke(tabId: String, source: String? = null) {
|
||||
metrics.track(Event.ClosedExistingTab(source ?: "unknown"))
|
||||
TabsTray.closedExistingTab.record(TabsTray.ClosedExistingTabExtra(source ?: "unknown"))
|
||||
onRemove(tabId)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue