fix: fix avatar animation & profile colors

This commit is contained in:
k1ngsterr1
2026-01-31 15:54:10 +05:00
parent c249278421
commit 2c3b34783c
2 changed files with 7 additions and 11 deletions

View File

@@ -465,7 +465,7 @@ fun ChatsListScreen(
text = accountName, text = accountName,
fontSize = 16.sp, fontSize = 16.sp,
fontWeight = FontWeight.SemiBold, fontWeight = FontWeight.SemiBold,
color = if (isColorLight(headerColor)) Color.Black else Color.White color = Color.White
) )
} }
@@ -476,8 +476,7 @@ fun ChatsListScreen(
text = text =
"@$accountUsername", "@$accountUsername",
fontSize = 13.sp, fontSize = 13.sp,
color = color = Color.White.copy(alpha = 0.7f)
if (isColorLight(headerColor)) Color.Black.copy(alpha = 0.7f) else Color.White.copy(alpha = 0.7f)
) )
} }
} }

View File

@@ -257,9 +257,6 @@ fun ProfileScreen(
// Цвета в зависимости от темы // Цвета в зависимости от темы
val backgroundColor = if (isDarkTheme) Color(0xFF1A1A1A) else Color(0xFFFFFFFF) val backgroundColor = if (isDarkTheme) Color(0xFF1A1A1A) else Color(0xFFFFFFFF)
val surfaceColor = if (isDarkTheme) Color(0xFF2C2C2E) else Color(0xFFF2F2F7)
val textColor = if (isDarkTheme) Color.White else Color.Black
val secondaryTextColor = if (isDarkTheme) Color(0xFF8E8E93) else Color(0xFF666666)
val avatarColors = getAvatarColor(accountPublicKey, isDarkTheme) val avatarColors = getAvatarColor(accountPublicKey, isDarkTheme)
// Проверяем наличие аватара // Проверяем наличие аватара
@@ -321,14 +318,14 @@ fun ProfileScreen(
} }
} }
// Пружинистая анимация для snap-эффекта - быстрая // Быстрая snap-анимация без застревания
val animatedOverscroll by val animatedOverscroll by
animateFloatAsState( animateFloatAsState(
targetValue = snapTarget, targetValue = snapTarget,
animationSpec = animationSpec =
spring( spring(
dampingRatio = Spring.DampingRatioLowBouncy, dampingRatio = Spring.DampingRatioMediumBouncy, // Меньше пружинистости
stiffness = 2000f // Очень быстрая анимация stiffness = 4000f // Очень быстрый snap
), ),
label = "overscroll" label = "overscroll"
) )
@@ -384,7 +381,7 @@ fun ProfileScreen(
): Offset { ): Offset {
// Если достигли верха (scrollOffset = 0) и тянем вниз - создаем overscroll // Если достигли верха (scrollOffset = 0) и тянем вниз - создаем overscroll
if (available.y > 0 && scrollOffset == 0f) { if (available.y > 0 && scrollOffset == 0f) {
val resistance = 0.3f val resistance = 0.5f // Легче тянуть (было 0.3f)
val delta = available.y * resistance val delta = available.y * resistance
overscrollOffset = (overscrollOffset + delta).coerceAtMost(maxOverscroll) overscrollOffset = (overscrollOffset + delta).coerceAtMost(maxOverscroll)
return Offset(0f, available.y) return Offset(0f, available.y)
@@ -704,7 +701,7 @@ fun ProfileScreen(
@Composable @Composable
private fun CollapsingProfileHeader( private fun CollapsingProfileHeader(
name: String, name: String,
username: String, @Suppress("UNUSED_PARAMETER") username: String,
publicKey: String, publicKey: String,
avatarColors: AvatarColors, avatarColors: AvatarColors,
collapseProgress: Float, collapseProgress: Float,