1
0
Fork 0

For #8374 - Don't recreate ExternalAppBrowserActivity or finishing activities

master
ekager 2020-06-04 15:44:09 -04:00 committed by Emily Kager
parent efae61d593
commit 54df729fb3
2 changed files with 7 additions and 1 deletions

View File

@ -749,8 +749,8 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
getSessionById()?.let { session ->
val sessionManager = requireComponents.core.sessionManager
if (session.source == Session.Source.ACTION_VIEW) {
sessionManager.remove(session)
activity?.finish()
sessionManager.remove(session)
} else {
val isLastSession =
sessionManager.sessionsOfType(private = session.private).count() == 1

View File

@ -19,6 +19,7 @@ import mozilla.components.support.ktx.android.content.getColorFromAttr
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
import org.mozilla.fenix.customtabs.ExternalAppBrowserActivity
abstract class ThemeManager {
@ -110,6 +111,11 @@ class DefaultThemeManager(
override var currentTheme: BrowsingMode = currentTheme
set(value) {
if (currentTheme != value) {
// ExternalAppBrowserActivity doesn't need to switch between private and non-private.
if (activity is ExternalAppBrowserActivity) return
// Don't recreate if activity is finishing
if (activity.isFinishing) return
field = value
val intent = activity.intent ?: Intent().also { activity.intent = it }