From e557b388c7cc0d82c86458079a1fa1d481dd4609 Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Sun, 23 Aug 2026 17:21:43 -0400 Subject: [PATCH] fix(splash): stop launch logo bleeding through transparent screens MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The launch splash drawable (@drawable/splash, containing ic_launcher_foreground — the white "F" logo) is set as android:windowBackground in Theme.Code and is never cleared after setContent. The outermost Compose root Box in App.kt had no background modifier, so any screen whose own root composable does not paint a full-size opaque background (e.g. MyAccountScreen: bare Column with fillMaxSize but no background; WalletScreen: bare Column and LazyColumn with no background) left the window drawable visible behind it. Screens that do paint an opaque background (CodeScaffold-backed MenuScreenContent / You tab, ChatScreen) happened to occlude it. Fix: apply fillMaxSize + background(CodeTheme.colors.background) to the single outermost root Box in App.kt that wraps both NewAppContent and AppContent nav paths. CodeTheme.colors.background is Color(0xFF19191A), identical to splash_background, so the only visual change is that the window drawable can no longer bleed through — no color regression on any screen. The cold-start splash (window background visible before first Compose frame) is unchanged; the fix only prevents bleed-through after Compose takes the surface. Haze blur sampling is unaffected: haze only samples Compose-layer pixels and its hazeSource Box is a child of this root Box, not behind it. Nav3 OverlayScene / bottom-sheet transparency is unaffected: those are inter-Compose-layer transparencies, which this change does not touch. --- .../app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt b/apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt index f9285950b..ca5cbbe1a 100644 --- a/apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt +++ b/apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt @@ -9,7 +9,9 @@ import androidx.compose.animation.fadeOut import androidx.compose.animation.slideInHorizontally import androidx.compose.animation.slideOutHorizontally import androidx.compose.animation.togetherWith +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect @@ -170,7 +172,7 @@ internal fun App( val scrimController = remember { ScrimController() } - Box(modifier = semanticsModifier) { + Box(modifier = semanticsModifier.fillMaxSize().background(CodeTheme.colors.background)) { SharedTransitionLayout { CompositionLocalProvider( LocalCodeNavigator provides codeNavigator,