3 Commits

Author SHA1 Message Date
crsmthw 3637a1e236 minor bugfix 2026-05-17 11:12:36 +03:00
crsmthw 84567bebaa new screenshots 2026-05-17 10:26:21 +03:00
crsmthw f70e082104 v3.0.1 - Minor bug fixes 2026-05-17 10:10:53 +03:00
10 changed files with 31 additions and 25 deletions
+2 -1
View File
@@ -23,6 +23,7 @@ Every Phase 10 score tracker app on the Play Store falls into one of a few categ
<img src="assets/screenshots/entry.png" width="200" />
<img src="assets/screenshots/result.png" width="200" />
<img src="assets/screenshots/leaderboard.png" width="200" />
<img src="assets/screenshots/custom.png" width="200" />
</p>
### Foldable / Tablet — Dual Pane
@@ -146,4 +147,4 @@ MIT. Do whatever you want with it.
---
*Built with Claude — because the Play Store didn't deserve another ad-infested score tracker.*
*Built with Claude — because the people didn't deserve another ad-infested score tracker.*
+2 -2
View File
@@ -12,8 +12,8 @@ android {
applicationId = "com.crsmthw.phase10tracker"
minSdk = 35
targetSdk = 37
versionCode = 4
versionName = "3.0.0"
versionCode = 6
versionName = "3.0.2"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
Binary file not shown.
Binary file not shown.
+2 -2
View File
@@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 4,
"versionName": "3.0.0",
"versionCode": 6,
"versionName": "3.0.2",
"outputFile": "app-release.apk"
}
],
@@ -273,7 +273,7 @@ fun GameSetupScreen(
modifier = Modifier.padding(bottom = 4.dp)
)
Text(
"Hold the handle and drag to reorder. First player is the initial dealer.",
"Hold the = handle and drag to reorder. First player is the initial dealer.",
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant
)
@@ -61,23 +61,24 @@ fun RoundEntryScreen(
},
bottomBar = {
Surface(tonalElevation = 3.dp, shadowElevation = 8.dp) {
Button(
onClick = {
focusManager.clearFocus()
vm.submitRound()
},
enabled = vm.isValid(),
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp)
.padding(top = 16.dp, bottom = 16.dp)
.navigationBarsPadding()
.height(56.dp),
shape = MaterialTheme.shapes.large
) {
Icon(Icons.Filled.Check, null)
Spacer(Modifier.width(8.dp))
Text("Submit Round", style = MaterialTheme.typography.titleMedium)
Column(modifier = Modifier.navigationBarsPadding()) {
Button(
onClick = {
focusManager.clearFocus()
vm.submitRound()
},
enabled = vm.isValid(),
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp)
.padding(vertical = 16.dp)
.height(56.dp),
shape = MaterialTheme.shapes.large
) {
Icon(Icons.Filled.Check, null)
Spacer(Modifier.width(8.dp))
Text("Submit Round", style = MaterialTheme.typography.titleMedium)
}
}
}
}
@@ -86,7 +87,11 @@ fun RoundEntryScreen(
modifier = Modifier
.fillMaxSize()
.padding(padding)
// This is the key fix: pushes content up when keyboard appears
// Tell Compose the Scaffold padding already consumed those insets,
// so imePadding() only adds the *extra* keyboard space — not the
// full keyboard height on top of the already-padded bottomBar height.
// Without this, the gap = bottomBar height (the double-count).
.consumeWindowInsets(padding)
.imePadding(),
contentPadding = PaddingValues(horizontal = 16.dp, vertical = 12.dp),
verticalArrangement = Arrangement.spacedBy(12.dp)
@@ -307,4 +312,4 @@ private fun CardValuesDialog(onDismiss: () -> Unit) {
TextButton(onClick = onDismiss) { Text("Got it") }
}
)
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 258 KiB