From 645d8913ac321cfc7baf70379350f3c889837dd8 Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Sat, 14 Feb 2026 01:24:43 +0500 Subject: [PATCH] feat: enhance swipe back functionality in OtherProfileScreen with pager state checks --- .../rosetta/messenger/ui/settings/OtherProfileScreen.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 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 4a74c13..2016926 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 @@ -189,8 +189,10 @@ fun OtherProfileScreen( } val screenHeightDp = LocalConfiguration.current.screenHeightDp.dp val sharedPagerMinHeight = (screenHeightDp * 0.45f).coerceAtLeast(240.dp) - LaunchedEffect(showImageViewer) { - onSwipeBackEnabledChanged(!showImageViewer) + val isPagerSwiping = pagerState.isScrollInProgress + val isOnFirstPage = pagerState.currentPage == 0 && pagerState.currentPageOffsetFraction == 0f + LaunchedEffect(showImageViewer, isPagerSwiping, isOnFirstPage) { + onSwipeBackEnabledChanged(!showImageViewer && !isPagerSwiping && isOnFirstPage) } val backgroundColor = if (isDarkTheme) Color(0xFF1A1A1A) else Color(0xFFFFFFFF) @@ -696,7 +698,7 @@ fun OtherProfileScreen( modifier = Modifier.fillMaxWidth().heightIn(min = sharedPagerMinHeight), beyondBoundsPageCount = 0, verticalAlignment = Alignment.Top, - userScrollEnabled = false + userScrollEnabled = true ) { page -> Box(modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.TopStart) { OtherProfileSharedTabContent(