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 82a57b116..1cd0aff11 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 @@ -330,6 +330,10 @@ private val Event.wrapper: EventWrapper<*>? is Event.PrivateBrowsingNotificationDeleteAndOpenTapped -> EventWrapper( { PrivateBrowsingMode.notificationDelete.record(it) } ) + is Event.WhatsNewTapped -> EventWrapper( + { Events.whatsNewTapped.record(it) }, + { Events.whatsNewTappedKeys.valueOf(it) } + ) // Don't record other events in Glean: is Event.AddBookmark -> 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 b45d9957d..8ca18090a 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 @@ -130,6 +130,12 @@ sealed class Event { get() = hashMapOf(Events.appOpenedKeys.source to source.name) } + data class WhatsNewTapped(val source: Source) : Event() { + enum class Source { ABOUT, HOME } + override val extras: Map? + get() = hashMapOf(Events.whatsNewTappedKeys.source to source.name) + } + data class CollectionSaveButtonPressed(val fromScreen: String) : Event() { override val extras: Map? get() = mapOf(Collections.saveButtonKeys.fromScreen to fromScreen) diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index ea4ae9da9..7d1cfee11 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -59,6 +59,7 @@ import org.mozilla.fenix.collections.SaveCollectionStep import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.TabCollectionStorage import org.mozilla.fenix.components.metrics.Event +import org.mozilla.fenix.ext.metrics import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.sessionsOfType @@ -578,6 +579,7 @@ class HomeFragment : Fragment(), AccountObserver { invokePendingDeleteJobs() hideOnboardingIfNeeded() WhatsNew.userViewedWhatsNew(context!!) + context!!.metrics.track(Event.WhatsNewTapped(Event.WhatsNewTapped.Source.HOME)) (activity as HomeActivity).openToBrowserAndLoad( searchTermOrURL = SupportUtils.getSumoURLForTopic( context!!, diff --git a/app/src/main/java/org/mozilla/fenix/settings/AboutFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/AboutFragment.kt index c5a03a84b..2c9ce337a 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/AboutFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/AboutFragment.kt @@ -21,6 +21,8 @@ import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R +import org.mozilla.fenix.components.metrics.Event +import org.mozilla.fenix.ext.metrics import org.mozilla.fenix.whatsnew.WhatsNew import org.mozilla.geckoview.BuildConfig as GeckoViewBuildConfig @@ -77,6 +79,7 @@ class AboutFragment : Fragment() { with(whats_new_button) { text = getString(R.string.about_whats_new, getString(R.string.app_name)) setOnClickListener { + context.metrics.track(Event.WhatsNewTapped(Event.WhatsNewTapped.Source.ABOUT)) WhatsNew.userViewedWhatsNew(context!!) (activity as HomeActivity).openToBrowserAndLoad( searchTermOrURL = SupportUtils.getSumoURLForTopic(