diff --git a/composeApp/src/commonMain/kotlin/App.kt b/composeApp/src/commonMain/kotlin/App.kt index 1ca9b6d..e2c814a 100644 --- a/composeApp/src/commonMain/kotlin/App.kt +++ b/composeApp/src/commonMain/kotlin/App.kt @@ -36,6 +36,7 @@ import pokedex.composeapp.generated.resources.Res import pokedex.composeapp.generated.resources.*; import java.net.URL +import java.util.Locale @OptIn(ExperimentalResourceApi::class) @Composable @@ -71,9 +72,9 @@ fun App() { if (!dataLoaded) { // Load data asynchronously LaunchedEffect(Unit) { - pokemap = withContext(Dispatchers.IO) { - loadPokemonData(apiString) - } as ArrayList + pokemap = withContext(Dispatchers.IO) { + loadPokemonData(apiString, 1, 10) + } as ArrayList pokemap.forEach { pokemon -> println(pokemon) @@ -81,6 +82,7 @@ fun App() { dataLoaded = true } + //Show Loading Circle Box(modifier = Modifier.background(color = orange).fillMaxSize()) { Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { @@ -155,17 +157,19 @@ fun App() { } // Function to load Pokemon data asynchronously -suspend fun loadPokemonData(apiString: String): List { +suspend fun loadPokemonData(apiString: String, startId: Int, endId: Int): List { val pokemap = ArrayList() - for (i in 1..10) { + for (i in startId..endId) { val json = JSONObject(URL(apiString + i).readText()); val sprites = json.optJSONObject("sprites") val types = json.getJSONArray("types") val firstType = types.optJSONObject(0) val type: String = firstType.optJSONObject("type").optString("name") + val name: String = json.optString("name") + .replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } val pokemon = Pokemon( - json.optString("name"), URL(sprites.optString("front_default")), type, json.optInt("id") + name, URL(sprites.optString("front_default")), type, json.optInt("id") ) pokemap.add(pokemon)