Android UI (WIP)

This commit is contained in:
Christian Basler
2025-06-02 20:56:12 +02:00
parent f69933c74d
commit dedc686e9e

View File

@@ -24,7 +24,6 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.alpha
import androidx.compose.ui.draw.shadow import androidx.compose.ui.draw.shadow
@@ -114,34 +113,53 @@ fun App(
} }
Box(modifier = modifier) { Box(modifier = modifier) {
Row(modifier = Modifier.blurOnFinished(isSolved)) { AdaptiveGameLayout(
Column(modifier = Modifier.weight(0.6f)) { modifier = Modifier.blurOnFinished(isSolved),
grid = {
PuzzleGrid( PuzzleGrid(
modifier = Modifier // modifier = Modifier
.aspectRatio(1f) // .aspectRatio(1f)
.fillMaxWidth() // .fillMaxWidth()
.align(Alignment.CenterHorizontally), // .align(Alignment.CenterHorizontally),
grid = game.grid, grid = game.grid,
onUpdate = { onUpdate = {
horizontalClues.forEach { it.update(game.grid) } horizontalClues.forEach { it.update(game.grid) }
verticalClues.forEach { it.update(game.grid) } verticalClues.forEach { it.update(game.grid) }
} }
) )
},
clues = {
PuzzleClues(
horizontalClues = horizontalClues,
verticalClues = verticalClues
)
},
time = time
)
EndOfGame(isSolved = isSolved, time = time, onRestart = onNewGame)
}
}
@Composable
fun AdaptiveGameLayout(
modifier: Modifier = Modifier,
grid: @Composable () -> Unit,
clues: @Composable () -> Unit,
time: String = "00:00"
) {
// TODO: actually use an adaptive layout
Row(modifier = modifier) {
Column(modifier = Modifier.weight(0.6f)) {
grid()
} }
Column( Column(
modifier = Modifier.padding(start = 16.dp).weight(0.4f).fillMaxHeight() modifier = Modifier.padding(start = 16.dp).weight(0.4f).fillMaxHeight()
) { ) {
PuzzleClues( clues()
modifier = Modifier,
horizontalClues,
verticalClues
)
Text(time, fontSize = TextUnit(4f, TextUnitType.Em)) Text(time, fontSize = TextUnit(4f, TextUnitType.Em))
} }
} }
EndOfGame(isSolved = isSolved, time = time, onRestart = onNewGame)
}
} }
@Composable @Composable