From e7860e4f558ee12403a86c5fde4667cf9bb8b5e5 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 23 Sep 2020 15:27:10 +0530 Subject: [PATCH] api: add support for pagination Signed-off-by: Harsh Shandilya --- app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt | 2 +- .../src/main/java/dev/msfjarvis/lobsters/api/LobstersApi.kt | 3 ++- .../test/java/dev/msfjarvis/lobsters/api/LobstersApiTest.kt | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt index 9780be37..78347472 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt @@ -37,7 +37,7 @@ class MainActivity : AppCompatActivity() { val coroutineScope = rememberCoroutineScope() val posts = mutableStateListOf() coroutineScope.launch { - posts.addAll(apiClient.getHottestPosts()) + posts.addAll(apiClient.getHottestPosts(1)) } LobstersApp(posts) } 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 f90b4e1b..4a6d1621 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 @@ -2,8 +2,9 @@ package dev.msfjarvis.lobsters.api import dev.msfjarvis.lobsters.model.LobstersPost import retrofit2.http.GET +import retrofit2.http.Query interface LobstersApi { @GET("hottest.json") - suspend fun getHottestPosts(): List + suspend fun getHottestPosts(@Query("page") page: Int): List } diff --git a/lobsters-api/src/test/java/dev/msfjarvis/lobsters/api/LobstersApiTest.kt b/lobsters-api/src/test/java/dev/msfjarvis/lobsters/api/LobstersApiTest.kt index 9e567ce9..d28903b6 100644 --- a/lobsters-api/src/test/java/dev/msfjarvis/lobsters/api/LobstersApiTest.kt +++ b/lobsters-api/src/test/java/dev/msfjarvis/lobsters/api/LobstersApiTest.kt @@ -27,7 +27,7 @@ class LobstersApiTest { @Test fun `api gets correct number of items`() = runBlocking { - val posts = apiClient.getHottestPosts() + val posts = apiClient.getHottestPosts(1) assertEquals(25, posts.size) }