Skip to content

Commit 5fc584b

Browse files
committed
Update Android project to use the latest libraries
1 parent 5625a8c commit 5fc584b

File tree

27 files changed

+336
-329
lines changed

27 files changed

+336
-329
lines changed

ChessAndroid/app/build.gradle.kts

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
plugins {
2-
id("com.android.application")
3-
4-
kotlin("android")
2+
alias(libs.plugins.android.application)
3+
alias(libs.plugins.kotlinAndroid)
4+
alias(libs.plugins.compose.compiler)
55
}
66

77
android {
@@ -17,37 +17,24 @@ android {
1717
resourceConfigurations += listOf("en")
1818
}
1919

20+
compileOptions {
21+
sourceCompatibility = JavaVersion.VERSION_21
22+
targetCompatibility = JavaVersion.VERSION_21
23+
}
24+
2025
buildTypes {
2126
release {
2227
isMinifyEnabled = true
2328
isShrinkResources = true
2429
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
25-
26-
packagingOptions {
27-
resources {
28-
excludes.add("DebugProbesKt.bin")
29-
}
30-
}
3130
}
3231
}
3332

3433
buildFeatures.compose = true
35-
36-
composeOptions {
37-
kotlinCompilerExtensionVersion = Versions.composeCompiler
38-
}
39-
}
40-
41-
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class).configureEach {
42-
kotlinOptions {
43-
freeCompilerArgs = listOf(
44-
"-Xopt-in=kotlin.RequiresOptIn",
45-
)
46-
}
4734
}
4835

4936
dependencies {
5037
implementation(project(path = ":common"))
5138

52-
implementation("androidx.compose.material:material:${Versions.compose}")
39+
implementation(libs.compose.material3)
5340
}

ChessAndroid/app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
<application
66
android:name=".ChessApp"
77
android:allowBackup="true"
8-
android:extractNativeLibs="true"
98
android:fullBackupContent="true"
109
android:icon="@mipmap/ic_launcher"
1110
android:label="@string/app_name"

ChessAndroid/app/src/main/java/net/theluckycoder/chess/ChessApp.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import kotlin.time.ExperimentalTime
1818
@Suppress("unused")
1919
class ChessApp : Application() {
2020

21-
@OptIn(ExperimentalTime::class, DelicateCoroutinesApi::class)
21+
@OptIn(DelicateCoroutinesApi::class)
2222
override fun onCreate() {
2323
super.onCreate()
2424

Lines changed: 75 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,88 @@
11
package net.theluckycoder.chess.ui
22

3-
import androidx.compose.material.MaterialTheme
4-
import androidx.compose.material.darkColors
3+
import androidx.compose.material3.MaterialTheme
4+
import androidx.compose.material3.darkColorScheme
55
import androidx.compose.runtime.Composable
66
import androidx.compose.ui.graphics.Color
7-
import net.theluckycoder.chess.common.ui.AppColors
87

9-
private val DarkColors = darkColors(
10-
primary = AppColors.Primary,
11-
primaryVariant = AppColors.PrimaryVariant,
12-
secondary = AppColors.Secondary,
13-
onPrimary = Color.White,
14-
onSecondary = Color.Black
8+
val primaryDark = Color(0xFFA0D39A)
9+
val onPrimaryDark = Color(0xFF093910)
10+
val primaryContainerDark = Color(0xFF235024)
11+
val onPrimaryContainerDark = Color(0xFFBCF0B5)
12+
val secondaryDark = Color(0xFFD4C871)
13+
val onSecondaryDark = Color(0xFF363100)
14+
val secondaryContainerDark = Color(0xFF4F4800)
15+
val onSecondaryContainerDark = Color(0xFFF1E58A)
16+
val tertiaryDark = Color(0xFFA1CFD4)
17+
val onTertiaryDark = Color(0xFF00363B)
18+
val tertiaryContainerDark = Color(0xFF1F4D52)
19+
val onTertiaryContainerDark = Color(0xFFBCEBF1)
20+
val errorDark = Color(0xFFFFB4AB)
21+
val onErrorDark = Color(0xFF690005)
22+
val errorContainerDark = Color(0xFF93000A)
23+
val onErrorContainerDark = Color(0xFFFFDAD6)
24+
val backgroundDark = Color(0xFF10140F)
25+
val onBackgroundDark = Color(0xFFE0E4DB)
26+
val surfaceDark = Color(0xFF10140F)
27+
val onSurfaceDark = Color(0xFFE0E4DB)
28+
val surfaceVariantDark = Color(0xFF424940)
29+
val onSurfaceVariantDark = Color(0xFFC2C9BD)
30+
val outlineDark = Color(0xFF8C9388)
31+
val outlineVariantDark = Color(0xFF424940)
32+
val scrimDark = Color(0xFF000000)
33+
val inverseSurfaceDark = Color(0xFFE0E4DB)
34+
val inverseOnSurfaceDark = Color(0xFF2D322C)
35+
val inversePrimaryDark = Color(0xFF3B693A)
36+
val surfaceDimDark = Color(0xFF10140F)
37+
val surfaceBrightDark = Color(0xFF363A34)
38+
val surfaceContainerLowestDark = Color(0xFF0B0F0A)
39+
val surfaceContainerLowDark = Color(0xFF181D17)
40+
val surfaceContainerDark = Color(0xFF1C211B)
41+
val surfaceContainerHighDark = Color(0xFF272B25)
42+
val surfaceContainerHighestDark = Color(0xFF323630)
43+
44+
private val darkScheme = darkColorScheme(
45+
primary = primaryDark,
46+
onPrimary = onPrimaryDark,
47+
primaryContainer = primaryContainerDark,
48+
onPrimaryContainer = onPrimaryContainerDark,
49+
secondary = secondaryDark,
50+
onSecondary = onSecondaryDark,
51+
secondaryContainer = secondaryContainerDark,
52+
onSecondaryContainer = onSecondaryContainerDark,
53+
tertiary = tertiaryDark,
54+
onTertiary = onTertiaryDark,
55+
tertiaryContainer = tertiaryContainerDark,
56+
onTertiaryContainer = onTertiaryContainerDark,
57+
error = errorDark,
58+
onError = onErrorDark,
59+
errorContainer = errorContainerDark,
60+
onErrorContainer = onErrorContainerDark,
61+
background = backgroundDark,
62+
onBackground = onBackgroundDark,
63+
surface = surfaceDark,
64+
onSurface = onSurfaceDark,
65+
surfaceVariant = surfaceVariantDark,
66+
onSurfaceVariant = onSurfaceVariantDark,
67+
outline = outlineDark,
68+
outlineVariant = outlineVariantDark,
69+
scrim = scrimDark,
70+
inverseSurface = inverseSurfaceDark,
71+
inverseOnSurface = inverseOnSurfaceDark,
72+
inversePrimary = inversePrimaryDark,
73+
surfaceDim = surfaceDimDark,
74+
surfaceBright = surfaceBrightDark,
75+
surfaceContainerLowest = surfaceContainerLowestDark,
76+
surfaceContainerLow = surfaceContainerLowDark,
77+
surfaceContainer = surfaceContainerDark,
78+
surfaceContainerHigh = surfaceContainerHighDark,
79+
surfaceContainerHighest = surfaceContainerHighestDark,
1580
)
1681

1782
@Composable
1883
fun ChessMaterialTheme(content: @Composable () -> Unit) {
1984
MaterialTheme(
20-
colors = DarkColors,
85+
colorScheme = darkScheme,
2186
content = content
2287
)
2388
}

ChessAndroid/app/src/main/java/net/theluckycoder/chess/ui/home/HomeDialogs.kt

Lines changed: 47 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package net.theluckycoder.chess.ui.home
22

33
import android.widget.Toast
44
import androidx.compose.foundation.layout.*
5-
import androidx.compose.material.*
5+
import androidx.compose.material3.*
66
import androidx.compose.runtime.*
77
import androidx.compose.ui.Modifier
88
import androidx.compose.ui.platform.LocalClipboardManager
@@ -39,6 +39,7 @@ fun HomeDialogs(viewModel: HomeViewModel = viewModel()) {
3939
GameState.DRAW, GameState.WINNER_WHITE, GameState.WINNER_BLACK -> {
4040
GameFinishedDialog(gameState)
4141
}
42+
4243
else -> Unit
4344
}
4445
}
@@ -56,15 +57,15 @@ private fun NewGameDialog(viewModel: HomeViewModel = viewModel()) {
5657
Column(modifier = Modifier.fillMaxWidth()) {
5758
Text(
5859
text = stringResource(id = R.string.side),
59-
color = MaterialTheme.colors.secondary
60+
color = MaterialTheme.colorScheme.secondary
6061
)
6162

6263
ChooseSidesToggle(sidesToggleIndex = sidesToggleIndex)
6364

6465
Text(
6566
modifier = Modifier.padding(top = 16.dp),
6667
text = stringResource(R.string.difficulty_level, difficultyLevel.roundToInt()),
67-
color = MaterialTheme.colors.secondary
68+
color = MaterialTheme.colorScheme.secondary
6869
)
6970

7071
Slider(
@@ -124,10 +125,12 @@ private fun SharePositionDialog(viewModel: HomeViewModel = viewModel()) {
124125
Column(Modifier.fillMaxWidth()) {
125126
Text(
126127
text = stringResource(id = R.string.fen_position_current),
127-
color = MaterialTheme.colors.secondary
128+
color = MaterialTheme.colorScheme.secondary
128129
)
129130
Text(
130-
modifier = Modifier.fillMaxWidth().padding(top = 6.dp),
131+
modifier = Modifier
132+
.fillMaxWidth()
133+
.padding(top = 6.dp),
131134
text = currentFen,
132135
fontSize = 14.5.sp
133136
)
@@ -175,7 +178,7 @@ private fun SharePositionDialog(viewModel: HomeViewModel = viewModel()) {
175178
@Composable
176179
private fun ImportPositionDialog(viewModel: HomeViewModel = viewModel()) {
177180
var newFen by remember { mutableStateOf("") }
178-
val sidesToggleIndex = remember { mutableStateOf(0) }
181+
val sidesToggleIndex = remember { mutableIntStateOf(0) }
179182
var failedToLoad by remember { mutableStateOf(false) }
180183

181184
AlertDialog(
@@ -194,61 +197,54 @@ private fun ImportPositionDialog(viewModel: HomeViewModel = viewModel()) {
194197
Text(
195198
modifier = Modifier.padding(top = 8.dp, bottom = 4.dp),
196199
text = stringResource(id = R.string.side),
197-
color = MaterialTheme.colors.secondary
200+
color = MaterialTheme.colorScheme.secondary
198201
)
199202

200203
ChooseSidesToggle(sidesToggleIndex = sidesToggleIndex)
201204
}
202205
},
203-
buttons = {
204-
Row(
205-
modifier = Modifier
206-
.fillMaxWidth()
207-
.padding(8.dp)
206+
dismissButton = {
207+
TextButton(
208+
onClick = { viewModel.showImportDialog.value = false }
208209
) {
209-
TextButton(
210-
modifier = Modifier.weight(1f),
211-
onClick = { viewModel.showImportDialog.value = false }
212-
) {
213-
Text(text = stringResource(id = R.string.action_close))
214-
}
215-
216-
val context = LocalContext.current
217-
Button(
218-
modifier = Modifier.weight(1f),
219-
onClick = {
220-
if (newFen.isBlank()) {
221-
Toast.makeText(
222-
context,
223-
R.string.fen_position_error_empty,
224-
Toast.LENGTH_SHORT
225-
).show()
226-
return@Button
227-
}
210+
Text(text = stringResource(id = R.string.action_close))
211+
}
212+
},
213+
confirmButton = {
214+
val context = LocalContext.current
215+
Button(
216+
onClick = {
217+
if (newFen.isBlank()) {
218+
Toast.makeText(
219+
context,
220+
R.string.fen_position_error_empty,
221+
Toast.LENGTH_SHORT
222+
).show()
223+
return@Button
224+
}
228225

229-
val playerWhite = when (sidesToggleIndex.value) {
230-
0 -> true
231-
1 -> false
232-
else -> Random.nextBoolean()
233-
}
226+
val playerWhite = when (sidesToggleIndex.intValue) {
227+
0 -> true
228+
1 -> false
229+
else -> Random.nextBoolean()
230+
}
234231

235-
if (Native.loadFen(playerWhite, newFen)) {
236-
failedToLoad = false
237-
viewModel.showImportDialog.value = false
238-
Toast.makeText(
239-
context,
240-
R.string.fen_position_loaded,
241-
Toast.LENGTH_SHORT
242-
).show()
243-
} else {
244-
Toast.makeText(context, R.string.fen_position_error, Toast.LENGTH_LONG)
245-
.show()
246-
failedToLoad = true
247-
}
232+
if (Native.loadFen(playerWhite, newFen)) {
233+
failedToLoad = false
234+
viewModel.showImportDialog.value = false
235+
Toast.makeText(
236+
context,
237+
R.string.fen_position_loaded,
238+
Toast.LENGTH_SHORT
239+
).show()
240+
} else {
241+
Toast.makeText(context, R.string.fen_position_error, Toast.LENGTH_LONG)
242+
.show()
243+
failedToLoad = true
248244
}
249-
) {
250-
Text(text = stringResource(id = R.string.action_load))
251245
}
246+
) {
247+
Text(text = stringResource(id = R.string.action_load))
252248
}
253249
}
254250
)

0 commit comments

Comments
 (0)