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

#594: move style config to core_ui + tests (#743)

This commit is contained in:
Konstantin Ivanov 2020-08-28 12:52:33 +03:00 committed by GitHub
parent ecd84e2b38
commit b04fe251c7
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 194 additions and 111 deletions

View file

@ -0,0 +1,20 @@
package com.agileburo.anytype.core_ui.model
import com.agileburo.anytype.core_ui.common.Alignment
import com.agileburo.anytype.core_ui.common.Markup
import com.agileburo.anytype.core_ui.features.page.styling.StylingType
data class StyleConfig(
val visibleTypes: List<StylingType>,
val enabledMarkup: List<Markup.Type>,
val enabledAlignment: List<Alignment>
) {
companion object {
fun emptyState() = StyleConfig(
visibleTypes = emptyList(),
enabledMarkup = emptyList(),
enabledAlignment = emptyList()
)
}
}

View file

@ -1,24 +1,11 @@
package com.agileburo.anytype.presentation.page.editor
import com.agileburo.anytype.core_ui.common.Alignment
import com.agileburo.anytype.core_ui.common.Markup
import com.agileburo.anytype.core_ui.features.page.styling.StylingType
import com.agileburo.anytype.core_ui.model.StyleConfig
import com.agileburo.anytype.domain.block.model.Block
data class StyleConfig(
val visibleTypes: List<StylingType>,
val enabledMarkup: List<Block.Content.Text.Mark.Type>,
val enabledAlignment: List<Alignment>
) {
companion object {
fun emptyState() = StyleConfig(
visibleTypes = emptyList(),
enabledMarkup = emptyList(),
enabledAlignment = emptyList()
)
}
}
fun Block.getStyleConfig(focus: Boolean?, selection: IntRange?): StyleConfig =
when (val cnt = content) {
is Block.Content.Text -> cnt.getTextStyleConfig(focus, selection)
@ -81,7 +68,7 @@ fun Block.Content.Text.getTextStyleConfig(focus: Boolean?, selection: IntRange?)
}
fun Block.Content.Text.getStyleConfig(selection: IntRange? = null): StyleConfig {
return if (selection == null || selection.first == selection.last) {
return if (selection == null || selection.first >= selection.last) {
getBlockStyle(style)
} else {
getMarkupStyle(style)
@ -97,11 +84,11 @@ fun Block.Content.Text.getBlockStyle(style: Block.Content.Text.Style) = when (st
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.CENTER, Alignment.END)
)
@ -115,10 +102,10 @@ fun Block.Content.Text.getBlockStyle(style: Block.Content.Text.Style) = when (st
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.CENTER, Alignment.END)
)
@ -138,11 +125,11 @@ fun Block.Content.Text.getBlockStyle(style: Block.Content.Text.Style) = when (st
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.END)
)
@ -163,11 +150,11 @@ fun Block.Content.Text.getBlockStyle(style: Block.Content.Text.Style) = when (st
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = emptyList()
)
@ -183,11 +170,11 @@ fun Block.Content.Text.getMarkupStyle(style: Block.Content.Text.Style) = when (s
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = emptyList()
)
@ -201,10 +188,10 @@ fun Block.Content.Text.getMarkupStyle(style: Block.Content.Text.Style) = when (s
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = emptyList()
)
@ -224,11 +211,11 @@ fun Block.Content.Text.getMarkupStyle(style: Block.Content.Text.Style) = when (s
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = emptyList()
)
@ -249,11 +236,11 @@ fun Block.Content.Text.getMarkupStyle(style: Block.Content.Text.Style) = when (s
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = emptyList()
)

View file

@ -2,7 +2,9 @@ package com.agileburo.anytype.presentation.page.editor
import MockDataFactory
import com.agileburo.anytype.core_ui.common.Alignment
import com.agileburo.anytype.core_ui.common.Markup
import com.agileburo.anytype.core_ui.features.page.styling.StylingType
import com.agileburo.anytype.core_ui.model.StyleConfig
import com.agileburo.anytype.domain.block.model.Block
import org.junit.Assert.assertEquals
import org.junit.Test
@ -426,11 +428,11 @@ class StyleConfigKtTest {
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.CENTER, Alignment.END)
)
@ -463,11 +465,85 @@ class StyleConfigKtTest {
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.CENTER, Alignment.END)
)
assertEquals(expected, result)
}
@Test
fun `should return style config when block type paragraph and range is IntRange EMPTY`() {
val child = MockDataFactory.randomUuid()
val given = Block(
id = child,
fields = Block.Fields(emptyMap()),
content = Block.Content.Text(
style = Block.Content.Text.Style.P,
marks = listOf(),
text = "test",
isChecked = null,
backgroundColor = null,
color = null,
align = null
),
children = emptyList()
)
val result = given.getStyleConfig(focus = true, selection = IntRange.EMPTY)
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.CENTER, Alignment.END)
)
assertEquals(expected, result)
}
@Test
fun `should return style config when block type paragraph and range first bigger then last`() {
val child = MockDataFactory.randomUuid()
val given = Block(
id = child,
fields = Block.Fields(emptyMap()),
content = Block.Content.Text(
style = Block.Content.Text.Style.P,
marks = listOf(),
text = "test",
isChecked = null,
backgroundColor = null,
color = null,
align = null
),
children = emptyList()
)
val result = given.getStyleConfig(focus = true, selection = IntRange(10, 1))
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.CENTER, Alignment.END)
)
@ -500,11 +576,11 @@ class StyleConfigKtTest {
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = emptyList()
)
@ -537,10 +613,10 @@ class StyleConfigKtTest {
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.CENTER, Alignment.END)
)
@ -573,10 +649,10 @@ class StyleConfigKtTest {
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.CENTER, Alignment.END)
)
@ -609,10 +685,10 @@ class StyleConfigKtTest {
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = emptyList()
)
@ -645,11 +721,11 @@ class StyleConfigKtTest {
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf()
)
@ -682,11 +758,11 @@ class StyleConfigKtTest {
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf()
)
@ -719,11 +795,11 @@ class StyleConfigKtTest {
val expected = StyleConfig(
visibleTypes = listOf(StylingType.STYLE, StylingType.TEXT_COLOR, StylingType.BACKGROUND),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = emptyList()
)
@ -852,11 +928,11 @@ class StyleConfigKtTest {
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.END)
)
@ -893,11 +969,11 @@ class StyleConfigKtTest {
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf(Alignment.START, Alignment.END)
)
@ -933,11 +1009,11 @@ class StyleConfigKtTest {
StylingType.BACKGROUND
),
enabledMarkup = listOf(
Block.Content.Text.Mark.Type.BOLD,
Block.Content.Text.Mark.Type.ITALIC,
Block.Content.Text.Mark.Type.STRIKETHROUGH,
Block.Content.Text.Mark.Type.KEYBOARD,
Block.Content.Text.Mark.Type.LINK
Markup.Type.BOLD,
Markup.Type.ITALIC,
Markup.Type.STRIKETHROUGH,
Markup.Type.KEYBOARD,
Markup.Type.LINK
),
enabledAlignment = listOf()
)