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

@@ -19,8 +19,8 @@ android {
applicationId = "solutions.tretter.githugandroid"
minSdk = 26
targetSdk = 35
versionCode = 103
versionName = "0.1.102"
versionCode = 104
versionName = "0.1.103"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true

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))

View File

@@ -26,9 +26,12 @@ import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Dialog
import androidx.compose.foundation.text.KeyboardOptions
data class TextEditorState(
val editor: String,
@@ -84,6 +87,11 @@ fun TextEditorDialog(
onValueChange = onSaveAsPathChange,
modifier = Modifier.fillMaxWidth(),
singleLine = true,
keyboardOptions = KeyboardOptions(
autoCorrect = false,
keyboardType = KeyboardType.Ascii,
imeAction = ImeAction.Done,
),
label = { Text("File name") },
)
Box(
@@ -106,6 +114,10 @@ fun TextEditorDialog(
fontSize = 14.sp,
),
cursorBrush = SolidColor(Accent),
keyboardOptions = KeyboardOptions(
autoCorrect = false,
keyboardType = KeyboardType.Ascii,
),
)
}
}