From 27a89901e354587362b00d3c7f25e7aa77b57951 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/components/metrics/Metrics.kt | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 0225fba5a8d7..00205fbcf537 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -59,12 +59,17 @@ open class HomeActivity : AppCompatActivity() { setSupportActionBar(navigationToolbar) NavigationUI.setupWithNavController(navigationToolbar, hostNavController, 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/components/metrics/Metrics.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt index deb995f1f497..5a970f20edc2 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 @@ -12,7 +12,7 @@ sealed class 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) }