From 23f833d4712801c546985b3b8bac1de82ad254ef Mon Sep 17 00:00:00 2001 From: xXJsonDeruloXx Date: Sat, 26 Sep 2026 00:03:06 -0400 Subject: [PATCH 1/3] Show build identity in launcher top bar --- .../droiddeck/launcher/ui/FrontEndScreen.kt | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/droiddeck/launcher/ui/FrontEndScreen.kt b/app/src/main/java/com/droiddeck/launcher/ui/FrontEndScreen.kt index 9aa782f8c..286a4f333 100644 --- a/app/src/main/java/com/droiddeck/launcher/ui/FrontEndScreen.kt +++ b/app/src/main/java/com/droiddeck/launcher/ui/FrontEndScreen.kt @@ -71,6 +71,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape @@ -471,7 +472,7 @@ private fun FrontEndScreenBody(s: FrontEndState, a: FrontEndActions, page: (@Com } Box(modifier = Modifier.fillMaxSize()) { Column(modifier = Modifier.fillMaxSize()) { - LauncherTopBar(frontFocus.menuToggle) { navOpen = true } + LauncherTopBar(frontFocus.menuToggle, s.buildLabel, a.onCheckLatestBuild) { navOpen = true } content(Modifier.weight(1f).fillMaxWidth()) } AnimatedVisibility( @@ -562,7 +563,12 @@ private fun FrontEndScreenBody(s: FrontEndState, a: FrontEndActions, page: (@Com @Composable -private fun LauncherTopBar(menuRequester: FocusRequester, onMenu: () -> Unit) { +private fun LauncherTopBar( + menuRequester: FocusRequester, + buildLabel: String, + onCheckLatestBuild: () -> Unit, + onMenu: () -> Unit, +) { val colors = MaterialTheme.colorScheme val palette = LocalPalette.current var menuFocused by remember { mutableStateOf(false) } @@ -581,6 +587,12 @@ private fun LauncherTopBar(menuRequester: FocusRequester, onMenu: () -> Unit) { Image(painterResource(R.drawable.logo), null, modifier = Modifier.size(24.dp)) Spacer(Modifier.width(8.dp)) Text("DroidDeck", fontSize = 14.sp, fontWeight = FontWeight.SemiBold, color = colors.onBackground) + Spacer(Modifier.weight(1f)) + BuildStatus( + label = buildLabel, + onCheckLatest = onCheckLatestBuild, + modifier = Modifier.widthIn(max = 220.dp).padding(start = 12.dp, end = 8.dp), + ) } } @@ -674,11 +686,6 @@ private fun Rail( .padding(horizontal = 10.dp, vertical = 8.dp), ) } - BuildStatus( - label = s.buildLabel, - onCheckLatest = a.onCheckLatestBuild, - modifier = Modifier.align(Alignment.Start).padding(start = 8.dp, top = 4.dp, bottom = 2.dp), - ) } } @@ -832,11 +839,11 @@ private fun BuildStatus(label: String, onCheckLatest: () -> Unit, modifier: Modi horizontalArrangement = Arrangement.spacedBy(5.dp), modifier = Modifier.fillMaxWidth(), ) { - Text(branch, modifier = Modifier.weight(1f), fontSize = 9.sp, fontFamily = FontFamily.Monospace, fontWeight = FontWeight.Medium, color = if (hot) colors.onSurfaceVariant else colors.onSurfaceVariant.copy(alpha = 0.82f), maxLines = 1, overflow = TextOverflow.Ellipsis) - if (commit.isNotEmpty()) Text("@$commit", fontSize = 8.sp, fontFamily = FontFamily.Monospace, fontWeight = FontWeight.Medium, color = colors.onSurfaceVariant.copy(alpha = 0.82f), maxLines = 1) + Text(branch, modifier = Modifier.weight(1f), fontSize = 10.sp, fontFamily = FontFamily.Monospace, fontWeight = FontWeight.Medium, color = if (hot) colors.onSurfaceVariant else colors.onSurfaceVariant.copy(alpha = 0.82f), maxLines = 1, overflow = TextOverflow.Ellipsis) + if (commit.isNotEmpty()) Text("@$commit", fontSize = 9.sp, fontFamily = FontFamily.Monospace, fontWeight = FontWeight.Medium, color = colors.onSurfaceVariant.copy(alpha = 0.82f), maxLines = 1) Icon(Icons.Filled.Refresh, contentDescription = null, tint = if (hot) pal.signal else colors.onSurfaceVariant.copy(alpha = 0.82f), modifier = Modifier.size(12.dp)) } - if (context.isNotEmpty()) Text(context, fontSize = 8.sp, fontFamily = FontFamily.Monospace, fontWeight = FontWeight.Medium, color = colors.onSurfaceVariant.copy(alpha = 0.82f), maxLines = 1) + if (context.isNotEmpty()) Text(context, fontSize = 9.sp, fontFamily = FontFamily.Monospace, fontWeight = FontWeight.Medium, color = colors.onSurfaceVariant.copy(alpha = 0.82f), maxLines = 1, overflow = TextOverflow.Ellipsis) } } From 7e012aade9e60383b6ce8f9421a4a9959393e749 Mon Sep 17 00:00:00 2001 From: xXJsonDeruloXx Date: Sat, 26 Sep 2026 00:35:54 -0400 Subject: [PATCH 2/3] Set boot movie background to pitch black --- .../steam-startup/droiddeck-startup.webm | Bin 1748213 -> 866332 bytes artwork/boot-animation-source/README.md | 2 +- .../boot-animation-source/droiddeck-boot.html | 5 +++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/assets/steam-startup/droiddeck-startup.webm b/app/src/main/assets/steam-startup/droiddeck-startup.webm index 0c69191f9b958ad1dadb485784d8712393dbdc18..ee181257b11cf9a3a9f309daf76e39212c79e55f 100644 GIT binary patch delta 765968 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