From 35266d2a317c7d728d9857ef5b8e90efcec715d4 Mon Sep 17 00:00:00 2001 From: evgeny Date: Sun, 4 Oct 2026 18:12:58 +0200 Subject: [PATCH] Verify copy through Qt keyboard action and log Android invite presentation --- .../java/com/utun/chat/ui/components/MessageBubble.kt | 8 +++++++- tools/chatgui/tests/test_invite_links.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/MessageBubble.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/MessageBubble.kt index 16fa0feb..7c26e8d6 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/MessageBubble.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/MessageBubble.kt @@ -53,6 +53,7 @@ import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.utun.chat.data.Message @@ -161,8 +162,13 @@ fun MessageBubble(message: Message, playbackState: ChatViewModel.PlaybackState = when { message.inviteGroupName != null -> { val clipboard = LocalClipboardManager.current + LaunchedEffect(message.id, message.inviteGroupName) { + LogManager.addLog("DEBUG", "PM", "invitation rendered: seq=${message.id} " + + "group_name_bytes=${message.inviteGroupName.toByteArray().size} link_bytes=${message.text.length}") + } Text(stringResource(R.string.group_invitation, message.inviteGroupName), fontSize = 17.sp, color = textColor) - Text(message.text, fontSize = 17.sp, color = Color(0xFF3390EC), maxLines = 1, overflow = TextOverflow.Ellipsis, + Text(message.text, fontSize = 17.sp, color = Color(0xFF3390EC), textDecoration = TextDecoration.Underline, + maxLines = 1, overflow = TextOverflow.Ellipsis, modifier = Modifier.fillMaxWidth().combinedClickable( onClick = { onInviteLink(message.text) }, onLongClickLabel = stringResource(R.string.copy_link), diff --git a/tools/chatgui/tests/test_invite_links.cpp b/tools/chatgui/tests/test_invite_links.cpp index eb35d8b1..bf8b7682 100644 --- a/tools/chatgui/tests/test_invite_links.cpp +++ b/tools/chatgui/tests/test_invite_links.cpp @@ -60,7 +60,7 @@ private slots: QTest::mouseRelease(view.viewport(), Qt::LeftButton, Qt::NoModifier, lastPoint); QTest::qWait(20); QCOMPARE(clicked.count(), 1); - view.copySelection(); + QTest::keyClick(&view, Qt::Key_C, Qt::ControlModifier); QCOMPARE(QApplication::clipboard()->text(), link); QCOMPARE(index.data(MsgTextRole).toString(), text); }