From ba0a325f5dc60b7a440eab5c541b70eb97717023 Mon Sep 17 00:00:00 2001 From: Konstantin Ivanov <54908981+konstantiniiv@users.noreply.github.com> Date: Fri, 28 Aug 2020 20:49:09 +0300 Subject: [PATCH] 594: Style event (#753) * #594: fix * #594: tests * Update workflow.yml --- .../agileburo/anytype/ui/page/PageFragment.kt | 63 +---------------- .../presentation/page/PageViewModel.kt | 67 +++++++++++++++++++ 2 files changed, 68 insertions(+), 62 deletions(-) diff --git a/app/src/main/java/com/agileburo/anytype/ui/page/PageFragment.kt b/app/src/main/java/com/agileburo/anytype/ui/page/PageFragment.kt index 22871203f0..26ba574852 100644 --- a/app/src/main/java/com/agileburo/anytype/ui/page/PageFragment.kt +++ b/app/src/main/java/com/agileburo/anytype/ui/page/PageFragment.kt @@ -37,15 +37,11 @@ import androidx.transition.TransitionManager import androidx.transition.TransitionSet import com.agileburo.anytype.BuildConfig import com.agileburo.anytype.R -import com.agileburo.anytype.core_ui.common.Alignment -import com.agileburo.anytype.core_ui.common.Markup import com.agileburo.anytype.core_ui.features.page.BlockAdapter import com.agileburo.anytype.core_ui.features.page.BlockDimensions import com.agileburo.anytype.core_ui.features.page.BlockView import com.agileburo.anytype.core_ui.features.page.TurnIntoActionReceiver import com.agileburo.anytype.core_ui.features.page.scrollandmove.* -import com.agileburo.anytype.core_ui.features.page.styling.StylingEvent -import com.agileburo.anytype.core_ui.features.page.styling.StylingMode import com.agileburo.anytype.core_ui.menu.DocumentPopUpMenu import com.agileburo.anytype.core_ui.model.UiBlock import com.agileburo.anytype.core_ui.reactive.clicks @@ -463,64 +459,7 @@ open class PageFragment : lifecycleScope.launch { styleToolbar.events.collect { event -> - when (event) { - is StylingEvent.Coloring.Text -> { - if (styleToolbar.mode == StylingMode.MARKUP) - vm.onMarkupTextColorAction(event.color.title) - else - vm.onToolbarTextColorAction(event.color.title) - } - is StylingEvent.Coloring.Background -> { - if (styleToolbar.mode == StylingMode.MARKUP) - vm.onMarkupBackgroundColorAction(event.color.title) - else - vm.onBlockBackgroundColorAction(event.color.title) - } - is StylingEvent.Markup.Bold -> { - vm.onBlockStyleMarkupActionClicked( - action = Markup.Type.BOLD - ) - } - is StylingEvent.Markup.Italic -> { - vm.onBlockStyleMarkupActionClicked( - action = Markup.Type.ITALIC - ) - } - is StylingEvent.Markup.StrikeThrough -> { - vm.onBlockStyleMarkupActionClicked( - action = Markup.Type.STRIKETHROUGH - ) - } - is StylingEvent.Markup.Code -> { - vm.onBlockStyleMarkupActionClicked( - action = Markup.Type.KEYBOARD - ) - } - is StylingEvent.Markup.Link -> { - vm.onBlockStyleLinkClicked() - } - is StylingEvent.Alignment.Left -> { - vm.onBlockAlignmentActionClicked( - alignment = Alignment.START - ) - } - is StylingEvent.Alignment.Center -> { - vm.onBlockAlignmentActionClicked( - alignment = Alignment.CENTER - ) - } - is StylingEvent.Alignment.Right -> { - vm.onBlockAlignmentActionClicked( - alignment = Alignment.END - ) - } - is StylingEvent.Sliding.Color -> { - vm.onStyleColorSlideClicked() - } - is StylingEvent.Sliding.Background -> { - vm.onStyleBackgroundSlideClicked() - } - } + vm.onStylingToolbarEvent(event) } } diff --git a/presentation/src/main/java/com/agileburo/anytype/presentation/page/PageViewModel.kt b/presentation/src/main/java/com/agileburo/anytype/presentation/page/PageViewModel.kt index 80e242a45f..cf50f88eab 100644 --- a/presentation/src/main/java/com/agileburo/anytype/presentation/page/PageViewModel.kt +++ b/presentation/src/main/java/com/agileburo/anytype/presentation/page/PageViewModel.kt @@ -10,6 +10,8 @@ import com.agileburo.anytype.core_ui.features.page.* import com.agileburo.anytype.core_ui.features.page.scrollandmove.ScrollAndMoveTargetDescriptor.Companion.END_RANGE import com.agileburo.anytype.core_ui.features.page.scrollandmove.ScrollAndMoveTargetDescriptor.Companion.INNER_RANGE import com.agileburo.anytype.core_ui.features.page.scrollandmove.ScrollAndMoveTargetDescriptor.Companion.START_RANGE +import com.agileburo.anytype.core_ui.features.page.styling.StylingEvent +import com.agileburo.anytype.core_ui.features.page.styling.StylingMode import com.agileburo.anytype.core_ui.model.UiBlock import com.agileburo.anytype.core_ui.state.ControlPanelState import com.agileburo.anytype.core_ui.widgets.ActionItemType @@ -158,6 +160,7 @@ class PageViewModel( } private fun proceedWithUpdatingDocumentTitle(update: String) { + viewModelScope.launch { orchestrator.proxies.intents.send( Intent.Document.UpdateTitle( @@ -827,7 +830,71 @@ class PageViewModel( } } + fun onStylingToolbarEvent(event: StylingEvent) { + val state = controlPanelViewState.value!! + when (event) { + is StylingEvent.Coloring.Text -> { + if (state.stylingToolbar.mode == StylingMode.MARKUP) + onMarkupTextColorAction(event.color.title) + else + onToolbarTextColorAction(event.color.title) + } + is StylingEvent.Coloring.Background -> { + if (state.stylingToolbar.mode == StylingMode.MARKUP) + onMarkupBackgroundColorAction(event.color.title) + else + onBlockBackgroundColorAction(event.color.title) + } + is StylingEvent.Markup.Bold -> { + onBlockStyleMarkupActionClicked( + action = Markup.Type.BOLD + ) + } + is StylingEvent.Markup.Italic -> { + onBlockStyleMarkupActionClicked( + action = Markup.Type.ITALIC + ) + } + is StylingEvent.Markup.StrikeThrough -> { + onBlockStyleMarkupActionClicked( + action = Markup.Type.STRIKETHROUGH + ) + } + is StylingEvent.Markup.Code -> { + onBlockStyleMarkupActionClicked( + action = Markup.Type.KEYBOARD + ) + } + is StylingEvent.Markup.Link -> { + onBlockStyleLinkClicked() + } + is StylingEvent.Alignment.Left -> { + onBlockAlignmentActionClicked( + alignment = Alignment.START + ) + } + is StylingEvent.Alignment.Center -> { + onBlockAlignmentActionClicked( + alignment = Alignment.CENTER + ) + } + is StylingEvent.Alignment.Right -> { + onBlockAlignmentActionClicked( + alignment = Alignment.END + ) + } + is StylingEvent.Sliding.Color -> { + onStyleColorSlideClicked() + } + is StylingEvent.Sliding.Background -> { + onStyleBackgroundSlideClicked() + } + } + } + fun onMarkupTextColorAction(color: String) { + Timber.d("STATE : ${controlPanelViewState.value}") + controlPanelInteractor.onEvent( ControlPanelMachine.Event.OnMarkupTextColorSelected )