1
0
Fork 0

For #3101 - Do not show tab selection screen for 1 tab

master
ekager 2019-06-03 17:00:08 -07:00 committed by Jeff Boek
parent 638c96bc65
commit 87f6268816
3 changed files with 28 additions and 12 deletions

View File

@ -191,16 +191,24 @@ class CreateCollectionFragment : DialogFragment(), CoroutineScope {
private fun handleBackPress(backPressFrom: SaveCollectionStep) {
when (backPressFrom) {
SaveCollectionStep.SelectTabs -> dismiss()
SaveCollectionStep.SelectCollection -> getManagedEmitter<CollectionCreationChange>().onNext(
CollectionCreationChange.StepChanged(SaveCollectionStep.SelectTabs)
)
SaveCollectionStep.NameCollection -> {
getManagedEmitter<CollectionCreationChange>()
.onNext(
CollectionCreationChange.StepChanged(
viewModel.tabCollections.getStepForCollectionsSize()
)
SaveCollectionStep.SelectCollection -> {
if (viewModel.tabs.size <= 1) dismiss() else {
getManagedEmitter<CollectionCreationChange>().onNext(
CollectionCreationChange.StepChanged(SaveCollectionStep.SelectTabs)
)
}
}
SaveCollectionStep.NameCollection -> {
if (viewModel.tabCollections.isEmpty() && viewModel.tabs.size == 1) {
dismiss()
} else {
getManagedEmitter<CollectionCreationChange>()
.onNext(
CollectionCreationChange.StepChanged(
viewModel.tabCollections.getBackStepForCollectionsSize()
)
)
}
}
SaveCollectionStep.RenameCollection -> {
dismiss()

View File

@ -16,7 +16,13 @@ class CreateCollectionViewModel : ViewModel() {
var tabCollections = listOf<TabCollection>()
var selectedTabCollection: TabCollection? = null
var snackbarAnchorView: View? = null
fun getStepForTabsAndCollectionSize(): SaveCollectionStep =
if (tabs.size > 1) SaveCollectionStep.SelectTabs else tabCollections.getStepForCollectionsSize()
}
fun List<TabCollection>.getStepForCollectionsSize(): SaveCollectionStep =
if (isEmpty()) SaveCollectionStep.NameCollection else SaveCollectionStep.SelectCollection
fun List<TabCollection>.getBackStepForCollectionsSize(): SaveCollectionStep =
if (isEmpty()) SaveCollectionStep.SelectTabs else SaveCollectionStep.SelectCollection

View File

@ -414,7 +414,8 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
}
is CollectionAction.AddTab -> {
showCollectionCreationFragment(
selectedTabCollection = action.collection
selectedTabCollection = action.collection,
step = SaveCollectionStep.SelectTabs
)
}
is CollectionAction.Rename -> {
@ -611,7 +612,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
private fun showCollectionCreationFragment(
selectedTabId: String? = null,
selectedTabCollection: TabCollection? = null,
step: SaveCollectionStep = SaveCollectionStep.SelectTabs
step: SaveCollectionStep? = null
) {
if (findNavController(this).currentDestination?.id == R.id.createCollectionFragment) return
@ -625,9 +626,10 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
val selectedTabs = tabs.find { tab -> tab.sessionId == selectedTabId }
val selectedSet = if (selectedTabs == null) mutableSetOf() else mutableSetOf(selectedTabs)
viewModel?.selectedTabs = selectedSet
viewModel?.saveCollectionStep = step
viewModel?.tabCollections = requireComponents.core.tabCollectionStorage.cachedTabCollections.reversed()
viewModel?.selectedTabCollection = selectedTabCollection
viewModel?.saveCollectionStep =
step ?: viewModel?.getStepForTabsAndCollectionSize() ?: SaveCollectionStep.SelectTabs
view?.let {
val directions = HomeFragmentDirections.actionHomeFragmentToCreateCollectionFragment()