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" applicationId = "solutions.tretter.githugandroid"
minSdk = 26 minSdk = 26
targetSdk = 35 targetSdk = 35
versionCode = 103 versionCode = 104
versionName = "0.1.102" versionName = "0.1.103"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true 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.LocalConfiguration
import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.text.TextRange
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
@@ -94,6 +95,16 @@ fun TerminalPane(
onRun() 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( Box(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
@@ -139,6 +150,7 @@ fun TerminalPane(
onCursorRight = onCursorRight, onCursorRight = onCursorRight,
onHistoryUp = onHistoryUp, onHistoryUp = onHistoryUp,
onHistoryDown = onHistoryDown, onHistoryDown = onHistoryDown,
onInsertText = { insertLiteral(it) },
) )
Row( Row(
modifier = Modifier modifier = Modifier
@@ -235,12 +247,19 @@ private fun SpecialKeyBar(
onCursorRight: () -> Unit, onCursorRight: () -> Unit,
onHistoryUp: () -> Unit, onHistoryUp: () -> Unit,
onHistoryDown: () -> Unit, onHistoryDown: () -> Unit,
onInsertText: (String) -> Unit,
) { ) {
Row( Row(
modifier = Modifier.fillMaxWidth(), modifier = Modifier
.fillMaxWidth()
.horizontalScroll(rememberScrollState()),
horizontalArrangement = Arrangement.spacedBy(6.dp), horizontalArrangement = Arrangement.spacedBy(6.dp),
) { ) {
TerminalKeyButton(label = "", onClick = onTab, modifier = Modifier.width(56.dp), fontFamily = FontFamily.Default) 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 = onCursorLeft, modifier = Modifier.width(40.dp))
TerminalKeyButton(label = "", onClick = onCursorRight, modifier = Modifier.width(40.dp)) TerminalKeyButton(label = "", onClick = onCursorRight, modifier = Modifier.width(40.dp))
TerminalKeyButton(label = "", onClick = onHistoryUp, 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.TextStyle
import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight 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.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import androidx.compose.foundation.text.KeyboardOptions
data class TextEditorState( data class TextEditorState(
val editor: String, val editor: String,
@@ -84,6 +87,11 @@ fun TextEditorDialog(
onValueChange = onSaveAsPathChange, onValueChange = onSaveAsPathChange,
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
singleLine = true, singleLine = true,
keyboardOptions = KeyboardOptions(
autoCorrect = false,
keyboardType = KeyboardType.Ascii,
imeAction = ImeAction.Done,
),
label = { Text("File name") }, label = { Text("File name") },
) )
Box( Box(
@@ -106,6 +114,10 @@ fun TextEditorDialog(
fontSize = 14.sp, fontSize = 14.sp,
), ),
cursorBrush = SolidColor(Accent), cursorBrush = SolidColor(Accent),
keyboardOptions = KeyboardOptions(
autoCorrect = false,
keyboardType = KeyboardType.Ascii,
),
) )
} }
} }