1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-10 01:51:05 +09:00

594: Style event (#753)

* #594: fix

* #594: tests

* Update workflow.yml
This commit is contained in:
Konstantin Ivanov 2020-08-28 20:49:09 +03:00 committed by GitHub
parent aee92c620e
commit ba0a325f5d
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 68 additions and 62 deletions

View file

@ -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)
}
}

View file

@ -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
)