diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/CIVoiceView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/CIVoiceView.kt index 08f297b097..5071b16dd4 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/CIVoiceView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/CIVoiceView.kt @@ -24,6 +24,8 @@ import chat.simplex.app.model.* import chat.simplex.app.ui.theme.* import chat.simplex.app.views.helpers.* +// TODO refactor https://github.com/simplex-chat/simplex-chat/pull/1451#discussion_r1033429901 + @Composable fun CIVoiceView( providedDurationSec: Int, @@ -32,7 +34,6 @@ fun CIVoiceView( sent: Boolean, hasText: Boolean, ci: ChatItem, - metaColor: Color, longClick: () -> Unit, ) { Row( @@ -62,7 +63,7 @@ fun CIVoiceView( durationText(time / 1000) } } - VoiceLayout(file, ci, metaColor, text, audioPlaying, progress, duration, brokenAudio, sent, hasText, play, pause, longClick) + VoiceLayout(file, ci, text, audioPlaying, progress, duration, brokenAudio, sent, hasText, play, pause, longClick) } else { VoiceMsgIndicator(null, false, sent, hasText, null, null, false, {}, {}, longClick) val metaReserve = if (edited) @@ -78,7 +79,6 @@ fun CIVoiceView( private fun VoiceLayout( file: CIFile, ci: ChatItem, - metaColor: Color, text: State, audioPlaying: State, progress: State, @@ -105,7 +105,7 @@ private fun VoiceLayout( Column { VoiceMsgIndicator(file, audioPlaying.value, sent, hasText, progress, duration, brokenAudio, play, pause, longClick) Box(Modifier.align(Alignment.CenterHorizontally).padding(top = 6.dp)) { - CIMetaView(ci, metaColor) + CIMetaView(ci) } } } @@ -115,7 +115,7 @@ private fun VoiceLayout( Column { VoiceMsgIndicator(file, audioPlaying.value, sent, hasText, progress, duration, brokenAudio, play, pause, longClick) Box(Modifier.align(Alignment.CenterHorizontally).padding(top = 6.dp)) { - CIMetaView(ci, metaColor) + CIMetaView(ci) } } Row(verticalAlignment = Alignment.CenterVertically) { diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/ChatItemView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/ChatItemView.kt index 16ed81cd88..077b3f4eb1 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/ChatItemView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/ChatItemView.kt @@ -70,10 +70,13 @@ fun ChatItemView( .combinedClickable(onLongClick = { showMenu.value = true }, onClick = onClick), ) { @Composable fun ContentItem() { + val mc = cItem.content.msgContent + val onLinkLongClick = { _: String -> showMenu.value = true } if (cItem.file == null && cItem.quotedItem == null && isShortEmoji(cItem.content.text)) { EmojiItemView(cItem) + } else if (mc is MsgContent.MCVoice && cItem.content.text.isEmpty() && cItem.quotedItem == null) { + CIVoiceView(mc.duration, cItem.file, cItem.meta.itemEdited, cItem.chatDir.sent, hasText = false, cItem, longClick = { onLinkLongClick("") }) } else { - val onLinkLongClick = { _: String -> showMenu.value = true } FramedItemView(cInfo, cItem, uriHandler, imageProvider, showMember = showMember, linkMode = linkMode, showMenu, receiveFile, onLinkLongClick, scrollToItem) } DropdownMenu( @@ -175,6 +178,7 @@ fun ChatItemView( is CIContent.RcvGroupFeature -> CIChatFeatureView(cItem, c.groupFeature, c.preference.enable.iconColor) is CIContent.SndGroupFeature -> CIChatFeatureView(cItem, c.groupFeature, c.preference.enable.iconColor) is CIContent.RcvChatFeatureRejected -> CIChatFeatureView(cItem, c.feature, Color.Red) + is CIContent.RcvGroupFeatureRejected -> CIChatFeatureView(cItem, c.groupFeature, Color.Red) } } } diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/FramedItemView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/FramedItemView.kt index 1851bfe1b9..945e59c115 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/FramedItemView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/FramedItemView.kt @@ -115,8 +115,7 @@ fun FramedItemView( } } - // TODO MCVoice shouldn't affect it, see https://github.com/simplex-chat/simplex-chat/pull/1451#discussion_r1033429901 - val transparentBackground = (ci.content.msgContent is MsgContent.MCImage || ci.content.msgContent is MsgContent.MCVoice) && ci.content.text.isEmpty() && ci.quotedItem == null + val transparentBackground = (ci.content.msgContent is MsgContent.MCImage) && ci.content.text.isEmpty() && ci.quotedItem == null Box(Modifier .clip(RoundedCornerShape(18.dp)) @@ -155,7 +154,7 @@ fun FramedItemView( } } is MsgContent.MCVoice -> { - CIVoiceView(mc.duration, ci.file, ci.meta.itemEdited, ci.chatDir.sent, mc.text != "" || ci.quotedItem != null, ci, metaColor, longClick = { onLinkLongClick("") }) + CIVoiceView(mc.duration, ci.file, ci.meta.itemEdited, ci.chatDir.sent, hasText = true, ci, longClick = { onLinkLongClick("") }) if (mc.text != "") { CIMarkdownText(ci, showMember, linkMode, uriHandler) } @@ -176,11 +175,8 @@ fun FramedItemView( } } } - // TODO CIMetaView shouldn't be conditional, see https://github.com/simplex-chat/simplex-chat/pull/1451#discussion_r1033429901 - if (ci.content.msgContent !is MsgContent.MCVoice || ci.content.text.isNotEmpty() || ci.quotedItem != null) { - Box(Modifier.padding(bottom = 6.dp, end = 12.dp)) { - CIMetaView(ci, metaColor) - } + Box(Modifier.padding(bottom = 6.dp, end = 12.dp)) { + CIMetaView(ci, metaColor) } } }