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)
}
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 viewModel = activity?.run {
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
}
val tabs = viewModel!!.tabs
val selectedTabs = viewModel.selectedTabs
collectionCreationComponent = CollectionCreationComponent(
view.create_collection_wrapper,
ActionBusFactory.get(this)
ActionBusFactory.get(this),
CollectionCreationState(tabs = tabs, selectedTabs = selectedTabs)
)
return view
@ -39,12 +50,6 @@ class CreateCollectionFragment : DialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
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 {
when (it) {
is CollectionCreationAction.Close -> dismiss()

View File

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

View File

@ -188,8 +188,17 @@ class HomeFragment : Fragment(), CoroutineScope {
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
}!!.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()
.show(requireActivity().supportFragmentManager, CreateCollectionFragment.createCollectionTag)
.show(
requireActivity().supportFragmentManager,
CreateCollectionFragment.createCollectionTag
)
}
is TabAction.MenuTapped -> {
val isPrivate = (activity as HomeActivity).browsingModeManager.isPrivate

View File

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

View File

@ -20,7 +20,7 @@ class SaveTabGroupViewHolder(
init {
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!!))
}
item_tab.setOnLongClickListener {
actionEmitter.onNext(TabAction.SaveTabGroup(tab?.sessionId!!))
true
}
close_tab_button?.run {
increaseTapArea(buttonIncreaseDps)
setOnClickListener {