From b5bd9357fc2a7a2cb0d02bfad2911bf928726162 Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Mon, 18 Mar 2019 20:49:17 -0700 Subject: [PATCH] For #986 - Adds support for opening Fenix with a link to telemetry --- .../main/java/org/mozilla/fenix/HomeActivity.kt | 17 +++++++++++------ .../mozilla/fenix/browser/BrowserFragment.kt | 4 +++- .../components/metrics/GleanMetricsService.kt | 2 +- .../mozilla/fenix/components/metrics/Metrics.kt | 3 +-- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index bcca742e5..9d2489b0b 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -62,12 +62,17 @@ open class HomeActivity : AppCompatActivity() { setSupportActionBar(navigationToolbar) NavigationUI.setupWithNavController(navigationToolbar, navHost.navController, appBarConfiguration) - val safeIntent = intent?.let { SafeIntent(it) } - - if (safeIntent?.isLauncherIntent == true) { - val source = if (isCustomTab) Event.OpenedApp.Source.CUSTOM_TAB else Event.OpenedApp.Source.APP_ICON - components.analytics.metrics.track(Event.OpenedApp(source)) - } + intent + ?.let { SafeIntent(it) } + ?.let { + when { + isCustomTab -> Event.OpenedApp.Source.CUSTOM_TAB + it.isLauncherIntent -> Event.OpenedApp.Source.APP_ICON + it.action == Intent.ACTION_VIEW -> Event.OpenedApp.Source.LINK + else -> null + } + } + ?.also { components.analytics.metrics.track(Event.OpenedApp(it)) } handleOpenedFromExternalSourceIfNecessary(intent) } diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index bfdd02076..e4d66646d 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -251,7 +251,9 @@ class BrowserFragment : Fragment(), BackHandler { requireComponents.core.sessionManager.selectedSession?.id) ) - requireComponents.analytics.metrics.track(Event.SearchBarTapped(Event.SearchBarTapped.Source.BROWSER)) + requireComponents.analytics.metrics.track( + Event.SearchBarTapped(Event.SearchBarTapped.Source.BROWSER) + ) } is SearchAction.ToolbarMenuItemTapped -> handleToolbarItemInteraction(it) } 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 770a8e281..e57afbfef 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 @@ -13,7 +13,7 @@ import org.mozilla.fenix.debug.GleanMetrics.Metrics import org.mozilla.fenix.debug.GleanMetrics.Events private val Event.metricType: EventMetricType? - get() = when(this) { + get() = when (this) { is Event.OpenedApp -> Events.appOpened is Event.SearchBarTapped -> Events.searchBarTapped is Event.EnteredUrl -> Events.enteredUrl 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 deb995f1f..84d2b3193 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 @@ -10,9 +10,8 @@ sealed class Event { object RemoveBookmark : Event() object OpenedBookmark : Event() - data class OpenedApp(val source: Source) : Event() { - enum class Source { APP_ICON, CUSTOM_TAB } + enum class Source { APP_ICON, LINK, CUSTOM_TAB } override val extras: Map? get() = hashMapOf("source" to source.name) }