From 83da8f3b1b1877762df339fa4e01be0c87de164b Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 12 Jul 2025 02:34:56 +0200 Subject: [PATCH 1/6] input --- .../java/com/bitchat/android/ui/ChatHeader.kt | 13 ++++++++++-- .../com/bitchat/android/ui/InputComponents.kt | 20 ++++++++----------- .../bitchat/android/ui/SidebarComponents.kt | 2 +- 3 files changed, 20 insertions(+), 15 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 e76dba4c..f7b85f0e 100644 --- a/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt +++ b/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt @@ -278,7 +278,15 @@ private fun ChannelHeader( horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically ) { - IconButton(onClick = onBackClick) { + // Use same back button style as DM header (Button instead of IconButton) + Button( + onClick = onBackClick, + colors = ButtonDefaults.buttonColors( + containerColor = Color.Transparent, + contentColor = colorScheme.primary + ), + contentPadding = PaddingValues(horizontal = 12.dp, vertical = 4.dp) + ) { Row( verticalAlignment = Alignment.CenterVertically ) { @@ -299,10 +307,11 @@ private fun ChannelHeader( Spacer(modifier = Modifier.weight(1f)) + // Centered title with orange color to match DM input field Text( text = "channel: $channel", style = MaterialTheme.typography.titleMedium, - color = Color(0xFF0080FF), // Blue + color = Color(0xFFFF8C00), // Orange to match input field modifier = Modifier.clickable { onSidebarClick() } ) diff --git a/app/src/main/java/com/bitchat/android/ui/InputComponents.kt b/app/src/main/java/com/bitchat/android/ui/InputComponents.kt index cc25dc4f..e7706218 100644 --- a/app/src/main/java/com/bitchat/android/ui/InputComponents.kt +++ b/app/src/main/java/com/bitchat/android/ui/InputComponents.kt @@ -44,17 +44,13 @@ fun MessageInput( modifier = modifier.padding(horizontal = 12.dp, vertical = 8.dp), // Reduced padding verticalAlignment = Alignment.CenterVertically ) { - // Fixed: Remove arrow from private message input + // Remove arrow from both private and channel inputs to match DM style Text( - text = when { - selectedPrivatePeer != null -> "<@$nickname>" // Removed arrow for private - currentChannel != null -> "<@$nickname> →" // Keep arrow for channels - else -> "<@$nickname>" - }, + text = "<@$nickname>", // No arrow for both private and channel style = MaterialTheme.typography.bodySmall.copy(fontWeight = FontWeight.Medium), color = when { selectedPrivatePeer != null -> Color(0xFFFF8C00) // Orange for private - currentChannel != null -> Color(0xFFFF8C00) // Orange if encrypted channel + currentChannel != null -> Color(0xFFFF8C00) // Orange for channels too else -> colorScheme.primary }, fontFamily = FontFamily.Monospace @@ -78,7 +74,7 @@ fun MessageInput( Spacer(modifier = Modifier.width(8.dp)) // Reduced spacing - // Fixed: Make send button orange in private mode to match nickname color + // Update send button to match input field colors IconButton( onClick = onSend, modifier = Modifier.size(32.dp) @@ -87,8 +83,8 @@ fun MessageInput( modifier = Modifier .size(30.dp) .background( - color = if (selectedPrivatePeer != null) { - // Orange for private messages to match nickname color + color = if (selectedPrivatePeer != null || currentChannel != null) { + // Orange for both private messages and channels to match nickname color Color(0xFFFF8C00).copy(alpha = 0.75f) } else if (colorScheme.background == Color.Black) { Color(0xFF00FF00).copy(alpha = 0.75f) // Bright green for dark theme @@ -103,8 +99,8 @@ fun MessageInput( imageVector = Icons.Filled.KeyboardArrowUp, contentDescription = "Send message", modifier = Modifier.size(20.dp), - tint = if (selectedPrivatePeer != null) { - // Black arrow on orange in private mode + tint = if (selectedPrivatePeer != null || currentChannel != null) { + // Black arrow on orange for both private and channel modes Color.Black } else if (colorScheme.background == Color.Black) { Color.Black // Black arrow on bright green in dark theme diff --git a/app/src/main/java/com/bitchat/android/ui/SidebarComponents.kt b/app/src/main/java/com/bitchat/android/ui/SidebarComponents.kt index e97b6446..b32821cc 100644 --- a/app/src/main/java/com/bitchat/android/ui/SidebarComponents.kt +++ b/app/src/main/java/com/bitchat/android/ui/SidebarComponents.kt @@ -193,7 +193,7 @@ fun ChannelsSection( verticalAlignment = Alignment.CenterVertically ) { Text( - text = "#$channel", + text = channel, // Channel already contains the # prefix style = MaterialTheme.typography.bodyMedium, color = if (isSelected) colorScheme.primary else colorScheme.onSurface, fontWeight = if (isSelected) FontWeight.Medium else FontWeight.Normal, From 006ac7e78a88d2def8e813f582cefe9165c19642 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 12 Jul 2025 02:37:51 +0200 Subject: [PATCH 2/6] buttons --- .../java/com/bitchat/android/ui/ChatHeader.kt | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 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 f7b85f0e..ffe0807b 100644 --- a/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt +++ b/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt @@ -201,19 +201,16 @@ private fun PrivateChatHeader( val colorScheme = MaterialTheme.colorScheme val peerNickname = peerNicknames[peerID] ?: peerID - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically - ) { - // Fixed: Make back button wider to prevent text cropping + Box(modifier = Modifier.fillMaxWidth()) { + // Back button - positioned on the left Button( onClick = onBackClick, colors = ButtonDefaults.buttonColors( containerColor = Color.Transparent, contentColor = colorScheme.primary ), - contentPadding = PaddingValues(horizontal = 12.dp, vertical = 4.dp) + contentPadding = PaddingValues(horizontal = 12.dp, vertical = 4.dp), + modifier = Modifier.align(Alignment.CenterStart) ) { Row( verticalAlignment = Alignment.CenterVertically @@ -233,9 +230,11 @@ private fun PrivateChatHeader( } } - Spacer(modifier = Modifier.weight(1f)) - - Row(verticalAlignment = Alignment.CenterVertically) { + // Title - perfectly centered regardless of other elements + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.align(Alignment.Center) + ) { Icon( imageVector = Icons.Filled.Lock, contentDescription = "Private chat", @@ -250,10 +249,11 @@ private fun PrivateChatHeader( ) } - Spacer(modifier = Modifier.weight(1f)) - - // Favorite button with proper filled/outlined star - IconButton(onClick = onToggleFavorite) { + // Favorite button - positioned on the right + IconButton( + onClick = onToggleFavorite, + modifier = Modifier.align(Alignment.CenterEnd) + ) { Icon( imageVector = if (isFavorite) Icons.Filled.Star else Icons.Outlined.Star, contentDescription = if (isFavorite) "Remove from favorites" else "Add to favorites", @@ -273,19 +273,16 @@ private fun ChannelHeader( ) { val colorScheme = MaterialTheme.colorScheme - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically - ) { - // Use same back button style as DM header (Button instead of IconButton) + Box(modifier = Modifier.fillMaxWidth()) { + // Back button - positioned on the left Button( onClick = onBackClick, colors = ButtonDefaults.buttonColors( containerColor = Color.Transparent, contentColor = colorScheme.primary ), - contentPadding = PaddingValues(horizontal = 12.dp, vertical = 4.dp) + contentPadding = PaddingValues(horizontal = 12.dp, vertical = 4.dp), + modifier = Modifier.align(Alignment.CenterStart) ) { Row( verticalAlignment = Alignment.CenterVertically @@ -305,19 +302,21 @@ private fun ChannelHeader( } } - Spacer(modifier = Modifier.weight(1f)) - - // Centered title with orange color to match DM input field + // Title - perfectly centered regardless of other elements Text( text = "channel: $channel", style = MaterialTheme.typography.titleMedium, color = Color(0xFFFF8C00), // Orange to match input field - modifier = Modifier.clickable { onSidebarClick() } + modifier = Modifier + .align(Alignment.Center) + .clickable { onSidebarClick() } ) - Spacer(modifier = Modifier.weight(1f)) - - TextButton(onClick = onLeaveChannel) { + // Leave button - positioned on the right + TextButton( + onClick = onLeaveChannel, + modifier = Modifier.align(Alignment.CenterEnd) + ) { Text( text = "leave", style = MaterialTheme.typography.bodySmall, From a9995ebfc1d48ae0f4db3df7ed4afcc35cdefa09 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 12 Jul 2025 02:45:59 +0200 Subject: [PATCH 3/6] like --- .../main/java/com/bitchat/android/ui/ChatHeader.kt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 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 ffe0807b..ee674796 100644 --- a/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt +++ b/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt @@ -216,12 +216,11 @@ private fun PrivateChatHeader( verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = Icons.Filled.ArrowBack, + imageVector = Icons.Filled.ArrowBackIos, contentDescription = "Back", - modifier = Modifier.size(16.dp), + modifier = Modifier.size(14.dp), tint = colorScheme.primary ) - Spacer(modifier = Modifier.width(4.dp)) Text( text = "back", style = MaterialTheme.typography.bodyMedium, @@ -281,19 +280,17 @@ private fun ChannelHeader( containerColor = Color.Transparent, contentColor = colorScheme.primary ), - contentPadding = PaddingValues(horizontal = 12.dp, vertical = 4.dp), modifier = Modifier.align(Alignment.CenterStart) ) { Row( verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = Icons.Filled.ArrowBack, + imageVector = Icons.Filled.ArrowBackIos, contentDescription = "Back", - modifier = Modifier.size(16.dp), + modifier = Modifier.size(14.dp), tint = colorScheme.primary - ) - Spacer(modifier = Modifier.width(4.dp)) + ) Text( text = "back", style = MaterialTheme.typography.bodyMedium, From 759ebaec93613c3bd661db8672589e1c0d9f84e9 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 12 Jul 2025 02:49:49 +0200 Subject: [PATCH 4/6] buttons --- .../java/com/bitchat/android/ui/ChatHeader.kt | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 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 ee674796..537d4afb 100644 --- a/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt +++ b/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt @@ -202,25 +202,28 @@ private fun PrivateChatHeader( val peerNickname = peerNicknames[peerID] ?: peerID Box(modifier = Modifier.fillMaxWidth()) { - // Back button - positioned on the left + // Back button - positioned all the way to the left with minimal margin Button( onClick = onBackClick, colors = ButtonDefaults.buttonColors( containerColor = Color.Transparent, contentColor = colorScheme.primary ), - contentPadding = PaddingValues(horizontal = 12.dp, vertical = 4.dp), - modifier = Modifier.align(Alignment.CenterStart) + contentPadding = PaddingValues(horizontal = 4.dp, vertical = 4.dp), // Reduced horizontal padding + modifier = Modifier + .align(Alignment.CenterStart) + .offset(x = (-8).dp) // Move even further left to minimize margin ) { Row( verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = Icons.Filled.ArrowBackIos, + imageVector = Icons.Filled.ArrowBack, contentDescription = "Back", - modifier = Modifier.size(14.dp), + modifier = Modifier.size(16.dp), tint = colorScheme.primary ) + Spacer(modifier = Modifier.width(4.dp)) Text( text = "back", style = MaterialTheme.typography.bodyMedium, @@ -273,24 +276,28 @@ private fun ChannelHeader( val colorScheme = MaterialTheme.colorScheme Box(modifier = Modifier.fillMaxWidth()) { - // Back button - positioned on the left + // Back button - positioned all the way to the left with minimal margin Button( onClick = onBackClick, colors = ButtonDefaults.buttonColors( containerColor = Color.Transparent, contentColor = colorScheme.primary ), - modifier = Modifier.align(Alignment.CenterStart) + contentPadding = PaddingValues(horizontal = 4.dp, vertical = 4.dp), // Reduced horizontal padding + modifier = Modifier + .align(Alignment.CenterStart) + .offset(x = (-8).dp) // Move even further left to minimize margin ) { Row( verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = Icons.Filled.ArrowBackIos, + imageVector = Icons.Filled.ArrowBack, contentDescription = "Back", - modifier = Modifier.size(14.dp), + modifier = Modifier.size(16.dp), tint = colorScheme.primary - ) + ) + Spacer(modifier = Modifier.width(4.dp)) Text( text = "back", style = MaterialTheme.typography.bodyMedium, From 50995c670f34a0e5197fe463eb45da52334221d4 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 12 Jul 2025 02:55:14 +0200 Subject: [PATCH 5/6] orange --- app/src/main/java/com/bitchat/android/ui/ChatHeader.kt | 8 ++++---- app/src/main/java/com/bitchat/android/ui/ChatUIUtils.kt | 2 +- .../main/java/com/bitchat/android/ui/InputComponents.kt | 6 +++--- .../main/java/com/bitchat/android/ui/SidebarComponents.kt | 2 +- 4 files changed, 9 insertions(+), 9 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 537d4afb..d4372157 100644 --- a/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt +++ b/app/src/main/java/com/bitchat/android/ui/ChatHeader.kt @@ -103,7 +103,7 @@ fun PeerCounter( imageVector = Icons.Filled.Email, contentDescription = "Unread private messages", modifier = Modifier.size(16.dp), - tint = Color(0xFFFF8C00) // Orange to match private message theme + tint = Color(0xFFFF9500) // Orange to match private message theme ) Spacer(modifier = Modifier.width(6.dp)) } @@ -241,13 +241,13 @@ private fun PrivateChatHeader( imageVector = Icons.Filled.Lock, contentDescription = "Private chat", modifier = Modifier.size(16.dp), - tint = Color(0xFFFF8C00) // Orange to match private message theme + tint = Color(0xFFFF9500) // Orange to match private message theme ) Spacer(modifier = Modifier.width(4.dp)) Text( text = peerNickname, style = MaterialTheme.typography.titleMedium, - color = Color(0xFFFF8C00) // Orange + color = Color(0xFFFF9500) // Orange ) } @@ -310,7 +310,7 @@ private fun ChannelHeader( Text( text = "channel: $channel", style = MaterialTheme.typography.titleMedium, - color = Color(0xFFFF8C00), // Orange to match input field + color = Color(0xFFFF9500), // Orange to match input field modifier = Modifier .align(Alignment.Center) .clickable { onSidebarClick() } diff --git a/app/src/main/java/com/bitchat/android/ui/ChatUIUtils.kt b/app/src/main/java/com/bitchat/android/ui/ChatUIUtils.kt index 6972106f..9d0a1476 100644 --- a/app/src/main/java/com/bitchat/android/ui/ChatUIUtils.kt +++ b/app/src/main/java/com/bitchat/android/ui/ChatUIUtils.kt @@ -139,7 +139,7 @@ private fun appendFormattedContent( } "mention" -> { builder.pushStyle(SpanStyle( - color = Color(0xFFFF8C00), // Orange + color = Color(0xFFFF9500), // Orange fontSize = 14.sp, fontWeight = FontWeight.SemiBold )) diff --git a/app/src/main/java/com/bitchat/android/ui/InputComponents.kt b/app/src/main/java/com/bitchat/android/ui/InputComponents.kt index e7706218..ede412bf 100644 --- a/app/src/main/java/com/bitchat/android/ui/InputComponents.kt +++ b/app/src/main/java/com/bitchat/android/ui/InputComponents.kt @@ -49,8 +49,8 @@ fun MessageInput( text = "<@$nickname>", // No arrow for both private and channel style = MaterialTheme.typography.bodySmall.copy(fontWeight = FontWeight.Medium), color = when { - selectedPrivatePeer != null -> Color(0xFFFF8C00) // Orange for private - currentChannel != null -> Color(0xFFFF8C00) // Orange for channels too + selectedPrivatePeer != null -> Color(0xFFFF9500) // Orange for private + currentChannel != null -> Color(0xFFFF9500) // Orange for channels too else -> colorScheme.primary }, fontFamily = FontFamily.Monospace @@ -85,7 +85,7 @@ fun MessageInput( .background( color = if (selectedPrivatePeer != null || currentChannel != null) { // Orange for both private messages and channels to match nickname color - Color(0xFFFF8C00).copy(alpha = 0.75f) + Color(0xFFFF9500).copy(alpha = 0.75f) } else if (colorScheme.background == Color.Black) { Color(0xFF00FF00).copy(alpha = 0.75f) // Bright green for dark theme } else { diff --git a/app/src/main/java/com/bitchat/android/ui/SidebarComponents.kt b/app/src/main/java/com/bitchat/android/ui/SidebarComponents.kt index b32821cc..a7ee2c4f 100644 --- a/app/src/main/java/com/bitchat/android/ui/SidebarComponents.kt +++ b/app/src/main/java/com/bitchat/android/ui/SidebarComponents.kt @@ -320,7 +320,7 @@ private fun PeerItem( imageVector = Icons.Filled.Email, contentDescription = "Unread messages", modifier = Modifier.size(16.dp), - tint = Color(0xFFFF8C00) // Orange to match private message theme + tint = Color(0xFFFF9500) // Orange to match private message theme ) } else { // Signal strength indicators From 8e93500823df31f2e04210d868882dba82109562 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sat, 12 Jul 2025 02:58:30 +0200 Subject: [PATCH 6/6] nice --- app/src/main/java/com/bitchat/android/ui/InputComponents.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/bitchat/android/ui/InputComponents.kt b/app/src/main/java/com/bitchat/android/ui/InputComponents.kt index ede412bf..761b502b 100644 --- a/app/src/main/java/com/bitchat/android/ui/InputComponents.kt +++ b/app/src/main/java/com/bitchat/android/ui/InputComponents.kt @@ -53,7 +53,8 @@ fun MessageInput( currentChannel != null -> Color(0xFFFF9500) // Orange for channels too else -> colorScheme.primary }, - fontFamily = FontFamily.Monospace + fontFamily = FontFamily.Monospace, + fontSize = 14.sp ) Spacer(modifier = Modifier.width(8.dp)) @@ -96,7 +97,7 @@ fun MessageInput( contentAlignment = Alignment.Center ) { Icon( - imageVector = Icons.Filled.KeyboardArrowUp, + imageVector = Icons.Filled.KeyboardArrowRight, contentDescription = "Send message", modifier = Modifier.size(20.dp), tint = if (selectedPrivatePeer != null || currentChannel != null) {