Фикс UI: ограничение аккаунтов в сайдбаре и корректное позиционирование кнопки записи
All checks were successful
Android Kernel Build / build (push) Successful in 21m19s
All checks were successful
Android Kernel Build / build (push) Successful in 21m19s
This commit is contained in:
@@ -1098,8 +1098,8 @@ fun ChatsListScreen(
|
|||||||
exit = shrinkVertically(animationSpec = tween(250)) + fadeOut(animationSpec = tween(200))
|
exit = shrinkVertically(animationSpec = tween(250)) + fadeOut(animationSpec = tween(200))
|
||||||
) {
|
) {
|
||||||
Column(modifier = Modifier.fillMaxWidth()) {
|
Column(modifier = Modifier.fillMaxWidth()) {
|
||||||
// All accounts list (max 5 like Telegram sidebar behavior)
|
// All accounts list (limit to 3 in expanded sidebar)
|
||||||
allAccounts.take(5).forEach { account ->
|
allAccounts.take(3).forEach { account ->
|
||||||
val isCurrentAccount =
|
val isCurrentAccount =
|
||||||
account.publicKey ==
|
account.publicKey ==
|
||||||
effectiveCurrentPublicKey
|
effectiveCurrentPublicKey
|
||||||
|
|||||||
@@ -2285,6 +2285,7 @@ fun MessageInputBar(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
androidx.compose.animation.AnimatedVisibility(
|
androidx.compose.animation.AnimatedVisibility(
|
||||||
|
modifier = Modifier.graphicsLayer { clip = false },
|
||||||
visibleState = recordingPanelTransitionState,
|
visibleState = recordingPanelTransitionState,
|
||||||
// Telegram-like smooth dissolve without any vertical resize.
|
// Telegram-like smooth dissolve without any vertical resize.
|
||||||
enter = fadeIn(tween(durationMillis = 170, easing = LinearOutSlowInEasing)),
|
enter = fadeIn(tween(durationMillis = 170, easing = LinearOutSlowInEasing)),
|
||||||
@@ -2300,9 +2301,11 @@ fun MessageInputBar(
|
|||||||
// Telegram-like proportions: large button that does not dominate the panel.
|
// Telegram-like proportions: large button that does not dominate the panel.
|
||||||
val recordingActionVisualScale = 1.42f // 40dp -> ~57dp visual size
|
val recordingActionVisualScale = 1.42f // 40dp -> ~57dp visual size
|
||||||
val recordingActionInset = 34.dp
|
val recordingActionInset = 34.dp
|
||||||
// Keep the scaled circle fully on-screen (no right-edge clipping).
|
// Keep scaled circle safely inside screen bounds (right/bottom).
|
||||||
val recordingActionOverflowX = 0.dp
|
val recordingActionVisualOverflow =
|
||||||
val recordingActionOverflowY = 0.dp
|
(recordingActionButtonBaseSize * (recordingActionVisualScale - 1f)) / 2f
|
||||||
|
val recordingActionOverflowX = -recordingActionVisualOverflow + 2.dp
|
||||||
|
val recordingActionOverflowY = -recordingActionVisualOverflow + 2.dp
|
||||||
val voiceLevel = remember(voiceWaves) { voiceWaves.lastOrNull() ?: 0f }
|
val voiceLevel = remember(voiceWaves) { voiceWaves.lastOrNull() ?: 0f }
|
||||||
val cancelAnimProgress by animateFloatAsState(
|
val cancelAnimProgress by animateFloatAsState(
|
||||||
targetValue = if (isVoiceCancelAnimating || holdCancelVisualUntilHidden) 1f else 0f,
|
targetValue = if (isVoiceCancelAnimating || holdCancelVisualUntilHidden) 1f else 0f,
|
||||||
|
|||||||
Reference in New Issue
Block a user