1
0
Fork 0

Closes #2156 - Update theme for selected session in BrowserFragment (#2171)

master
Emily Kager 2019-04-30 18:04:16 -07:00 committed by Colin Lee
parent 5b7d5bf1b3
commit a07b6d8c0f
2 changed files with 16 additions and 8 deletions

View File

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

View File

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