diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5c8891a..360f9ab 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -66,4 +66,6 @@ dependencies { debugImplementation(libs.androidx.ui.test.manifest) implementation("androidx.navigation:navigation-compose:$nav_version") implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1") + implementation("com.squareup.retrofit2:retrofit:2.9.0") + implementation("com.squareup.retrofit2:converter-gson:2.9.0") } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9ab37b6..8df0ded 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ + +) + +interface PokeApiService { + @GET("pokemon-species/?offset=0&limit=1025") + fun getPokemonSpecies(): Call +} class PokeSearchViewModel : ViewModel() { + private val retrofit = Retrofit.Builder() + .baseUrl("https://pokeapi.co/api/v2/") + .addConverterFactory(GsonConverterFactory.create()) + .build() + + private val service = retrofit.create(PokeApiService::class.java) + private val _uiState = MutableStateFlow(PokeSearchUiState()) val uiState: StateFlow = _uiState.asStateFlow() -} \ No newline at end of file + private var pokemonList: List? = null + + init { + fetchPokemonSpecies() + } + + private fun fetchPokemonSpecies() { + service.getPokemonSpecies().enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, response: retrofit2.Response) { + if (response.isSuccessful) { + val speciesResponse = response.body() + pokemonList = speciesResponse?.results + } + } + + override fun onFailure(call: Call, t: Throwable) { + /*TODO*/ + } + }) + } +}