diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayStore.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayStore.kt index 7a847c8eca..87eea7c7bf 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayStore.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayStore.kt @@ -170,7 +170,7 @@ internal object TabsTrayReducer { is TabsTrayAction.AddSelectTab -> state.copy(mode = TabsTrayState.Mode.Select(state.mode.selectedTabs + action.tab)) is TabsTrayAction.RemoveSelectTab -> { - val selected = state.mode.selectedTabs - action.tab + val selected = state.mode.selectedTabs.filter { it.id != action.tab.id }.toSet() state.copy( mode = if (selected.isEmpty()) { TabsTrayState.Mode.Normal diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/AbstractBrowserTabViewHolder.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/AbstractBrowserTabViewHolder.kt index baf13de1c3..76f06c0064 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/AbstractBrowserTabViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/AbstractBrowserTabViewHolder.kt @@ -223,7 +223,7 @@ abstract class AbstractBrowserTabViewHolder( selected.isEmpty() && trayStore.state.mode.isSelect().not() -> { interactor.onTabSelected(item, featureName) } - item in selected -> interactor.deselect(item) + item.id in selected.map { item -> item.id } -> interactor.deselect(item) else -> interactor.select(item) } } 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 6b5d57019e..c961c6bd2f 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 @@ -91,7 +91,10 @@ class BrowserTabsAdapter( } selectionHolder?.let { - holder.showTabIsMultiSelectEnabled(selectedMaskView, it.selectedItems.contains(tab)) + holder.showTabIsMultiSelectEnabled( + selectedMaskView, + (it.selectedItems.map { item -> item.id }).contains(tab.id) + ) } } } @@ -129,7 +132,10 @@ class BrowserTabsAdapter( selectedMaskView = listBinding.checkboxInclude.selectedMask } } - holder.showTabIsMultiSelectEnabled(selectedMaskView, it.selectedItems.contains(holder.tab)) + holder.showTabIsMultiSelectEnabled( + selectedMaskView, + it.selectedItems.map { item -> item.id }.contains(tab.id) + ) } }