From 70185ae86fe2b01ebdf6051e17fbc9f2cf589437 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Wed, 29 Jul 2026 19:40:21 +0200 Subject: [PATCH] Refine private chat header actions --- .../java/com/bitchat/android/ui/ChatHeader.kt | 13 ++++++++ .../bitchat/android/ui/MeshPeerListSheet.kt | 33 +++++++++---------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt b/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt index f8820e91..6b76a2bf 100644 --- a/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt +++ b/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt @@ -475,6 +475,19 @@ fun ConversationHeaderAction( content = content ) +/** A read-only status slot matching the footprint of [ConversationHeaderAction]. */ +@Composable +fun ConversationHeaderStatus( + modifier: Modifier = Modifier, + content: @Composable () -> Unit +) { + Box( + modifier = modifier.size(HeaderTapTarget), + contentAlignment = Alignment.Center, + content = { content() } + ) +} + @Composable fun NicknameEditor( value: String, diff --git a/app/src/main/java/com/bitchat/android/ui/MeshPeerListSheet.kt b/app/src/main/java/com/bitchat/android/ui/MeshPeerListSheet.kt index d4b4babc..c8b3fe5e 100644 --- a/app/src/main/java/com/bitchat/android/ui/MeshPeerListSheet.kt +++ b/app/src/main/java/com/bitchat/android/ui/MeshPeerListSheet.kt @@ -2054,8 +2054,21 @@ fun PrivateChatSheet( ) } - // Encryption state, and the verification badge that qualifies it. Both are - // read-only for Nostr peers, which have no Noise session at all. + if (isVerified) { + ConversationHeaderStatus { + Icon( + imageVector = Icons.Filled.Verified, + contentDescription = stringResource( + R.string.fingerprint_verified_label + ), + modifier = Modifier.size(HeaderIconSize), + tint = colorScheme.primary + ) + } + } + + // Keep the lock nearest the close action: from right to left the security + // cluster reads close, encryption, verification, then favorite. if (!isNostrPeer && !isNostrReachableFavorite) { ConversationHeaderAction( onClick = { viewModel.showSecurityVerificationSheet() }, @@ -2070,22 +2083,6 @@ fun PrivateChatSheet( } } - if (isVerified) { - Box( - modifier = Modifier.size(HeaderIconSize), - contentAlignment = Alignment.Center - ) { - Icon( - imageVector = Icons.Filled.Verified, - contentDescription = stringResource( - R.string.fingerprint_verified_label - ), - modifier = Modifier.size(HeaderIconSize), - tint = colorScheme.primary - ) - } - } - val dismiss = LocalSheetDismiss.current CloseButton(onClick = { dismiss?.invoke() ?: onDismiss() }) }