From 1aa3d7e1ad06f4a03e9d2ed4f39970e95cf3e187 Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Thu, 28 Feb 2019 15:03:28 -0800 Subject: [PATCH] For #673 - Pulls out the session overflow action --- .../java/org/mozilla/fenix/home/HomeFragment.kt | 10 ++++++++++ .../sessions/CurrentSessionBottomSheetFragment.kt | 1 + .../org/mozilla/fenix/home/tabs/TabsComponent.kt | 1 + .../java/org/mozilla/fenix/home/tabs/TabsUIView.kt | 14 +------------- 4 files changed, 13 insertions(+), 13 deletions(-) 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 05279743b..6693792c9 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -31,6 +31,7 @@ import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.home.sessions.ArchivedSession +import org.mozilla.fenix.home.sessions.CurrentSessionBottomSheetFragment import org.mozilla.fenix.home.sessions.SessionsAction import org.mozilla.fenix.home.sessions.SessionsChange import org.mozilla.fenix.home.sessions.SessionsComponent @@ -179,6 +180,7 @@ class HomeFragment : Fragment() { is TabsAction.Archive -> { requireComponents.core.sessionStorage.archive(requireComponents.core.sessionManager) } + is TabsAction.MenuTapped -> openSessionMenu() is TabsAction.Select -> { val session = requireComponents.core.sessionManager.findSessionById(it.sessionId) requireComponents.core.sessionManager.select(session!!) @@ -315,6 +317,14 @@ class HomeFragment : Fragment() { ) } + private fun openSessionMenu() { + CurrentSessionBottomSheetFragment().show( + requireActivity().supportFragmentManager, + CurrentSessionBottomSheetFragment.overflowFragmentTag + + ) + } + companion object { const val addTabButtonIncreaseDps = 8 const val overflowButtonIncreaseDps = 8 diff --git a/app/src/main/java/org/mozilla/fenix/home/sessions/CurrentSessionBottomSheetFragment.kt b/app/src/main/java/org/mozilla/fenix/home/sessions/CurrentSessionBottomSheetFragment.kt index 868a5de61..439a1a526 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessions/CurrentSessionBottomSheetFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessions/CurrentSessionBottomSheetFragment.kt @@ -46,5 +46,6 @@ class CurrentSessionBottomSheetFragment : BottomSheetDialogFragment(), LayoutCon companion object { const val maxTitleLength = 20 + const val overflowFragmentTag = "sessionOverflow" } } diff --git a/app/src/main/java/org/mozilla/fenix/home/tabs/TabsComponent.kt b/app/src/main/java/org/mozilla/fenix/home/tabs/TabsComponent.kt index a74713a3b..c11892c8e 100644 --- a/app/src/main/java/org/mozilla/fenix/home/tabs/TabsComponent.kt +++ b/app/src/main/java/org/mozilla/fenix/home/tabs/TabsComponent.kt @@ -49,6 +49,7 @@ fun Session.toSessionViewState(selected: Boolean): SessionViewState { sealed class TabsAction : Action { object Archive : TabsAction() + object MenuTapped : TabsAction() data class CloseAll(val private: Boolean) : TabsAction() data class Select(val sessionId: String) : TabsAction() data class Close(val sessionId: String) : TabsAction() diff --git a/app/src/main/java/org/mozilla/fenix/home/tabs/TabsUIView.kt b/app/src/main/java/org/mozilla/fenix/home/tabs/TabsUIView.kt index 021591e56..95af8b0db 100644 --- a/app/src/main/java/org/mozilla/fenix/home/tabs/TabsUIView.kt +++ b/app/src/main/java/org/mozilla/fenix/home/tabs/TabsUIView.kt @@ -4,12 +4,10 @@ package org.mozilla.fenix.home.tabs -import android.app.Activity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.content.ContextCompat -import androidx.fragment.app.FragmentActivity import androidx.navigation.Navigation import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager @@ -21,7 +19,6 @@ import org.mozilla.fenix.R import org.mozilla.fenix.ext.increaseTapArea import org.mozilla.fenix.home.HomeFragment import org.mozilla.fenix.home.HomeFragmentDirections -import org.mozilla.fenix.home.sessions.CurrentSessionBottomSheetFragment import org.mozilla.fenix.mvi.UIView class TabsUIView( @@ -51,12 +48,7 @@ class TabsUIView( } tabs_overflow_button.increaseTapArea(HomeFragment.overflowButtonIncreaseDps) tabs_overflow_button.setOnClickListener { - if (view.context as? Activity != null) { - CurrentSessionBottomSheetFragment().show( - (view.context as FragmentActivity).supportFragmentManager, - overflowFragmentTag - ) - } + actionEmitter.onNext(TabsAction.MenuTapped) } save_session_button_text.apply { @@ -85,8 +77,4 @@ class TabsUIView( sessionButton.visibility = visibility } } - - companion object { - const val overflowFragmentTag = "current session overflow" - } }