diff --git a/app/src/main/java/com/droiddeck/launcher/ui/LabBuilds.kt b/app/src/main/java/com/droiddeck/launcher/ui/LabBuilds.kt
index ad59c60ac..dc93878f1 100644
--- a/app/src/main/java/com/droiddeck/launcher/ui/LabBuilds.kt
+++ b/app/src/main/java/com/droiddeck/launcher/ui/LabBuilds.kt
@@ -36,9 +36,12 @@ import com.droiddeck.launcher.R
import com.droiddeck.launcher.core.WirelessAdbFix
import com.droiddeck.launcher.lab.LabOverlay
-/** Lab builds on this device: the one in use, one waiting for a restart, and the kept ones. */
+/**
+ * Lab builds on this device: the one in use, one waiting for a restart, and the kept ones.
+ * [onRebuild] offers to build a kept one again for this install, when something can.
+ */
@Composable
-internal fun LabBuilds() {
+internal fun LabBuilds(onRebuild: ((LabOverlay.Info) -> Unit)? = null) {
val context = LocalContext.current
var version by remember { mutableIntStateOf(0) }
var busy by remember { mutableStateOf(false) }
@@ -71,7 +74,7 @@ internal fun LabBuilds() {
val pal = LocalPalette.current
Column(Modifier.fillMaxWidth().padding(top = 18.dp)) {
Text(
- stringResource(R.string.lab_builds), fontSize = 12.sp, fontWeight = FontWeight.SemiBold, letterSpacing = 1.5.sp,
+ stringResource(R.string.lab_builds).uppercase(), fontSize = 12.sp, fontWeight = FontWeight.SemiBold, letterSpacing = 1.5.sp,
color = colors.onSurfaceVariant, modifier = Modifier.padding(start = 2.dp, top = 2.dp, bottom = 10.dp),
)
Column(Modifier.fillMaxWidth().clip(Shape14).background(colors.surface).border(1.dp, pal.line, Shape14)) {
@@ -108,6 +111,9 @@ internal fun LabBuilds() {
},
warn = armed || !build.usable || build.reason == LabOverlay.Reason.DID_NOT_START,
) {
+ if (!build.usable && !armed && info != null && onRebuild != null) SecondaryButton(stringResource(R.string.lab_rebuild), compact = true, enabled = !busy) {
+ onRebuild(info)
+ }
if (build.usable && !armed) SecondaryButton(stringResource(R.string.lab_use), compact = true, enabled = !busy) {
runCatching { LabOverlay.stage(context, build) }
.onSuccess { restart() }
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8ce25d9d8..3bc07cd3f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1125,7 +1125,8 @@
Not loaded: %1$s
Waiting for a restart
Kept
- Built for another version of DroidDeck
+ For another version
+ Rebuild
Deletes this build from the device
Restart on it
Turn off