For #673 - Pulls out the session overflow action
parent
e9e74122b5
commit
1aa3d7e1ad
|
@ -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
|
||||
|
|
|
@ -46,5 +46,6 @@ class CurrentSessionBottomSheetFragment : BottomSheetDialogFragment(), LayoutCon
|
|||
|
||||
companion object {
|
||||
const val maxTitleLength = 20
|
||||
const val overflowFragmentTag = "sessionOverflow"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue