From 009e25b84670539c87dd7dd9df28b97d02895392 Mon Sep 17 00:00:00 2001 From: Eugene Date: Sun, 9 Aug 2026 12:33:01 +0300 Subject: [PATCH] extend regex, up version, fix enter on android tv --- apps/vbox/client/androidApp/build.gradle.kts | 2 +- .../shadowsparky/vbox/shared/data/chat/MovieTextParser.kt | 8 ++++---- .../ru/shadowsparky/chat/presentation/ChatScreen.kt | 5 +++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/vbox/client/androidApp/build.gradle.kts b/apps/vbox/client/androidApp/build.gradle.kts index 5dd3dd9..b36a2e1 100644 --- a/apps/vbox/client/androidApp/build.gradle.kts +++ b/apps/vbox/client/androidApp/build.gradle.kts @@ -7,7 +7,7 @@ plugins { alias(libs.plugins.convention.ktor.client) } -val appVersion = "1.25.2" +val appVersion = "1.25.3" android { buildFeatures { buildConfig = true } diff --git a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/data/chat/MovieTextParser.kt b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/data/chat/MovieTextParser.kt index 46baf8f..f3ab880 100644 --- a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/data/chat/MovieTextParser.kt +++ b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/data/chat/MovieTextParser.kt @@ -6,7 +6,7 @@ import ru.shadowsparky.chat.domain.TextToken @Factory class MovieTextParser : ChatTextParser { - private val regex = Regex("«(.*?)»|\"(.*?)\"") + private val regex = Regex("«(.*?)»|\"(.*?)\"|\\*\\*(.*?)\\*\\*") override fun parse(content: String): List { val tokens = mutableListOf() @@ -16,11 +16,11 @@ class MovieTextParser : ChatTextParser { tokens.add(TextToken.Plain(content.substring(lastIndex, matchResult.range.first))) } val movieTitle = matchResult.groupValues[1].takeIf { it.isNotEmpty() } - ?: matchResult.groupValues[2] - tokens.add(TextToken.Link(text = movieTitle)) + ?: matchResult.groupValues[2].takeIf { it.isNotEmpty() } + ?: matchResult.groupValues[3] + tokens.add(TextToken.Link(movieTitle)) lastIndex = matchResult.range.last + 1 } - if (lastIndex < content.length) { tokens.add(TextToken.Plain(content.substring(lastIndex))) } diff --git a/feature/chat/chat-client/src/commonMain/kotlin/ru/shadowsparky/chat/presentation/ChatScreen.kt b/feature/chat/chat-client/src/commonMain/kotlin/ru/shadowsparky/chat/presentation/ChatScreen.kt index 7ed5f23..4888277 100644 --- a/feature/chat/chat-client/src/commonMain/kotlin/ru/shadowsparky/chat/presentation/ChatScreen.kt +++ b/feature/chat/chat-client/src/commonMain/kotlin/ru/shadowsparky/chat/presentation/ChatScreen.kt @@ -247,7 +247,8 @@ private fun MessageBubble( boxModifier = boxModifier.focusBorder(false).onKeyEvent { if (it.type == KeyEventType.KeyDown) { when (it.key) { - Key.Enter -> dialog = true + Key.Enter, + Key.DirectionCenter -> dialog = true else -> onKeyEvent(it) } } @@ -362,7 +363,7 @@ private fun ScrollableMessage( true } - Key.Enter -> { + Key.Enter, Key.DirectionCenter -> { onEnter() true }