@@ -16,10 +16,11 @@ import androidx.compose.runtime.*
16
16
import androidx.compose.ui.Alignment
17
17
import androidx.compose.ui.Modifier
18
18
import androidx.compose.ui.unit.dp
19
+ import bikeshare.common.generated.resources.Res
20
+ import bikeshare.common.generated.resources.allDrawableResources
19
21
import dev.johnoreilly.common.screens.CountryListScreen
20
22
import dev.johnoreilly.common.viewmodel.Country
21
- import org.jetbrains.compose.resources.DrawableResource
22
- import org.jetbrains.compose.resources.InternalResourceApi
23
+ import org.jetbrains.compose.resources.ExperimentalResourceApi
23
24
import org.jetbrains.compose.resources.painterResource
24
25
25
26
@@ -37,6 +38,7 @@ fun CountryListUi(state: CountryListScreen.State, modifier: Modifier = Modifier)
37
38
}
38
39
39
40
41
+ @OptIn(ExperimentalResourceApi ::class )
40
42
@Composable
41
43
fun CountryView (country : Country , countrySelected : (country: Country ) -> Unit ) {
42
44
Row (
@@ -46,24 +48,16 @@ fun CountryView(country: Country, countrySelected: (country: Country) -> Unit) {
46
48
.padding(start = 16 .dp, top = 8 .dp, end = 16 .dp, bottom = 8 .dp),
47
49
verticalAlignment = Alignment .CenterVertically
48
50
) {
49
- val flagDrawable = getDrawable(" flag_${country.code.lowercase()} " )
50
- Image (
51
- painterResource(flagDrawable),
52
- modifier = Modifier .size(32 .dp),
53
- contentDescription = country.displayName
54
- )
51
+ val flagDrawable = Res .allDrawableResources[" flag_${country.code.lowercase()} " ]
52
+ if (flagDrawable != null ) {
53
+ Image (
54
+ painterResource(flagDrawable),
55
+ modifier = Modifier .size(32 .dp),
56
+ contentDescription = country.displayName
57
+ )
58
+ }
55
59
56
60
Spacer (modifier = Modifier .size(16 .dp))
57
61
Text (text = country.displayName, style = MaterialTheme .typography.bodyLarge)
58
62
}
59
- }
60
-
61
- @OptIn(InternalResourceApi ::class )
62
- private fun getDrawable (id : String ): DrawableResource =
63
- DrawableResource (
64
- " drawable:$id " ,
65
- setOf (
66
- org.jetbrains.compose.resources.ResourceItem (setOf (),
67
- " composeResources/bikeshare.common.generated.resources/drawable/$id .xml" , - 1 , - 1 ),
68
- )
69
- )
63
+ }
0 commit comments