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 ->
|
||||
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
|
||||
|
|
|
@ -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 }
|
||||
|
|
Loading…
Reference in New Issue