diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/BrowserTabsAdapter.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/BrowserTabsAdapter.kt index a4e47a5a70..1bb5d03e2c 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/BrowserTabsAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/BrowserTabsAdapter.kt @@ -106,16 +106,14 @@ class BrowserTabsAdapter( * display itself. */ override fun onBindViewHolder(holder: AbstractBrowserTabViewHolder, position: Int, payloads: List) { - val tabs = tabs ?: return - - if (tabs.list.isEmpty()) return + if (currentList.isEmpty()) return if (payloads.isEmpty()) { onBindViewHolder(holder, position) return } - if (position == tabs.selectedIndex) { + if (position == selectedIndex) { if (payloads.contains(PAYLOAD_HIGHLIGHT_SELECTED_ITEM)) { holder.updateSelectedTabIndicator(true) } else if (payloads.contains(PAYLOAD_DONT_HIGHLIGHT_SELECTED_ITEM)) { diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/TabsAdapter.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/TabsAdapter.kt index 6533009f76..7c2c29eee5 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/TabsAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/TabsAdapter.kt @@ -30,12 +30,12 @@ abstract class TabsAdapter( delegate: Observable = ObserverRegistry() ) : ListAdapter(DiffCallback), TabsTray, Observable by delegate { - protected var tabs: Tabs? = null + protected var selectedIndex: Int? = null protected var styling: TabsTrayStyling = TabsTrayStyling() @CallSuper override fun updateTabs(tabs: Tabs) { - this.tabs = tabs + this.selectedIndex = tabs.selectedIndex submitList(tabs.list) @@ -44,13 +44,10 @@ abstract class TabsAdapter( @CallSuper override fun onBindViewHolder(holder: T, position: Int) { - val tabs = tabs ?: return - - holder.bind(tabs.list[position], isTabSelected(tabs, position), styling, this) + holder.bind(getItem(position), selectedIndex == position, styling, this) } - final override fun isTabSelected(tabs: Tabs, position: Int): Boolean = - tabs.selectedIndex == position + override fun isTabSelected(tabs: Tabs, position: Int): Boolean = false private object DiffCallback : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: Tab, newItem: Tab): Boolean {