diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index 6693792c97..16f3d8c634 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -54,6 +54,7 @@ fun SessionBundleStorage.archive(sessionManager: SessionManager) { new() } +@SuppressWarnings("TooManyFunctions") class HomeFragment : Fragment() { private val bus = ActionBusFactory.get(this) private var sessionObserver: SessionManager.Observer? = null @@ -210,6 +211,7 @@ class HomeFragment : Fragment() { is SessionsAction.Delete -> { requireComponents.core.sessionStorage.remove(it.archivedSession.bundle) } + is SessionsAction.MenuTapped -> openSessionMenu() } } } diff --git a/app/src/main/java/org/mozilla/fenix/home/sessions/SessionItemMenu.kt b/app/src/main/java/org/mozilla/fenix/home/sessions/SessionItemMenu.kt deleted file mode 100644 index 54704ef458..0000000000 --- a/app/src/main/java/org/mozilla/fenix/home/sessions/SessionItemMenu.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* 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.home.sessions - -import android.content.Context -import mozilla.components.browser.menu.BrowserMenuBuilder -import mozilla.components.browser.menu.item.SimpleBrowserMenuItem -import org.mozilla.fenix.R - -class SessionItemMenu( - private val context: Context, - private val onItemTapped: (Item) -> Unit = {} -) { - sealed class Item { - object Delete : Item() - } - - val menuBuilder by lazy { BrowserMenuBuilder(menuItems) } - - private val menuItems by lazy { - listOf( - SimpleBrowserMenuItem( - context.getString(R.string.session_item_delete) - ) { - onItemTapped.invoke(Item.Delete) - } - ) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/home/sessions/SessionsAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/sessions/SessionsAdapter.kt index f2baeba85e..b2b062534a 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessions/SessionsAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessions/SessionsAdapter.kt @@ -94,17 +94,14 @@ class SessionsAdapter( override val containerView: View? = view ) : RecyclerView.ViewHolder(view), LayoutContainer { private var session: ArchivedSession? = null - private lateinit var sessionMenu: SessionItemMenu init { - setupMenu() - session_item.setOnClickListener { session?.apply { actionEmitter.onNext(SessionsAction.Select(this)) } } session_card_overflow_button.setOnClickListener { - sessionMenu.menuBuilder.build(itemView.context).show(it) + session?.apply { actionEmitter.onNext(SessionsAction.MenuTapped(this)) } } } @@ -122,16 +119,6 @@ class SessionsAdapter( } else { "" } } - private fun setupMenu() { - sessionMenu = SessionItemMenu(itemView.context) { - if (it is SessionItemMenu.Item.Delete) { - session?.apply { - actionEmitter.onNext(SessionsAction.Delete(this)) - } - } - } - } - companion object { private val availableColors = listOf( R.color.photonBlue40, R.color.photonGreen50, R.color.photonYellow50, R.color.photonOrange50, diff --git a/app/src/main/java/org/mozilla/fenix/home/sessions/SessionsComponent.kt b/app/src/main/java/org/mozilla/fenix/home/sessions/SessionsComponent.kt index c02ae6a979..c802700101 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessions/SessionsComponent.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessions/SessionsComponent.kt @@ -115,6 +115,7 @@ data class SessionsState(val archivedSessions: List) : ViewStat sealed class SessionsAction : Action { data class Select(val archivedSession: ArchivedSession) : SessionsAction() data class Delete(val archivedSession: ArchivedSession) : SessionsAction() + data class MenuTapped(val archivedSession: ArchivedSession) : SessionsAction() } sealed class SessionsChange : Change {