From 8a0134c7e80213d8c3811b8d30c84ce0e63f7960 Mon Sep 17 00:00:00 2001 From: Brummel Date: Wed, 20 May 2026 18:59:15 +0200 Subject: [PATCH] feat(wear): add DevBadge visible only in dev-profile builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Small red 'DEV' tag in the top-right of CaseListScreen and RecordingScreen when BuildConfig.IS_DEV_PROFILE is true. Production profiles render nothing — Krey's UI stays clean. refs #3 --- .../watch/presentation/CaseListScreen.kt | 6 +++++ .../watch/presentation/RecordingScreen.kt | 6 +++++ .../watch/presentation/components/DevBadge.kt | 26 +++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 clients/wearos/app/src/main/java/com/doctate/watch/presentation/components/DevBadge.kt diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/presentation/CaseListScreen.kt b/clients/wearos/app/src/main/java/com/doctate/watch/presentation/CaseListScreen.kt index d18ee17..1b720f9 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/presentation/CaseListScreen.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/presentation/CaseListScreen.kt @@ -30,6 +30,7 @@ import com.doctate.watch.DoctateApp import com.doctate.watch.domain.CaseEntry import com.doctate.watch.domain.displayText import com.doctate.watch.domain.isManual +import com.doctate.watch.presentation.components.DevBadge @Composable fun CaseListScreen( @@ -61,6 +62,11 @@ fun CaseListScreen( }, edgeButtonSpacing = 4.dp, ) { contentPadding -> + DevBadge( + modifier = Modifier + .align(Alignment.TopEnd) + .padding(end = 4.dp, top = 2.dp), + ) if (displayed.isEmpty()) { EmptyState(onNewCase) } else { diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/presentation/RecordingScreen.kt b/clients/wearos/app/src/main/java/com/doctate/watch/presentation/RecordingScreen.kt index 098f076..5884ee8 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/presentation/RecordingScreen.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/presentation/RecordingScreen.kt @@ -26,6 +26,7 @@ import androidx.wear.compose.material3.EdgeButton import androidx.wear.compose.material3.MaterialTheme import androidx.wear.compose.material3.ScreenScaffold import androidx.wear.compose.material3.Text +import com.doctate.watch.presentation.components.DevBadge @Composable fun RecordingScreen( @@ -79,6 +80,11 @@ fun RecordingScreen( } ScreenScaffold { contentPadding -> + DevBadge( + modifier = Modifier + .align(Alignment.TopEnd) + .padding(end = 4.dp, top = 2.dp), + ) Column( modifier = Modifier .fillMaxSize() diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/presentation/components/DevBadge.kt b/clients/wearos/app/src/main/java/com/doctate/watch/presentation/components/DevBadge.kt new file mode 100644 index 0000000..3e925a4 --- /dev/null +++ b/clients/wearos/app/src/main/java/com/doctate/watch/presentation/components/DevBadge.kt @@ -0,0 +1,26 @@ +package com.doctate.watch.presentation.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.wear.compose.material3.MaterialTheme +import androidx.wear.compose.material3.Text +import com.doctate.watch.BuildConfig + +@Composable +fun DevBadge(modifier: Modifier = Modifier) { + if (!BuildConfig.IS_DEV_PROFILE) return + Text( + text = "DEV", + color = Color(0xFFFF5252), + style = MaterialTheme.typography.labelSmall.copy(fontWeight = FontWeight.Bold), + modifier = modifier + .background(Color.Black.copy(alpha = 0.6f), RoundedCornerShape(4.dp)) + .padding(horizontal = 4.dp, vertical = 1.dp), + ) +}