For #8374 - Don't recreate ExternalAppBrowserActivity or finishing activities
parent
efae61d593
commit
54df729fb3
|
@ -749,8 +749,8 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
|
||||||
getSessionById()?.let { session ->
|
getSessionById()?.let { session ->
|
||||||
val sessionManager = requireComponents.core.sessionManager
|
val sessionManager = requireComponents.core.sessionManager
|
||||||
if (session.source == Session.Source.ACTION_VIEW) {
|
if (session.source == Session.Source.ACTION_VIEW) {
|
||||||
sessionManager.remove(session)
|
|
||||||
activity?.finish()
|
activity?.finish()
|
||||||
|
sessionManager.remove(session)
|
||||||
} else {
|
} else {
|
||||||
val isLastSession =
|
val isLastSession =
|
||||||
sessionManager.sessionsOfType(private = session.private).count() == 1
|
sessionManager.sessionsOfType(private = session.private).count() == 1
|
||||||
|
|
|
@ -19,6 +19,7 @@ import mozilla.components.support.ktx.android.content.getColorFromAttr
|
||||||
import org.mozilla.fenix.HomeActivity
|
import org.mozilla.fenix.HomeActivity
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
|
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
|
||||||
|
import org.mozilla.fenix.customtabs.ExternalAppBrowserActivity
|
||||||
|
|
||||||
abstract class ThemeManager {
|
abstract class ThemeManager {
|
||||||
|
|
||||||
|
@ -110,6 +111,11 @@ class DefaultThemeManager(
|
||||||
override var currentTheme: BrowsingMode = currentTheme
|
override var currentTheme: BrowsingMode = currentTheme
|
||||||
set(value) {
|
set(value) {
|
||||||
if (currentTheme != 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
|
field = value
|
||||||
|
|
||||||
val intent = activity.intent ?: Intent().also { activity.intent = it }
|
val intent = activity.intent ?: Intent().also { activity.intent = it }
|
||||||
|
|
Loading…
Reference in New Issue