|
|
@ -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) {
|
|
|
|