Auto-commit after successful build: update app gameplay/UI, improve build setup

Changed files:\napp/build.gradle.kts
app/src/main/java/solutions/tretter/githugandroid/Terminal.kt
app/src/main/java/solutions/tretter/githugandroid/TextEditorDialog.kt
This commit is contained in:
Joe Tretter
2026-05-02 22:32:59 -05:00
parent 65c44ccf62
commit 42b9be0921
3 changed files with 34 additions and 3 deletions

View File

@@ -41,6 +41,7 @@ import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.text.TextRange
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
@@ -94,6 +95,16 @@ fun TerminalPane(
onRun()
}
fun insertLiteral(value: String) {
val selectionStart = commandInput.selection.start.coerceIn(0, commandInput.text.length)
val selectionEnd = commandInput.selection.end.coerceIn(0, commandInput.text.length)
val rangeStart = minOf(selectionStart, selectionEnd)
val rangeEnd = maxOf(selectionStart, selectionEnd)
val newText = commandInput.text.replaceRange(rangeStart, rangeEnd, value)
val newCursor = rangeStart + value.length
onValueChange(TextFieldValue(newText, selection = TextRange(newCursor)))
}
Box(
modifier = Modifier
.fillMaxSize()
@@ -139,6 +150,7 @@ fun TerminalPane(
onCursorRight = onCursorRight,
onHistoryUp = onHistoryUp,
onHistoryDown = onHistoryDown,
onInsertText = { insertLiteral(it) },
)
Row(
modifier = Modifier
@@ -235,12 +247,19 @@ private fun SpecialKeyBar(
onCursorRight: () -> Unit,
onHistoryUp: () -> Unit,
onHistoryDown: () -> Unit,
onInsertText: (String) -> Unit,
) {
Row(
modifier = Modifier.fillMaxWidth(),
modifier = Modifier
.fillMaxWidth()
.horizontalScroll(rememberScrollState()),
horizontalArrangement = Arrangement.spacedBy(6.dp),
) {
TerminalKeyButton(label = "", onClick = onTab, modifier = Modifier.width(56.dp), fontFamily = FontFamily.Default)
TerminalKeyButton(label = ".", onClick = { onInsertText(".") }, modifier = Modifier.width(34.dp))
TerminalKeyButton(label = "-", onClick = { onInsertText("-") }, modifier = Modifier.width(34.dp))
TerminalKeyButton(label = "/", onClick = { onInsertText("/") }, modifier = Modifier.width(34.dp))
TerminalKeyButton(label = "_", onClick = { onInsertText("_") }, modifier = Modifier.width(34.dp))
TerminalKeyButton(label = "", onClick = onCursorLeft, modifier = Modifier.width(40.dp))
TerminalKeyButton(label = "", onClick = onCursorRight, modifier = Modifier.width(40.dp))
TerminalKeyButton(label = "", onClick = onHistoryUp, modifier = Modifier.width(40.dp))