diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterView.kt index dc78b8d..f01db0e 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/CounterView.kt @@ -1,19 +1,78 @@ package me.zobrist.tichucounter.ui.counter +import android.content.res.Configuration import androidx.compose.foundation.layout.Column -import androidx.compose.runtime.Composable +import androidx.compose.foundation.layout.Row +import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalConfiguration + + @Composable -fun Counter( - viewModel: CounterViewModel -) { - Column() { +fun Counter(viewModel: CounterViewModel) { + + var orientation by remember { mutableStateOf(Configuration.ORIENTATION_PORTRAIT) } + orientation = LocalConfiguration.current.orientation + + if(orientation == Configuration.ORIENTATION_LANDSCAPE) { + Landscape(viewModel) + } else { + Portrait(viewModel) + } +} + +@Composable +fun Landscape(viewModel: CounterViewModel) { + Row { + Column(Modifier.weight(1f)) { + TeamNamesView( + viewModel.teamNameA, + viewModel.teamNameB, + { viewModel.updateNameA(it) }, + { viewModel.updateNameB(it) } + ) + + TeamScoresView( + viewModel.totalScoreA, + viewModel.totalScoreB + ) + + RoundListView( + viewModel.roundScoreList, + Modifier.weight(1f) + ) + } + + Column(Modifier.weight(1f)) { + KeyboardView( + viewModel.currentScoreA, + viewModel.currentScoreB, + viewModel.requestFocusA, + viewModel.enableSubmit, + { viewModel.updateFocusStateA(it) }, + { viewModel.updateFocusStateB(it) }, + { viewModel.digitClicked(it) }, + { viewModel.addSub100Clicked(it) }, + { viewModel.deleteClicked() }, + { viewModel.negateClicked() }, + { viewModel.submitClicked() } + ) + } + } + +} + +@Composable +fun Portrait(viewModel: CounterViewModel) { + + Column { TeamNamesView( viewModel.teamNameA, viewModel.teamNameB, { viewModel.updateNameA(it) }, - { viewModel.updateNameB(it) }) + { viewModel.updateNameB(it) } + ) TeamScoresView( viewModel.totalScoreA, @@ -38,6 +97,5 @@ fun Counter( { viewModel.negateClicked() }, { viewModel.submitClicked() } ) - } } \ No newline at end of file