From 405befaa68c500a3200c11e4ed5af0dbbb030d0d Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 23 Apr 2026 22:10:30 +0000 Subject: [PATCH] feat(broadcast): float banner as a rounded card The broadcast banner was rendered full-width with a 50dp bottom offset that assumed a bottom navigation bar underneath. On screens without the bottom bar the flat rectangle hovered above empty space, which looked like a misaligned attachment rather than an overlay. Restyle the banner as a floating card: 94% width (capped at 560dp for tablets), rounded corners, shadow elevation. Keep it above a bottom bar when present (50dp bar + 8dp float gap), but since it now reads as an intentional floating toast, the same offset looks correct on screens without a bottom bar as well. --- .../vitorpamplona/amethyst/ui/broadcast/BroadcastBanner.kt | 5 ++++- .../amethyst/ui/broadcast/DisplayBroadcastProgress.kt | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastBanner.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastBanner.kt index a5b42e108..33b5032f1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastBanner.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastBanner.kt @@ -38,6 +38,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.CheckCircle import androidx.compose.material.icons.filled.Error @@ -97,7 +98,9 @@ fun BroadcastBanner( ) { Surface( color = MaterialTheme.colorScheme.surfaceContainer, - tonalElevation = 2.dp, + tonalElevation = 3.dp, + shadowElevation = 6.dp, + shape = RoundedCornerShape(20.dp), modifier = Modifier .fillMaxWidth() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/DisplayBroadcastProgress.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/DisplayBroadcastProgress.kt index 47f92cef8..1eb225374 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/DisplayBroadcastProgress.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/DisplayBroadcastProgress.kt @@ -25,6 +25,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.widthIn import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -130,10 +131,11 @@ fun DisplaySnack( }, modifier = Modifier - .fillMaxWidth() .align(Alignment.BottomCenter) .navigationBarsPadding() - .padding(bottom = 50.dp), + .padding(start = 12.dp, end = 12.dp, bottom = 58.dp) + .fillMaxWidth(0.94f) + .widthIn(max = 560.dp), ) } }