From e200807a7acce23d1ae2d43924459a151a88552e Mon Sep 17 00:00:00 2001 From: Sawyer Blatz Date: Mon, 4 Mar 2019 14:32:10 -0800 Subject: [PATCH] Fixes #706: Adds launchMode singleInstance (#829) --- app/src/main/AndroidManifest.xml | 1 + .../main/java/org/mozilla/fenix/HomeActivity.kt | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 75530f99eb..a608983a4f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,6 +21,7 @@ android:usesCleartextTraffic="true" tools:ignore="UnusedAttribute"> diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 92a6a008ac..d9f4827db3 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix import android.app.Activity import android.content.Context +import android.content.Intent import android.os.Bundle import android.util.AttributeSet import android.view.View @@ -24,6 +25,7 @@ import mozilla.components.support.ktx.kotlin.toNormalizedUrl import mozilla.components.support.utils.SafeIntent import org.mozilla.fenix.ext.components +@SuppressWarnings("TooManyFunctions") open class HomeActivity : AppCompatActivity() { val themeManager = DefaultThemeManager().also { it.onThemeChange = { theme -> @@ -51,9 +53,12 @@ open class HomeActivity : AppCompatActivity() { setSupportActionBar(navigationToolbar) NavigationUI.setupWithNavController(navigationToolbar, hostNavController, appBarConfiguration) - if (intent?.extras?.getBoolean(OPEN_TO_BROWSER) == true) { - handleOpenedFromExternalSource() - } + handleOpenedFromExternalSourceIfNecessary() + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + handleOpenedFromExternalSourceIfNecessary() } override fun onCreateView( @@ -90,6 +95,12 @@ open class HomeActivity : AppCompatActivity() { } } + private fun handleOpenedFromExternalSourceIfNecessary() { + if (intent?.extras?.getBoolean(OPEN_TO_BROWSER) == true) { + handleOpenedFromExternalSource() + } + } + private fun handleOpenedFromExternalSource() { intent?.putExtra(OPEN_TO_BROWSER, false) openToBrowser(SafeIntent(intent).getStringExtra(IntentProcessor.ACTIVE_SESSION_ID))