For #1573 - Long pressing tab selects that tab in save collections
parent
902a561279
commit
1041500869
|
@ -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()
|
||||
|
|
|
@ -7,5 +7,6 @@ package org.mozilla.fenix.collections
|
|||
import androidx.lifecycle.ViewModel
|
||||
|
||||
class CreateCollectionViewModel : ViewModel() {
|
||||
var selectedTabs = setOf<Tab>()
|
||||
var tabs = listOf<Tab>()
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -20,7 +20,7 @@ class SaveTabGroupViewHolder(
|
|||
|
||||
init {
|
||||
view.save_tab_group_button.setOnClickListener {
|
||||
actionEmitter.onNext(TabAction.SaveTabGroup)
|
||||
actionEmitter.onNext(TabAction.SaveTabGroup(selectedTabSessionId = null))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue