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)
|
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()
|
||||||
|
|
|
@ -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>()
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Loading…
Reference in New Issue