Add more strings and improve launcher icon

This commit is contained in:
Christian Basler
2025-03-18 18:24:04 +01:00
parent 54c22beddc
commit c27e4a7f6f
6 changed files with 348 additions and 84 deletions

View File

@@ -1,4 +1,76 @@
<resources>
<string name="app_name">YAEP</string>
<string name="app_name_full">Yet Another Einstein Puzzle</string>
<string name="solved">Congratulations! You solved the puzzle in %1$s</string>
<string name="restart">Restart</string>
<!-- Animals -->
<string name="zebra">Zebra</string>
<string name="octopus">Octopus</string>
<string name="goat">Goat</string>
<string name="sloth">Sloth</string>
<string name="dog">Dog</string>
<string name="snail">Snail</string>
<string name="ant">Ant</string>
<!-- Desserts -->
<string name="ice_cream">Ice Cream</string>
<string name="doughnut">Doughnut</string>
<string name="cookie">Cookie</string>
<string name="cake">Cake</string>
<string name="cupcake">Cupcake</string>
<string name="pie">Pie</string>
<string name="chocolate">Chocolate</string>
<string name="lollipop">Lollipop</string>
<string name="custard">Custard</string>
<!-- Drinks -->
<string name="milk">Milk</string>
<string name="wine">Wine</string>
<string name="cocktail">Cocktail</string>
<string name="coffee">Coffee</string>
<string name="tea">Tea</string>
<string name="beer">Beer</string>
<string name="beverage">Beverage</string>
<!-- Fruits -->
<string name="banana">Banana</string>
<string name="cherries">Cherries</string>
<string name="grapes">Grapes</string>
<string name="kiwi">Kiwi</string>
<string name="lemon">Lemon</string>
<string name="mango">Mango</string>
<string name="pear">Pear</string>
<string name="pineapple">Pineapple</string>
<string name="strawberry">Strawberry</string>
<string name="watermelon">Watermelon</string>
<!-- Nationalities -->
<string name="canadian">Canadian</string>
<string name="japanese">Japanese</string>
<string name="norwegian">Norwegian</string>
<string name="spanish">Spanish</string>
<string name="swedish">Swedish</string>
<string name="swiss">Swiss</string>
<string name="british">British</string>
<string name="ukrainian">Ukrainian</string>
<!-- Professions -->
<string name="astronaut">Astronaut</string>
<string name="health_worker">Health_worker</string>
<string name="farmer">Farmer</string>
<string name="rock_star">Rock_star</string>
<string name="scientist">Scientist</string>
<string name="software_dev">Software_dev</string>
<string name="firefighter">Firefighter</string>
<string name="teacher">Teacher</string>
<!-- Transportation -->
<string name="bicycle">Bicycle</string>
<string name="motor_scooter">Motor Scooter</string>
<string name="skateboard">Skateboard</string>
<string name="taxi">Taxi</string>
<string name="locomotive">Locomotive</string>
<string name="tram_car">Tram Car</string>
<string name="bus">Bus</string>
</resources>

View File

@@ -101,7 +101,7 @@ fun App(modifier: Modifier = Modifier) {
Text(time, fontSize = TextUnit(4f, TextUnitType.Em))
}
}
EndOfGame(isSolved = isSolved) {
EndOfGame(isSolved = isSolved, time = time) {
game = generateGame()
}
}

View File

@@ -18,11 +18,16 @@ import androidx.compose.ui.graphics.BlurEffect
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.sp
import org.jetbrains.compose.resources.stringResource
import yaep.commonui.generated.resources.Res
import yaep.commonui.generated.resources.restart
import yaep.commonui.generated.resources.solved
@Composable
fun EndOfGame(
modifier: Modifier = Modifier,
isSolved: Boolean,
time: String,
onRestart: () -> Unit
) {
AnimatedVisibility(
@@ -43,7 +48,7 @@ fun EndOfGame(
.align(Alignment.Center)
) {
Text(
text = "You won",
text = stringResource(Res.string.solved, time),
fontSize = 128.sp,
textAlign = TextAlign.Center,
)
@@ -51,7 +56,7 @@ fun EndOfGame(
modifier = Modifier.align(CenterHorizontally),
onClick = onRestart
) {
Text("Restart")
Text(stringResource(Res.string.restart))
}
}
}

View File

@@ -0,0 +1,163 @@
package ch.dissem.yaep.ui.common
import ch.dissem.yaep.domain.Animal
import ch.dissem.yaep.domain.Dessert
import ch.dissem.yaep.domain.Drink
import ch.dissem.yaep.domain.Fruit
import ch.dissem.yaep.domain.ItemClass
import ch.dissem.yaep.domain.Nationality
import ch.dissem.yaep.domain.Profession
import ch.dissem.yaep.domain.Transportation
import org.jetbrains.compose.resources.StringResource
import yaep.commonui.generated.resources.Res
import yaep.commonui.generated.resources.ant
import yaep.commonui.generated.resources.astronaut
import yaep.commonui.generated.resources.banana
import yaep.commonui.generated.resources.beer
import yaep.commonui.generated.resources.beverage
import yaep.commonui.generated.resources.bicycle
import yaep.commonui.generated.resources.british
import yaep.commonui.generated.resources.bus
import yaep.commonui.generated.resources.cake
import yaep.commonui.generated.resources.canadian
import yaep.commonui.generated.resources.cherries
import yaep.commonui.generated.resources.chocolate
import yaep.commonui.generated.resources.cocktail
import yaep.commonui.generated.resources.coffee
import yaep.commonui.generated.resources.cookie
import yaep.commonui.generated.resources.cupcake
import yaep.commonui.generated.resources.custard
import yaep.commonui.generated.resources.dog
import yaep.commonui.generated.resources.doughnut
import yaep.commonui.generated.resources.farmer
import yaep.commonui.generated.resources.firefighter
import yaep.commonui.generated.resources.goat
import yaep.commonui.generated.resources.grapes
import yaep.commonui.generated.resources.health_worker
import yaep.commonui.generated.resources.ice_cream
import yaep.commonui.generated.resources.japanese
import yaep.commonui.generated.resources.kiwi
import yaep.commonui.generated.resources.lemon
import yaep.commonui.generated.resources.locomotive
import yaep.commonui.generated.resources.lollipop
import yaep.commonui.generated.resources.mango
import yaep.commonui.generated.resources.milk
import yaep.commonui.generated.resources.motor_scooter
import yaep.commonui.generated.resources.norwegian
import yaep.commonui.generated.resources.octopus
import yaep.commonui.generated.resources.pear
import yaep.commonui.generated.resources.pie
import yaep.commonui.generated.resources.pineapple
import yaep.commonui.generated.resources.rock_star
import yaep.commonui.generated.resources.scientist
import yaep.commonui.generated.resources.skateboard
import yaep.commonui.generated.resources.sloth
import yaep.commonui.generated.resources.snail
import yaep.commonui.generated.resources.software_dev
import yaep.commonui.generated.resources.spanish
import yaep.commonui.generated.resources.strawberry
import yaep.commonui.generated.resources.swedish
import yaep.commonui.generated.resources.swiss
import yaep.commonui.generated.resources.taxi
import yaep.commonui.generated.resources.tea
import yaep.commonui.generated.resources.teacher
import yaep.commonui.generated.resources.tram_car
import yaep.commonui.generated.resources.ukrainian
import yaep.commonui.generated.resources.watermelon
import yaep.commonui.generated.resources.wine
import yaep.commonui.generated.resources.zebra
val ItemClass<*>.localName: StringResource
get() = when (this) {
is Animal -> this.stringResource
is Dessert -> this.stringResource
is Drink -> this.stringResource
is Fruit -> this.stringResource
is Nationality -> this.stringResource
is Profession -> this.stringResource
is Transportation -> this.stringResource
}
private val Animal.stringResource: StringResource
get() = when (this) {
Animal.ZEBRA -> Res.string.zebra
Animal.OCTOPUS -> Res.string.octopus
Animal.GOAT -> Res.string.goat
Animal.SLOTH -> Res.string.sloth
Animal.DOG -> Res.string.dog
Animal.SNAIL -> Res.string.snail
Animal.ANT -> Res.string.ant
}
private val Dessert.stringResource: StringResource
get() = when (this) {
Dessert.ICE_CREAM -> Res.string.ice_cream
Dessert.DOUGHNUT -> Res.string.doughnut
Dessert.COOKIE -> Res.string.cookie
Dessert.CAKE -> Res.string.cake
Dessert.CUPCAKE -> Res.string.cupcake
Dessert.PIE -> Res.string.pie
Dessert.CHOCOLATE -> Res.string.chocolate
Dessert.LOLLIPOP -> Res.string.lollipop
Dessert.CUSTARD -> Res.string.custard
}
private val Drink.stringResource: StringResource
get() = when (this) {
Drink.MILK -> Res.string.milk
Drink.WINE -> Res.string.wine
Drink.COCKTAIL -> Res.string.cocktail
Drink.COFFEE -> Res.string.coffee
Drink.TEA -> Res.string.tea
Drink.BEER -> Res.string.beer
Drink.BEVERAGE -> Res.string.beverage
}
private val Fruit.stringResource: StringResource
get() = when (this) {
Fruit.BANANA -> Res.string.banana
Fruit.CHERRIES -> Res.string.cherries
Fruit.GRAPES -> Res.string.grapes
Fruit.KIWI -> Res.string.kiwi
Fruit.LEMON -> Res.string.lemon
Fruit.MANGO -> Res.string.mango
Fruit.PEAR -> Res.string.pear
Fruit.PINEAPPLE -> Res.string.pineapple
Fruit.STRAWBERRY -> Res.string.strawberry
Fruit.WATERMELON -> Res.string.watermelon
}
private val Nationality.stringResource: StringResource
get() = when (this) {
Nationality.CANADA -> Res.string.canadian
Nationality.JAPAN -> Res.string.japanese
Nationality.NORWAY -> Res.string.norwegian
Nationality.SPAIN -> Res.string.spanish
Nationality.SWEDEN -> Res.string.swedish
Nationality.SWITZERLAND -> Res.string.swiss
Nationality.UNITED_KINGDOM -> Res.string.british
Nationality.UKRAINE -> Res.string.ukrainian
}
private val Profession.stringResource: StringResource
get() = when (this) {
Profession.ASTRONAUT -> Res.string.astronaut
Profession.HEALTH_WORKER -> Res.string.health_worker
Profession.FARMER -> Res.string.farmer
Profession.ROCK_STAR -> Res.string.rock_star
Profession.SCIENTIST -> Res.string.scientist
Profession.SOFTWARE_DEV -> Res.string.software_dev
Profession.FIREFIGHTER -> Res.string.firefighter
Profession.TEACHER -> Res.string.teacher
}
private val Transportation.stringResource: StringResource
get() = when (this) {
Transportation.BICYCLE -> Res.string.bicycle
Transportation.MOTOR_SCOOTER -> Res.string.motor_scooter
Transportation.SKATEBOARD -> Res.string.skateboard
Transportation.TAXI -> Res.string.taxi
Transportation.LOCOMOTIVE -> Res.string.locomotive
Transportation.TRAM_CAR -> Res.string.tram_car
Transportation.BUS -> Res.string.bus
}