From 612cfe1a6b51fe9d8c73e6e06ee3f5b4fe95246e Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Wed, 4 Feb 2026 06:01:40 +0500 Subject: [PATCH] fix: revert avatar animation --- .../messenger/ui/settings/OtherProfileScreen.kt | 16 +++++++++++----- .../messenger/ui/settings/ProfileScreen.kt | 16 +++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/rosetta/messenger/ui/settings/OtherProfileScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/settings/OtherProfileScreen.kt index e802a6f..9baedd1 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/settings/OtherProfileScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/settings/OtherProfileScreen.kt @@ -280,14 +280,20 @@ fun OtherProfileScreen( // Тянем вверх (delta < 0) if (delta < 0) { // Сначала убираем overscroll - if (overscrollOffset > 0) { + if (overscrollOffset > 0 || isPulledDown) { + // 🔥 FIX: Если isPulledDown=true - НЕ меняем overscrollOffset напрямую + // Только сбрасываем isPulledDown и даём анимации плавно свернуть + if (isPulledDown) { + // При достаточном свайпе вверх - плавно сворачиваем + if (delta < -10f) { + isPulledDown = false + // 🔥 НЕ сбрасываем overscrollOffset - пусть animatedOverscroll плавно вернётся к 0 + } + return Offset(0f, delta) // Consume весь delta + } val newOffset = (overscrollOffset + delta).coerceAtLeast(0f) val consumed = overscrollOffset - newOffset overscrollOffset = newOffset - // Сбрасываем isPulledDown если вышли из expanded - if (overscrollOffset < maxOverscroll * 0.5f) { - isPulledDown = false - } return Offset(0f, -consumed) } // Затем коллапсируем header diff --git a/app/src/main/java/com/rosetta/messenger/ui/settings/ProfileScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/settings/ProfileScreen.kt index 78e3d54..25626aa 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/settings/ProfileScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/settings/ProfileScreen.kt @@ -423,14 +423,20 @@ fun ProfileScreen( // Тянем вверх (delta < 0) if (delta < 0) { // Сначала убираем overscroll - if (overscrollOffset > 0) { + if (overscrollOffset > 0 || isPulledDown) { + // 🔥 FIX: Если isPulledDown=true - НЕ меняем overscrollOffset напрямую + // Только сбрасываем isPulledDown и даём анимации плавно свернуть + if (isPulledDown) { + // При достаточном свайпе вверх - плавно сворачиваем + if (delta < -10f) { + isPulledDown = false + // 🔥 НЕ сбрасываем overscrollOffset - пусть animatedOverscroll плавно вернётся к 0 + } + return Offset(0f, delta) // Consume весь delta + } val newOffset = (overscrollOffset + delta).coerceAtLeast(0f) val consumed = overscrollOffset - newOffset overscrollOffset = newOffset - // Сбрасываем isPulledDown если вышли из expanded - if (overscrollOffset < maxOverscroll * 0.5f) { - isPulledDown = false - } return Offset(0f, -consumed) } // Затем коллапсируем header