diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 75530f99e..a608983a4 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 92a6a008a..d9f4827db 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))