From 45134665b336121d469529d33e9339d65c1ccc34 Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Wed, 15 Apr 2026 22:00:07 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20UI:=20=D0=BE=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B8=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B0?= =?UTF-8?q?=D0=BA=D0=BA=D0=B0=D1=83=D0=BD=D1=82=D0=BE=D0=B2=20=D0=B2=20?= =?UTF-8?q?=D1=81=D0=B0=D0=B9=D0=B4=D0=B1=D0=B0=D1=80=D0=B5=20=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD=D0=BE=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B7=D0=B8=D1=86=D0=B8=D0=BE=D0=BD=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BD=D0=BE=D0=BF?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/rosetta/messenger/ui/chats/ChatsListScreen.kt | 4 ++-- .../rosetta/messenger/ui/chats/input/ChatDetailInput.kt | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt index de91f4c..7e6b998 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt @@ -1098,8 +1098,8 @@ fun ChatsListScreen( exit = shrinkVertically(animationSpec = tween(250)) + fadeOut(animationSpec = tween(200)) ) { Column(modifier = Modifier.fillMaxWidth()) { - // All accounts list (max 5 like Telegram sidebar behavior) - allAccounts.take(5).forEach { account -> + // All accounts list (limit to 3 in expanded sidebar) + allAccounts.take(3).forEach { account -> val isCurrentAccount = account.publicKey == effectiveCurrentPublicKey diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/input/ChatDetailInput.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/input/ChatDetailInput.kt index 3afdfb5..ef66da1 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/input/ChatDetailInput.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/input/ChatDetailInput.kt @@ -2285,6 +2285,7 @@ fun MessageInputBar( } } androidx.compose.animation.AnimatedVisibility( + modifier = Modifier.graphicsLayer { clip = false }, visibleState = recordingPanelTransitionState, // Telegram-like smooth dissolve without any vertical resize. enter = fadeIn(tween(durationMillis = 170, easing = LinearOutSlowInEasing)), @@ -2300,9 +2301,11 @@ fun MessageInputBar( // Telegram-like proportions: large button that does not dominate the panel. val recordingActionVisualScale = 1.42f // 40dp -> ~57dp visual size val recordingActionInset = 34.dp - // Keep the scaled circle fully on-screen (no right-edge clipping). - val recordingActionOverflowX = 0.dp - val recordingActionOverflowY = 0.dp + // Keep scaled circle safely inside screen bounds (right/bottom). + val recordingActionVisualOverflow = + (recordingActionButtonBaseSize * (recordingActionVisualScale - 1f)) / 2f + val recordingActionOverflowX = -recordingActionVisualOverflow + 2.dp + val recordingActionOverflowY = -recordingActionVisualOverflow + 2.dp val voiceLevel = remember(voiceWaves) { voiceWaves.lastOrNull() ?: 0f } val cancelAnimProgress by animateFloatAsState( targetValue = if (isVoiceCancelAnimating || holdCancelVisualUntilHidden) 1f else 0f,