For #9981 - Make Bookmark Menu UI respond to session selection
This commit is contained in:
parent
335642d4f4
commit
4a06a228f3
|
@ -203,7 +203,11 @@ class DefaultToolbarMenu(
|
|||
menuToolbar
|
||||
)
|
||||
|
||||
if (shouldReverseItems) { menuItems.reversed() } else { menuItems }
|
||||
if (shouldReverseItems) {
|
||||
menuItems.reversed()
|
||||
} else {
|
||||
menuItems
|
||||
}
|
||||
}
|
||||
|
||||
private val addons = BrowserMenuImageText(
|
||||
|
@ -355,16 +359,39 @@ class DefaultToolbarMenu(
|
|||
@ColorRes
|
||||
private fun primaryTextColor() = ThemeManager.resolveAttribute(R.attr.primaryText, context)
|
||||
|
||||
private var currentSessionObserver: Pair<Session, Session.Observer>? = null
|
||||
|
||||
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) {
|
||||
currentUrlIsBookmarked = false
|
||||
updateCurrentUrlIsBookmarked(url)
|
||||
}
|
||||
}
|
||||
|
||||
session?.url?.let { updateCurrentUrlIsBookmarked(it) }
|
||||
session?.register(observer, lifecycleOwner)
|
||||
currentSessionObserver = Pair(session, sessionObserver)
|
||||
updateCurrentUrlIsBookmarked(session.url)
|
||||
session.register(sessionObserver, lifecycleOwner)
|
||||
}
|
||||
|
||||
private fun updateCurrentUrlIsBookmarked(newUrl: String) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user