[fenix] For https://github.com/mozilla-mobile/fenix/issues/11406 - Scrolls to selected tab when switching modes

pull/600/head
Jeff Boek 4 years ago committed by Emily Kager
parent 59db888d3b
commit 50656a7634

@ -122,7 +122,7 @@ class TabTrayView(
}
if (!hasLoaded) {
hasLoaded = true
tray.layoutManager?.scrollToPosition(selectedBrowserTabIndex)
scrollToSelectedTab()
if (view.context.settings().accessibilityServicesEnabled) {
lifecycleScope.launch {
delay(SELECTION_DELAY.toLong())
@ -194,6 +194,7 @@ class TabTrayView(
filterTabs.invoke(filter)
updateState(view.context.components.core.store.state)
scrollToSelectedTab()
}
override fun onTabReselected(tab: TabLayout.Tab?) { /*noop*/ }
@ -225,6 +226,20 @@ class TabTrayView(
}
}
fun setTopOffset(landscape: Boolean) {
val topOffset = if (landscape) {
0
} else {
view.context.resources.getDimension(R.dimen.tab_tray_top_offset).toInt()
}
behavior.setExpandedOffset(topOffset)
}
fun dismissMenu() {
menu?.dismiss()
}
private fun toggleFabText(private: Boolean) {
if (private) {
fabView.new_tab_button.extend()
@ -235,18 +250,19 @@ class TabTrayView(
}
}
fun setTopOffset(landscape: Boolean) {
val topOffset = if (landscape) {
0
private fun scrollToSelectedTab() {
(view.tabsTray as? BrowserTabsTray)?.also { tray ->
val tabs = if (isPrivateModeSelected) {
view.context.components.core.store.state.privateTabs
} else {
view.context.resources.getDimension(R.dimen.tab_tray_top_offset).toInt()
view.context.components.core.store.state.normalTabs
}
behavior.setExpandedOffset(topOffset)
}
val selectedBrowserTabIndex = tabs
.indexOfFirst { it.id == view.context.components.core.store.state.selectedTabId }
fun dismissMenu() {
menu?.dismiss()
tray.layoutManager?.scrollToPosition(selectedBrowserTabIndex)
}
}
companion object {

Loading…
Cancel
Save