From 1e09d50fd75cd1837527db1d569aae48d56fb5d7 Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Fri, 16 Apr 2021 15:28:14 -0400 Subject: [PATCH] No issue: Fix the initial select mode check --- .../org/mozilla/fenix/tabstray/TabsTrayViewHolder.kt | 3 ++- .../org/mozilla/fenix/tabstray/ext/TabsTrayState.kt | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/org/mozilla/fenix/tabstray/ext/TabsTrayState.kt 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