diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayViewHolder.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayViewHolder.kt index 499dcf5c8..e0c443526 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayViewHolder.kt @@ -38,6 +38,7 @@ import org.mozilla.fenix.ext.toShortUrl import org.mozilla.fenix.selection.SelectionHolder import org.mozilla.fenix.selection.SelectionInteractor import org.mozilla.fenix.tabstray.browser.BrowserTrayInteractor +import org.mozilla.fenix.tabstray.ext.isSelect /** * A RecyclerView ViewHolder implementation for "tab" items. @@ -206,7 +207,7 @@ abstract class TabsTrayViewHolder( itemView.setOnClickListener { val selected = holder.selectedItems when { - selected.isEmpty() -> interactor.open(item) + selected.isEmpty() && trayStore.state.mode.isSelect().not() -> interactor.open(item) item in selected -> interactor.deselect(item) else -> interactor.select(item) } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabsTrayState.kt b/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabsTrayState.kt new file mode 100644 index 000000000..96434cc5d --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabsTrayState.kt @@ -0,0 +1,12 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.tabstray.ext + +import org.mozilla.fenix.tabstray.TabsTrayState.Mode + +/** + * A helper to check if we're in [Mode.Select] mode. + */ +fun Mode.isSelect() = this is Mode.Select