For #9981 - Make Bookmark Menu UI respond to session selection

fennec/production
ekager 4 years ago committed by Emily Kager
parent 335642d4f4
commit 4a06a228f3

@ -203,7 +203,11 @@ class DefaultToolbarMenu(
menuToolbar menuToolbar
) )
if (shouldReverseItems) { menuItems.reversed() } else { menuItems } if (shouldReverseItems) {
menuItems.reversed()
} else {
menuItems
}
} }
private val addons = BrowserMenuImageText( private val addons = BrowserMenuImageText(
@ -355,16 +359,39 @@ class DefaultToolbarMenu(
@ColorRes @ColorRes
private fun primaryTextColor() = ThemeManager.resolveAttribute(R.attr.primaryText, context) private fun primaryTextColor() = ThemeManager.resolveAttribute(R.attr.primaryText, context)
private var currentSessionObserver: Pair<Session, Session.Observer>? = null
private fun registerForIsBookmarkedUpdates() { private fun registerForIsBookmarkedUpdates() {
val observer = object : Session.Observer { session?.let {
registerForUrlChanges(it)
}
val sessionManagerObserver = object : SessionManager.Observer {
override fun onSessionSelected(session: Session) {
// Unregister any old session observer before registering a new session observer
currentSessionObserver?.let {
it.first.unregister(it.second)
}
currentUrlIsBookmarked = false
updateCurrentUrlIsBookmarked(session.url)
registerForUrlChanges(session)
}
}
sessionManager.register(sessionManagerObserver, lifecycleOwner)
}
private fun registerForUrlChanges(session: Session) {
val sessionObserver = object : Session.Observer {
override fun onUrlChanged(session: Session, url: String) { override fun onUrlChanged(session: Session, url: String) {
currentUrlIsBookmarked = false currentUrlIsBookmarked = false
updateCurrentUrlIsBookmarked(url) updateCurrentUrlIsBookmarked(url)
} }
} }
session?.url?.let { updateCurrentUrlIsBookmarked(it) } currentSessionObserver = Pair(session, sessionObserver)
session?.register(observer, lifecycleOwner) updateCurrentUrlIsBookmarked(session.url)
session.register(sessionObserver, lifecycleOwner)
} }
private fun updateCurrentUrlIsBookmarked(newUrl: String) { private fun updateCurrentUrlIsBookmarked(newUrl: String) {

Loading…
Cancel
Save