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:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user