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