From 07800d13a7b4b06db01ced0a210f93f422b5da15 Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Sat, 14 Feb 2026 00:38:08 +0500 Subject: [PATCH] feat: implement safety screen with swipe back functionality in MainScreen --- .../com/rosetta/messenger/MainActivity.kt | 34 +++++++++---------- .../messenger/ui/settings/ProfileScreen.kt | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/rosetta/messenger/MainActivity.kt b/app/src/main/java/com/rosetta/messenger/MainActivity.kt index 4cec32c..20a20e4 100644 --- a/app/src/main/java/com/rosetta/messenger/MainActivity.kt +++ b/app/src/main/java/com/rosetta/messenger/MainActivity.kt @@ -834,6 +834,23 @@ fun MainScreen( } // Other screens with swipe back + SwipeBackContainer( + isVisible = isSafetyVisible, + onBack = { navStack = navStack.filterNot { it is Screen.Safety } }, + isDarkTheme = isDarkTheme + ) { + SafetyScreen( + isDarkTheme = isDarkTheme, + accountPublicKey = accountPublicKey, + accountPrivateKey = accountPrivateKey, + onBack = { navStack = navStack.filterNot { it is Screen.Safety } }, + onBackupClick = { + navStack = navStack + Screen.Backup + }, + onDeleteAccount = onDeleteAccount + ) + } + SwipeBackContainer( isVisible = isBackupVisible, onBack = { navStack = navStack.filterNot { it is Screen.Backup } }, @@ -879,23 +896,6 @@ fun MainScreen( ) } - SwipeBackContainer( - isVisible = isSafetyVisible, - onBack = { navStack = navStack.filterNot { it is Screen.Safety } }, - isDarkTheme = isDarkTheme - ) { - SafetyScreen( - isDarkTheme = isDarkTheme, - accountPublicKey = accountPublicKey, - accountPrivateKey = accountPrivateKey, - onBack = { navStack = navStack.filterNot { it is Screen.Safety } }, - onBackupClick = { - navStack = navStack + Screen.Backup - }, - onDeleteAccount = onDeleteAccount - ) - } - SwipeBackContainer( isVisible = isThemeVisible, onBack = { navStack = navStack.filterNot { it is Screen.Theme } }, 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 ffe4e3e..45eaa3a 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 @@ -583,7 +583,7 @@ fun ProfileScreen( // Snap вызывается в onPreFling — СРАЗУ при отпускании пальца // (как Telegram ACTION_UP → smoothScrollBy) // ═══════════════════════════════════════════════════════════════ - val nestedScrollConnection = remember { + val nestedScrollConnection = remember(hasAvatar) { object : NestedScrollConnection { override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset { val delta = available.y