pull/600/head
Emily Kager 6 years ago committed by Colin Lee
parent fab9ef7f15
commit 9739f7ab8a

@ -251,11 +251,6 @@ open class HomeActivity : AppCompatActivity() {
it.register(singleSessionObserver) it.register(singleSessionObserver)
} }
} }
override fun onSessionSelected(session: Session) {
super.onSessionSelected(session)
updateThemeForSession(session)
}
}.also { components.core.sessionManager.register(it) } }.also { components.core.sessionManager.register(it) }
} }

@ -32,6 +32,7 @@ import kotlinx.coroutines.Job
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import mozilla.appservices.places.BookmarkRoot import mozilla.appservices.places.BookmarkRoot
import mozilla.components.browser.session.Session import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager
import mozilla.components.feature.contextmenu.ContextMenuCandidate import mozilla.components.feature.contextmenu.ContextMenuCandidate
import mozilla.components.feature.contextmenu.ContextMenuFeature import mozilla.components.feature.contextmenu.ContextMenuFeature
import mozilla.components.feature.downloads.DownloadsFeature import mozilla.components.feature.downloads.DownloadsFeature
@ -85,6 +86,8 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope,
private lateinit var toolbarComponent: ToolbarComponent private lateinit var toolbarComponent: ToolbarComponent
private var sessionObserver: Session.Observer? = null private var sessionObserver: Session.Observer? = null
private var sessionManagerObserver: SessionManager.Observer? = null
private val sessionFeature = ViewBoundFeatureWrapper<SessionFeature>() private val sessionFeature = ViewBoundFeatureWrapper<SessionFeature>()
private val contextMenuFeature = ViewBoundFeatureWrapper<ContextMenuFeature>() private val contextMenuFeature = ViewBoundFeatureWrapper<ContextMenuFeature>()
private val downloadsFeature = ViewBoundFeatureWrapper<DownloadsFeature>() private val downloadsFeature = ViewBoundFeatureWrapper<DownloadsFeature>()
@ -299,9 +302,6 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope,
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
getSessionById()?.let {
(activity as HomeActivity).updateThemeForSession(it)
}
context?.components?.core?.let { context?.components?.core?.let {
val preferredColorScheme = it.getPreferredColorScheme() val preferredColorScheme = it.getPreferredColorScheme()
if (it.engine.settings.preferredColorScheme != preferredColorScheme) { if (it.engine.settings.preferredColorScheme != preferredColorScheme) {
@ -316,6 +316,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope,
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
sessionObserver = subscribeToSession() sessionObserver = subscribeToSession()
sessionManagerObserver = subscribeToSessions()
updateToolbar() updateToolbar()
getAutoDisposeObservable<SearchAction>() getAutoDisposeObservable<SearchAction>()
.subscribe { .subscribe {
@ -420,6 +421,9 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope,
sessionObserver?.let { sessionObserver?.let {
getSessionById()?.unregister(it) getSessionById()?.unregister(it)
} }
sessionManagerObserver?.let {
requireComponents.core.sessionManager.unregister(it)
}
} }
override fun onBackPressed(): Boolean { override fun onBackPressed(): Boolean {
@ -606,6 +610,15 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope,
return observer return observer
} }
private fun subscribeToSessions(): SessionManager.Observer {
return object : SessionManager.Observer {
override fun onSessionSelected(session: Session) {
super.onSessionSelected(session)
(activity as HomeActivity).updateThemeForSession(session)
}
}.also { requireComponents.core.sessionManager.register(it) }
}
override fun onTouchExplorationStateChanged(enabled: Boolean) { override fun onTouchExplorationStateChanged(enabled: Boolean) {
updateToolbar() updateToolbar()
} }

Loading…
Cancel
Save