From a66186adc3723914b65480618bf084c50a72b43f Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 23 Sep 2020 13:48:37 +0530 Subject: [PATCH] all: use retrofit suspend support to hide implementation details of API Signed-off-by: Harsh Shandilya --- .../dev/msfjarvis/lobsters/MainActivity.kt | 18 +----------------- lobsters-api/build.gradle | 2 +- .../dev/msfjarvis/lobsters/api/LobstersApi.kt | 3 +-- 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt index ab159edf..9780be37 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt @@ -20,9 +20,6 @@ import dev.msfjarvis.lobsters.ui.LobstersItem import dev.msfjarvis.lobsters.ui.LobstersTheme import dev.msfjarvis.lobsters.urllauncher.UrlLauncher import kotlinx.coroutines.launch -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response import javax.inject.Inject val UrlLauncherAmbient = ambientOf { error("Needs to be provided") } @@ -40,20 +37,7 @@ class MainActivity : AppCompatActivity() { val coroutineScope = rememberCoroutineScope() val posts = mutableStateListOf() coroutineScope.launch { - apiClient.getHottestPosts().enqueue(object : Callback> { - override fun onResponse( - call: Call>, - response: Response> - ) { - if (response.isSuccessful) { - response.body()?.let { posts.addAll(it) } - } - } - - override fun onFailure(call: Call>, t: Throwable) { - TODO("Not yet implemented") - } - }) + posts.addAll(apiClient.getHottestPosts()) } LobstersApp(posts) } diff --git a/lobsters-api/build.gradle b/lobsters-api/build.gradle index 7c1d953e..c95a89b1 100644 --- a/lobsters-api/build.gradle +++ b/lobsters-api/build.gradle @@ -7,7 +7,7 @@ dependencies { def moshi_version = "1.9.3" def retrofit_version = "2.9.0" implementation project(":model") - api "com.squareup.retrofit2:retrofit:$retrofit_version" + implementation "com.squareup.retrofit2:retrofit:$retrofit_version" implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version" kaptTest "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version" testImplementation 'junit:junit:4.13' diff --git a/lobsters-api/src/main/java/dev/msfjarvis/lobsters/api/LobstersApi.kt b/lobsters-api/src/main/java/dev/msfjarvis/lobsters/api/LobstersApi.kt index 5422bc7a..f90b4e1b 100644 --- a/lobsters-api/src/main/java/dev/msfjarvis/lobsters/api/LobstersApi.kt +++ b/lobsters-api/src/main/java/dev/msfjarvis/lobsters/api/LobstersApi.kt @@ -1,10 +1,9 @@ package dev.msfjarvis.lobsters.api import dev.msfjarvis.lobsters.model.LobstersPost -import retrofit2.Call import retrofit2.http.GET interface LobstersApi { @GET("hottest.json") - fun getHottestPosts(): Call> + suspend fun getHottestPosts(): List }