Auto-commit after successful build: update app gameplay/UI, improve build setup
Changed files:\napp/build.gradle.kts app/src/main/java/com/kawomi/githugandroid/Exercise.kt app/src/main/java/com/kawomi/githugandroid/GitHugApp.kt app/src/main/java/com/kawomi/githugandroid/Header.kt app/src/main/java/com/kawomi/githugandroid/Levels.kt app/src/main/java/com/kawomi/githugandroid/Panes.kt app/src/main/java/com/kawomi/githugandroid/Terminal.kt app/src/main/java/com/kawomi/githugandroid/Visual.kt
This commit is contained in:
68
app/src/main/java/com/kawomi/githugandroid/Exercise.kt
Normal file
68
app/src/main/java/com/kawomi/githugandroid/Exercise.kt
Normal file
@@ -0,0 +1,68 @@
|
||||
package com.kawomi.githugandroid
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
@Composable
|
||||
fun ExercisePane(
|
||||
level: Level,
|
||||
visibleHint: String?,
|
||||
suggestionsExpanded: Boolean,
|
||||
onToggleSuggestions: () -> Unit,
|
||||
onHint: () -> Unit,
|
||||
onReset: () -> Unit,
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
verticalArrangement = Arrangement.spacedBy(12.dp),
|
||||
) {
|
||||
Text(level.title, style = MaterialTheme.typography.titleLarge, color = TextPrimary)
|
||||
Text(level.description, color = TextSecondary)
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
||||
Button(
|
||||
onClick = onHint,
|
||||
colors = ButtonDefaults.buttonColors(
|
||||
containerColor = Accent,
|
||||
contentColor = Color.Black,
|
||||
),
|
||||
) {
|
||||
Text("Hint")
|
||||
}
|
||||
TextButton(
|
||||
onClick = onToggleSuggestions,
|
||||
colors = ButtonDefaults.textButtonColors(contentColor = Accent),
|
||||
) {
|
||||
Text("Suggestions")
|
||||
}
|
||||
TextButton(
|
||||
onClick = onReset,
|
||||
colors = ButtonDefaults.textButtonColors(contentColor = Accent),
|
||||
) {
|
||||
Text("Reset level")
|
||||
}
|
||||
}
|
||||
if (suggestionsExpanded && level.commandSuggestions.isNotEmpty()) {
|
||||
Text("Suggestions", color = TextPrimary, fontWeight = FontWeight.Bold)
|
||||
level.commandSuggestions.forEach { suggestion ->
|
||||
Text(suggestion, color = TextSecondary, fontFamily = FontFamily.Monospace)
|
||||
}
|
||||
}
|
||||
if (visibleHint != null) {
|
||||
Text("Hint", color = TextPrimary, fontWeight = FontWeight.Bold)
|
||||
Text(visibleHint, color = TextSecondary)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user