diff --git a/app/src/main/java/com/skydoves/pokedex/di/NetworkModule.kt b/app/src/main/java/com/skydoves/pokedex/di/NetworkModule.kt index bd6711425..0fda9320c 100644 --- a/app/src/main/java/com/skydoves/pokedex/di/NetworkModule.kt +++ b/app/src/main/java/com/skydoves/pokedex/di/NetworkModule.kt @@ -48,7 +48,7 @@ object NetworkModule { .client(okHttpClient) .baseUrl("https://pokeapi.co/api/v2/") .addConverterFactory(MoshiConverterFactory.create()) - .addCallAdapterFactory(CoroutinesResponseCallAdapterFactory()) + .addCallAdapterFactory(CoroutinesResponseCallAdapterFactory.create()) .build() } diff --git a/app/src/main/java/com/skydoves/pokedex/repository/DetailRepository.kt b/app/src/main/java/com/skydoves/pokedex/repository/DetailRepository.kt index 50ea5eca8..b24f08f68 100644 --- a/app/src/main/java/com/skydoves/pokedex/repository/DetailRepository.kt +++ b/app/src/main/java/com/skydoves/pokedex/repository/DetailRepository.kt @@ -27,7 +27,6 @@ import com.skydoves.sandwich.map import com.skydoves.sandwich.onError import com.skydoves.sandwich.onException import com.skydoves.sandwich.suspendOnSuccess -import com.skydoves.whatif.whatIfNotNull import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn @@ -53,10 +52,8 @@ class DetailRepository @Inject constructor( */ val response = pokedexClient.fetchPokemonInfo(name = name) response.suspendOnSuccess { - data.whatIfNotNull { response -> - pokemonInfoDao.insertPokemonInfo(response) - emit(response) - } + pokemonInfoDao.insertPokemonInfo(data) + emit(data) } // handles the case when the API request gets an error response. // e.g., internal server error. diff --git a/app/src/main/java/com/skydoves/pokedex/repository/MainRepository.kt b/app/src/main/java/com/skydoves/pokedex/repository/MainRepository.kt index e35e7fbee..080122f04 100644 --- a/app/src/main/java/com/skydoves/pokedex/repository/MainRepository.kt +++ b/app/src/main/java/com/skydoves/pokedex/repository/MainRepository.kt @@ -27,7 +27,6 @@ import com.skydoves.sandwich.map import com.skydoves.sandwich.onError import com.skydoves.sandwich.onException import com.skydoves.sandwich.suspendOnSuccess -import com.skydoves.whatif.whatIfNotNull import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn @@ -55,12 +54,10 @@ class MainRepository @Inject constructor( */ val response = pokedexClient.fetchPokemonList(page = page) response.suspendOnSuccess { - data.whatIfNotNull { response -> - pokemons = response.results - pokemons.forEach { pokemon -> pokemon.page = page } - pokemonDao.insertPokemonList(pokemons) - emit(pokemonDao.getAllPokemonList(page)) - } + pokemons = data.results + pokemons.forEach { pokemon -> pokemon.page = page } + pokemonDao.insertPokemonList(pokemons) + emit(pokemonDao.getAllPokemonList(page)) } // handles the case when the API request gets an error response. // e.g., internal server error. diff --git a/app/src/test/java/com/skydoves/pokedex/network/ApiAbstract.kt b/app/src/test/java/com/skydoves/pokedex/network/ApiAbstract.kt index c0141e20c..163729702 100644 --- a/app/src/test/java/com/skydoves/pokedex/network/ApiAbstract.kt +++ b/app/src/test/java/com/skydoves/pokedex/network/ApiAbstract.kt @@ -74,7 +74,7 @@ abstract class ApiAbstract { return Retrofit.Builder() .baseUrl(mockWebServer.url("/")) .addConverterFactory(MoshiConverterFactory.create()) - .addCallAdapterFactory(CoroutinesResponseCallAdapterFactory()) + .addCallAdapterFactory(CoroutinesResponseCallAdapterFactory.create()) .build() .create(clazz) } diff --git a/dependencies.gradle b/dependencies.gradle index ec030ec9f..1ce959ff3 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -51,7 +51,7 @@ ext.versions = [ // network retrofitVersion : '2.9.0', okhttpVersion : '4.9.0', - sandwichVersion : '1.0.9', + sandwichVersion : '1.2.0', // moshi moshiVersion : '1.11.0',