1
0
Fork 0

For #1573 - Long pressing tab selects that tab in save collections

master
Emily Kager 2019-04-29 10:48:25 -07:00 committed by Emily Kager
parent 902a561279
commit 1041500869
6 changed files with 31 additions and 11 deletions

View File

@ -26,12 +26,23 @@ class CreateCollectionFragment : DialogFragment() {
setStyle(DialogFragment.STYLE_NO_TITLE, R.style.CreateCollectionDialogStyle) setStyle(DialogFragment.STYLE_NO_TITLE, R.style.CreateCollectionDialogStyle)
} }
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_create_collection, container, false) val view = inflater.inflate(R.layout.fragment_create_collection, container, false)
val viewModel = activity?.run {
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
}
val tabs = viewModel!!.tabs
val selectedTabs = viewModel.selectedTabs
collectionCreationComponent = CollectionCreationComponent( collectionCreationComponent = CollectionCreationComponent(
view.create_collection_wrapper, view.create_collection_wrapper,
ActionBusFactory.get(this) ActionBusFactory.get(this),
CollectionCreationState(tabs = tabs, selectedTabs = selectedTabs)
) )
return view return view
@ -39,12 +50,6 @@ class CreateCollectionFragment : DialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
val tabs = activity?.run {
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
}!!.tabs
getManagedEmitter<CollectionCreationChange>().onNext(CollectionCreationChange.TabListChange(tabs))
getAutoDisposeObservable<CollectionCreationAction>().subscribe { getAutoDisposeObservable<CollectionCreationAction>().subscribe {
when (it) { when (it) {
is CollectionCreationAction.Close -> dismiss() is CollectionCreationAction.Close -> dismiss()

View File

@ -7,5 +7,6 @@ package org.mozilla.fenix.collections
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
class CreateCollectionViewModel : ViewModel() { class CreateCollectionViewModel : ViewModel() {
var selectedTabs = setOf<Tab>()
var tabs = listOf<Tab>() var tabs = listOf<Tab>()
} }

View File

@ -188,8 +188,17 @@ class HomeFragment : Fragment(), CoroutineScope {
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java) ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
}!!.tabs = tabs }!!.tabs = tabs
val selectedTabs = tabs.find { tab -> tab.sessionId == action.selectedTabSessionId }
val selectedSet = if (selectedTabs == null) setOf() else setOf(selectedTabs)
activity?.run {
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
}!!.selectedTabs = selectedSet
CreateCollectionFragment() CreateCollectionFragment()
.show(requireActivity().supportFragmentManager, CreateCollectionFragment.createCollectionTag) .show(
requireActivity().supportFragmentManager,
CreateCollectionFragment.createCollectionTag
)
} }
is TabAction.MenuTapped -> { is TabAction.MenuTapped -> {
val isPrivate = (activity as HomeActivity).browsingModeManager.isPrivate val isPrivate = (activity as HomeActivity).browsingModeManager.isPrivate

View File

@ -60,7 +60,7 @@ data class SessionControlState(
) : ViewState ) : ViewState
sealed class TabAction : Action { sealed class TabAction : Action {
object SaveTabGroup : TabAction() data class SaveTabGroup(val selectedTabSessionId: String?) : TabAction()
object MenuTapped : TabAction() object MenuTapped : TabAction()
object Add : TabAction() object Add : TabAction()
data class CloseAll(val private: Boolean) : TabAction() data class CloseAll(val private: Boolean) : TabAction()

View File

@ -20,7 +20,7 @@ class SaveTabGroupViewHolder(
init { init {
view.save_tab_group_button.setOnClickListener { view.save_tab_group_button.setOnClickListener {
actionEmitter.onNext(TabAction.SaveTabGroup) actionEmitter.onNext(TabAction.SaveTabGroup(selectedTabSessionId = null))
} }
} }

View File

@ -55,6 +55,11 @@ class TabViewHolder(
actionEmitter.onNext(TabAction.Select(tab?.sessionId!!)) actionEmitter.onNext(TabAction.Select(tab?.sessionId!!))
} }
item_tab.setOnLongClickListener {
actionEmitter.onNext(TabAction.SaveTabGroup(tab?.sessionId!!))
true
}
close_tab_button?.run { close_tab_button?.run {
increaseTapArea(buttonIncreaseDps) increaseTapArea(buttonIncreaseDps)
setOnClickListener { setOnClickListener {