From 97f8d1e12f5f6a255b86a051804d18719bc86899 Mon Sep 17 00:00:00 2001 From: Roger Yang Date: Fri, 8 Oct 2021 16:27:11 -0400 Subject: [PATCH] Issue #21686: Stop using internally stored tabs list in adapters --- .../fenix/tabstray/browser/BrowserTabsAdapter.kt | 6 ++---- .../org/mozilla/fenix/tabstray/browser/TabsAdapter.kt | 11 ++++------- 2 files changed, 6 insertions(+), 11 deletions(-) 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 {