diff --git a/samples/pagination/manual/app/build.gradle.kts b/samples/pagination/manual/app/build.gradle.kts index 780b6bbe..2980809f 100644 --- a/samples/pagination/manual/app/build.gradle.kts +++ b/samples/pagination/manual/app/build.gradle.kts @@ -3,8 +3,8 @@ fun prop(key: String) = project.findProperty(key).toString() plugins { id("com.android.application") id("org.jetbrains.kotlin.android") - id("com.apollographql.apollo").version("4.1.0") - id("org.jetbrains.kotlin.plugin.compose").version("2.0.21") + id("com.apollographql.apollo").version("4.1.1") + id("org.jetbrains.kotlin.plugin.compose").version("2.1.10") } android { @@ -69,15 +69,15 @@ apollo { dependencies { implementation("androidx.core:core-ktx:1.15.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7") - implementation("androidx.activity:activity-compose:1.9.3") - implementation(platform("androidx.compose:compose-bom:2024.10.01")) + implementation("androidx.activity:activity-compose:1.10.1") + implementation(platform("androidx.compose:compose-bom:2025.03.01")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") implementation("com.apollographql.apollo:apollo-runtime") - implementation("com.apollographql.cache:normalized-cache-sqlite-incubating:0.0.4") + implementation("com.apollographql.cache:normalized-cache-sqlite-incubating:0.0.8") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") diff --git a/samples/pagination/manual/app/src/main/graphql/extra.graphqls b/samples/pagination/manual/app/src/main/graphql/extra.graphqls index ab59d2dd..1ef87a9e 100644 --- a/samples/pagination/manual/app/src/main/graphql/extra.graphqls +++ b/samples/pagination/manual/app/src/main/graphql/extra.graphqls @@ -1,11 +1,7 @@ extend schema @link( url: "https://specs.apollo.dev/kotlin_labs/v0.3", - import: ["@nonnull", "@typePolicy"] + import: ["@typePolicy"] ) -extend type Query @nonnull(fields: "organization") -extend type RepositoryConnection @nonnull(fields: "edges") -extend type RepositoryEdge @nonnull(fields: "node") - extend type Repository @typePolicy(keyFields: "id") diff --git a/samples/pagination/manual/app/src/main/java/com/example/apollokotlinpaginationsample/Application.kt b/samples/pagination/manual/app/src/main/kotlin/com/example/apollokotlinpaginationsample/Application.kt similarity index 100% rename from samples/pagination/manual/app/src/main/java/com/example/apollokotlinpaginationsample/Application.kt rename to samples/pagination/manual/app/src/main/kotlin/com/example/apollokotlinpaginationsample/Application.kt diff --git a/samples/pagination/manual/app/src/main/java/com/example/apollokotlinpaginationsample/repository/Apollo.kt b/samples/pagination/manual/app/src/main/kotlin/com/example/apollokotlinpaginationsample/repository/Apollo.kt similarity index 81% rename from samples/pagination/manual/app/src/main/java/com/example/apollokotlinpaginationsample/repository/Apollo.kt rename to samples/pagination/manual/app/src/main/kotlin/com/example/apollokotlinpaginationsample/repository/Apollo.kt index a1a73d17..ba76567e 100644 --- a/samples/pagination/manual/app/src/main/java/com/example/apollokotlinpaginationsample/repository/Apollo.kt +++ b/samples/pagination/manual/app/src/main/kotlin/com/example/apollokotlinpaginationsample/repository/Apollo.kt @@ -43,22 +43,22 @@ suspend fun fetchAndMergeNextPage() { val cacheResponse = apolloClient.query(listQuery).fetchPolicy(FetchPolicy.CacheOnly).execute() // 2. Fetch the next page from the network (don't update the cache yet) - val after = cacheResponse.data!!.organization.repositories.pageInfo.endCursor + val after = cacheResponse.data!!.organization!!.repositories.pageInfo.endCursor val networkResponse = apolloClient.query(RepositoryListQuery(after = Optional.presentIfNotNull(after))).fetchPolicy(FetchPolicy.NetworkOnly).execute() // 3. Merge the next page with the current list - val mergedList = cacheResponse.data!!.organization.repositories.edges + networkResponse.data!!.organization.repositories.edges + val mergedList = cacheResponse.data!!.organization!!.repositories.edges!! + networkResponse.data!!.organization!!.repositories.edges!! val dataWithMergedList = networkResponse.data!!.copy( - organization = networkResponse.data!!.organization.copy( - repositories = networkResponse.data!!.organization.repositories.copy( - pageInfo = networkResponse.data!!.organization.repositories.pageInfo, + organization = networkResponse.data!!.organization!!.copy( + repositories = networkResponse.data!!.organization!!.repositories.copy( + pageInfo = networkResponse.data!!.organization!!.repositories.pageInfo, edges = mergedList ) ) ) // 4. Update the cache with the merged list - apolloClient.apolloStore.writeOperation(operation = listQuery, operationData = dataWithMergedList).also { keys -> + apolloClient.apolloStore.writeOperation(operation = listQuery, data = dataWithMergedList).also { keys -> apolloClient.apolloStore.publish(keys) } } diff --git a/samples/pagination/pagination-support/app/src/main/java/com/example/apollokotlinpaginationsample/ui/MainActivity.kt b/samples/pagination/manual/app/src/main/kotlin/com/example/apollokotlinpaginationsample/ui/MainActivity.kt similarity index 96% rename from samples/pagination/pagination-support/app/src/main/java/com/example/apollokotlinpaginationsample/ui/MainActivity.kt rename to samples/pagination/manual/app/src/main/kotlin/com/example/apollokotlinpaginationsample/ui/MainActivity.kt index 315bf670..2d75a98d 100644 --- a/samples/pagination/pagination-support/app/src/main/java/com/example/apollokotlinpaginationsample/ui/MainActivity.kt +++ b/samples/pagination/manual/app/src/main/kotlin/com/example/apollokotlinpaginationsample/ui/MainActivity.kt @@ -27,10 +27,10 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import com.apollographql.apollo.api.ApolloResponse -import com.apollographql.apollo.exception.CacheMissException import com.apollographql.cache.normalized.FetchPolicy import com.apollographql.cache.normalized.fetchPolicy import com.apollographql.cache.normalized.watch +import com.apollographql.apollo.exception.CacheMissException import com.example.apollokotlinpaginationsample.R import com.example.apollokotlinpaginationsample.graphql.RepositoryListQuery import com.example.apollokotlinpaginationsample.graphql.fragment.RepositoryFields @@ -84,11 +84,11 @@ private fun RefreshBanner() { @Composable private fun RepositoryList(response: ApolloResponse) { LazyColumn(modifier = Modifier.fillMaxSize()) { - items(response.data!!.organization.repositories.edges.map { it!!.node.repositoryFields }) { + items(response.data!!.organization!!.repositories.edges!!.map { it!!.node!!.repositoryFields }) { RepositoryItem(it) } item { - if (response.data!!.organization.repositories.pageInfo.hasNextPage) { + if (response.data!!.organization!!.repositories.pageInfo.hasNextPage) { LoadingItem() LaunchedEffect(Unit) { fetchAndMergeNextPage() diff --git a/samples/pagination/manual/build.gradle.kts b/samples/pagination/manual/build.gradle.kts index c531ec6a..16e1b4d8 100644 --- a/samples/pagination/manual/build.gradle.kts +++ b/samples/pagination/manual/build.gradle.kts @@ -1,5 +1,5 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id("com.android.application") version "8.7.2" apply false - id("org.jetbrains.kotlin.android") version "2.0.21" apply false + id("com.android.application") version "8.9.1" apply false + id("org.jetbrains.kotlin.android") version "2.1.10" apply false } diff --git a/samples/pagination/manual/gradle.properties b/samples/pagination/manual/gradle.properties index eb282037..c279a2d7 100644 --- a/samples/pagination/manual/gradle.properties +++ b/samples/pagination/manual/gradle.properties @@ -26,4 +26,4 @@ kotlin.code.style=official android.nonTransitiveRClass=true # Get a Github API Oauth token here: https://github.com/settings/tokens -githubOauthKey=XXXXXXXXXXX +#githubOauthKey=XXXXXXXXXXX diff --git a/samples/pagination/manual/gradle/wrapper/gradle-wrapper.properties b/samples/pagination/manual/gradle/wrapper/gradle-wrapper.properties index 0965f9a3..af48b6c1 100644 --- a/samples/pagination/manual/gradle/wrapper/gradle-wrapper.properties +++ b/samples/pagination/manual/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Fri Jan 19 14:54:45 CET 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/pagination/pagination-support-with-jetpack-paging/app/build.gradle.kts b/samples/pagination/pagination-support-with-jetpack-paging/app/build.gradle.kts index 27f12281..725fc09c 100644 --- a/samples/pagination/pagination-support-with-jetpack-paging/app/build.gradle.kts +++ b/samples/pagination/pagination-support-with-jetpack-paging/app/build.gradle.kts @@ -3,8 +3,8 @@ fun prop(key: String) = project.findProperty(key).toString() plugins { id("com.android.application") id("org.jetbrains.kotlin.android") - id("com.apollographql.apollo").version("4.1.0") - id("org.jetbrains.kotlin.plugin.compose").version("2.0.21") + id("com.apollographql.apollo").version("4.1.1") + id("org.jetbrains.kotlin.plugin.compose").version("2.1.10") } android { @@ -69,18 +69,18 @@ apollo { dependencies { implementation("androidx.core:core-ktx:1.15.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7") - implementation("androidx.activity:activity-compose:1.9.3") - implementation(platform("androidx.compose:compose-bom:2024.10.01")) + implementation("androidx.activity:activity-compose:1.10.1") + implementation(platform("androidx.compose:compose-bom:2025.03.01")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") implementation("com.apollographql.apollo:apollo-runtime") - implementation("com.apollographql.cache:normalized-cache-sqlite-incubating:0.0.4") + implementation("com.apollographql.cache:normalized-cache-sqlite-incubating:0.0.8") - implementation("androidx.paging:paging-runtime-ktx:3.3.2") - implementation("androidx.paging:paging-compose:3.3.2") + implementation("androidx.paging:paging-runtime-ktx:3.3.6") + implementation("androidx.paging:paging-compose:3.3.6") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") diff --git a/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/graphql/extra.graphqls b/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/graphql/extra.graphqls index 8620dec5..208879d4 100644 --- a/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/graphql/extra.graphqls +++ b/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/graphql/extra.graphqls @@ -1,13 +1,9 @@ extend schema @link( url: "https://specs.apollo.dev/kotlin_labs/v0.3", - import: ["@nonnull", "@typePolicy"] + import: ["@typePolicy"] ) -extend type Query @nonnull(fields: "organization") -extend type RepositoryConnection @nonnull(fields: "edges") -extend type RepositoryEdge @nonnull(fields: "node") - extend type Repository @typePolicy(keyFields: "id") extend type Organization @typePolicy(connectionFields: "repositories") diff --git a/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/java/com/example/apollokotlinpaginationsample/Application.kt b/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/kotlin/com/example/apollokotlinpaginationsample/Application.kt similarity index 100% rename from samples/pagination/pagination-support-with-jetpack-paging/app/src/main/java/com/example/apollokotlinpaginationsample/Application.kt rename to samples/pagination/pagination-support-with-jetpack-paging/app/src/main/kotlin/com/example/apollokotlinpaginationsample/Application.kt diff --git a/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/java/com/example/apollokotlinpaginationsample/repository/Apollo.kt b/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/kotlin/com/example/apollokotlinpaginationsample/repository/Apollo.kt similarity index 90% rename from samples/pagination/pagination-support-with-jetpack-paging/app/src/main/java/com/example/apollokotlinpaginationsample/repository/Apollo.kt rename to samples/pagination/pagination-support-with-jetpack-paging/app/src/main/kotlin/com/example/apollokotlinpaginationsample/repository/Apollo.kt index 5efb8660..b6b9e4e3 100644 --- a/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/java/com/example/apollokotlinpaginationsample/repository/Apollo.kt +++ b/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/kotlin/com/example/apollokotlinpaginationsample/repository/Apollo.kt @@ -14,8 +14,6 @@ import com.apollographql.cache.normalized.ApolloStore import com.apollographql.cache.normalized.FetchPolicy import com.apollographql.cache.normalized.api.ConnectionMetadataGenerator import com.apollographql.cache.normalized.api.ConnectionRecordMerger -import com.apollographql.cache.normalized.api.FieldPolicyCacheResolver -import com.apollographql.cache.normalized.api.TypePolicyCacheKeyGenerator import com.apollographql.cache.normalized.fetchPolicy import com.apollographql.cache.normalized.memory.MemoryCacheFactory import com.apollographql.cache.normalized.sql.SqlNormalizedCacheFactory @@ -52,9 +50,7 @@ val apolloClient: ApolloClient by lazy { .store( ApolloStore( normalizedCacheFactory = memoryThenSqlCache, - cacheKeyGenerator = TypePolicyCacheKeyGenerator, metadataGenerator = ConnectionMetadataGenerator(Pagination.connectionTypes), - cacheResolver = FieldPolicyCacheResolver, recordMerger = ConnectionRecordMerger ) ) @@ -91,7 +87,8 @@ class RepositoryRemoteMediator : RemoteMediator): String? { - return state.anchorPosition?.let { state.closestItemToPosition((it - state.config.initialLoadSize / 2).coerceAtLeast(0)) }?.cursor + return state.anchorPosition?.let { + state.closestItemToPosition( + (it - state.config.initialLoadSize / 2).coerceAtLeast( + 0 + ) + ) + }?.cursor } override val keyReuseSupported = true diff --git a/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/java/com/example/apollokotlinpaginationsample/ui/MainActivity.kt b/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/kotlin/com/example/apollokotlinpaginationsample/ui/MainActivity.kt similarity index 91% rename from samples/pagination/pagination-support-with-jetpack-paging/app/src/main/java/com/example/apollokotlinpaginationsample/ui/MainActivity.kt rename to samples/pagination/pagination-support-with-jetpack-paging/app/src/main/kotlin/com/example/apollokotlinpaginationsample/ui/MainActivity.kt index 7c4da694..d64ab843 100644 --- a/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/java/com/example/apollokotlinpaginationsample/ui/MainActivity.kt +++ b/samples/pagination/pagination-support-with-jetpack-paging/app/src/main/kotlin/com/example/apollokotlinpaginationsample/ui/MainActivity.kt @@ -50,7 +50,8 @@ class MainActivity : ComponentActivity() { }, ).flow setContent { - val repositoryPagingItems: LazyPagingItems = repositoryPagingData.collectAsLazyPagingItems() + val repositoryPagingItems: LazyPagingItems = + repositoryPagingData.collectAsLazyPagingItems() MaterialTheme { Column(modifier = Modifier.fillMaxSize()) { RefreshBanner(repositoryPagingItems) @@ -80,10 +81,10 @@ private fun RepositoryList(repositoryPagingItems: LazyPagingItems val edge: RepositoryListQuery.Edge = repositoryPagingItems[index]!! - RepositoryItem(edge.node.repositoryFields) + RepositoryItem(edge.node!!.repositoryFields) } if (repositoryPagingItems.loadState.append == LoadState.Loading) { @@ -100,7 +101,10 @@ private fun RepositoryItem(repositoryFields: RepositoryFields) { headlineContent = { Row(verticalAlignment = Alignment.CenterVertically) { Text(modifier = Modifier.weight(1F), text = repositoryFields.name) - Text(text = repositoryFields.stargazers.totalCount.toString(), style = MaterialTheme.typography.bodyMedium) + Text( + text = repositoryFields.stargazers.totalCount.toString(), + style = MaterialTheme.typography.bodyMedium + ) Icon( painter = painterResource(R.drawable.ic_star_black_16dp), contentDescription = null diff --git a/samples/pagination/pagination-support-with-jetpack-paging/build.gradle.kts b/samples/pagination/pagination-support-with-jetpack-paging/build.gradle.kts index c531ec6a..16e1b4d8 100644 --- a/samples/pagination/pagination-support-with-jetpack-paging/build.gradle.kts +++ b/samples/pagination/pagination-support-with-jetpack-paging/build.gradle.kts @@ -1,5 +1,5 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id("com.android.application") version "8.7.2" apply false - id("org.jetbrains.kotlin.android") version "2.0.21" apply false + id("com.android.application") version "8.9.1" apply false + id("org.jetbrains.kotlin.android") version "2.1.10" apply false } diff --git a/samples/pagination/pagination-support-with-jetpack-paging/gradle.properties b/samples/pagination/pagination-support-with-jetpack-paging/gradle.properties index 309951ac..c279a2d7 100644 --- a/samples/pagination/pagination-support-with-jetpack-paging/gradle.properties +++ b/samples/pagination/pagination-support-with-jetpack-paging/gradle.properties @@ -26,5 +26,4 @@ kotlin.code.style=official android.nonTransitiveRClass=true # Get a Github API Oauth token here: https://github.com/settings/tokens -githubOauthKey=ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - +#githubOauthKey=XXXXXXXXXXX diff --git a/samples/pagination/pagination-support-with-jetpack-paging/gradle/wrapper/gradle-wrapper.properties b/samples/pagination/pagination-support-with-jetpack-paging/gradle/wrapper/gradle-wrapper.properties index 0965f9a3..af48b6c1 100644 --- a/samples/pagination/pagination-support-with-jetpack-paging/gradle/wrapper/gradle-wrapper.properties +++ b/samples/pagination/pagination-support-with-jetpack-paging/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Fri Jan 19 14:54:45 CET 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/pagination/pagination-support/app/build.gradle.kts b/samples/pagination/pagination-support/app/build.gradle.kts index 780b6bbe..2980809f 100644 --- a/samples/pagination/pagination-support/app/build.gradle.kts +++ b/samples/pagination/pagination-support/app/build.gradle.kts @@ -3,8 +3,8 @@ fun prop(key: String) = project.findProperty(key).toString() plugins { id("com.android.application") id("org.jetbrains.kotlin.android") - id("com.apollographql.apollo").version("4.1.0") - id("org.jetbrains.kotlin.plugin.compose").version("2.0.21") + id("com.apollographql.apollo").version("4.1.1") + id("org.jetbrains.kotlin.plugin.compose").version("2.1.10") } android { @@ -69,15 +69,15 @@ apollo { dependencies { implementation("androidx.core:core-ktx:1.15.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7") - implementation("androidx.activity:activity-compose:1.9.3") - implementation(platform("androidx.compose:compose-bom:2024.10.01")) + implementation("androidx.activity:activity-compose:1.10.1") + implementation(platform("androidx.compose:compose-bom:2025.03.01")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") implementation("com.apollographql.apollo:apollo-runtime") - implementation("com.apollographql.cache:normalized-cache-sqlite-incubating:0.0.4") + implementation("com.apollographql.cache:normalized-cache-sqlite-incubating:0.0.8") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") diff --git a/samples/pagination/pagination-support/app/src/main/graphql/extra.graphqls b/samples/pagination/pagination-support/app/src/main/graphql/extra.graphqls index 8620dec5..208879d4 100644 --- a/samples/pagination/pagination-support/app/src/main/graphql/extra.graphqls +++ b/samples/pagination/pagination-support/app/src/main/graphql/extra.graphqls @@ -1,13 +1,9 @@ extend schema @link( url: "https://specs.apollo.dev/kotlin_labs/v0.3", - import: ["@nonnull", "@typePolicy"] + import: ["@typePolicy"] ) -extend type Query @nonnull(fields: "organization") -extend type RepositoryConnection @nonnull(fields: "edges") -extend type RepositoryEdge @nonnull(fields: "node") - extend type Repository @typePolicy(keyFields: "id") extend type Organization @typePolicy(connectionFields: "repositories") diff --git a/samples/pagination/pagination-support/app/src/main/java/com/example/apollokotlinpaginationsample/Application.kt b/samples/pagination/pagination-support/app/src/main/kotlin/com/example/apollokotlinpaginationsample/Application.kt similarity index 100% rename from samples/pagination/pagination-support/app/src/main/java/com/example/apollokotlinpaginationsample/Application.kt rename to samples/pagination/pagination-support/app/src/main/kotlin/com/example/apollokotlinpaginationsample/Application.kt diff --git a/samples/pagination/pagination-support/app/src/main/java/com/example/apollokotlinpaginationsample/repository/Apollo.kt b/samples/pagination/pagination-support/app/src/main/kotlin/com/example/apollokotlinpaginationsample/repository/Apollo.kt similarity index 92% rename from samples/pagination/pagination-support/app/src/main/java/com/example/apollokotlinpaginationsample/repository/Apollo.kt rename to samples/pagination/pagination-support/app/src/main/kotlin/com/example/apollokotlinpaginationsample/repository/Apollo.kt index 5ac1ad0e..a9f01e2c 100644 --- a/samples/pagination/pagination-support/app/src/main/java/com/example/apollokotlinpaginationsample/repository/Apollo.kt +++ b/samples/pagination/pagination-support/app/src/main/kotlin/com/example/apollokotlinpaginationsample/repository/Apollo.kt @@ -40,9 +40,7 @@ val apolloClient: ApolloClient by lazy { .store( ApolloStore( normalizedCacheFactory = memoryThenSqlCache, - cacheKeyGenerator = TypePolicyCacheKeyGenerator, metadataGenerator = ConnectionMetadataGenerator(Pagination.connectionTypes), - cacheResolver = FieldPolicyCacheResolver, recordMerger = ConnectionRecordMerger ) ) @@ -56,6 +54,6 @@ suspend fun fetchAndMergeNextPage() { val cacheResponse = apolloClient.query(listQuery).fetchPolicy(FetchPolicy.CacheOnly).execute() // 2. Fetch the next page from the network and store it in the cache - val after = cacheResponse.data!!.organization.repositories.pageInfo.endCursor + val after = cacheResponse.data!!.organization!!.repositories.pageInfo.endCursor apolloClient.query(RepositoryListQuery(after = Optional.presentIfNotNull(after))).fetchPolicy(FetchPolicy.NetworkOnly).execute() } diff --git a/samples/pagination/manual/app/src/main/java/com/example/apollokotlinpaginationsample/ui/MainActivity.kt b/samples/pagination/pagination-support/app/src/main/kotlin/com/example/apollokotlinpaginationsample/ui/MainActivity.kt similarity index 96% rename from samples/pagination/manual/app/src/main/java/com/example/apollokotlinpaginationsample/ui/MainActivity.kt rename to samples/pagination/pagination-support/app/src/main/kotlin/com/example/apollokotlinpaginationsample/ui/MainActivity.kt index 5a323be3..789dab41 100644 --- a/samples/pagination/manual/app/src/main/java/com/example/apollokotlinpaginationsample/ui/MainActivity.kt +++ b/samples/pagination/pagination-support/app/src/main/kotlin/com/example/apollokotlinpaginationsample/ui/MainActivity.kt @@ -27,10 +27,10 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import com.apollographql.apollo.api.ApolloResponse +import com.apollographql.apollo.exception.CacheMissException import com.apollographql.cache.normalized.FetchPolicy import com.apollographql.cache.normalized.fetchPolicy import com.apollographql.cache.normalized.watch -import com.apollographql.apollo.exception.CacheMissException import com.example.apollokotlinpaginationsample.R import com.example.apollokotlinpaginationsample.graphql.RepositoryListQuery import com.example.apollokotlinpaginationsample.graphql.fragment.RepositoryFields @@ -84,11 +84,11 @@ private fun RefreshBanner() { @Composable private fun RepositoryList(response: ApolloResponse) { LazyColumn(modifier = Modifier.fillMaxSize()) { - items(response.data!!.organization.repositories.edges.map { it!!.node.repositoryFields }) { + items(response.data!!.organization!!.repositories.edges!!.map { it!!.node!!.repositoryFields }) { RepositoryItem(it) } item { - if (response.data!!.organization.repositories.pageInfo.hasNextPage) { + if (response.data!!.organization!!.repositories.pageInfo.hasNextPage) { LoadingItem() LaunchedEffect(Unit) { fetchAndMergeNextPage() diff --git a/samples/pagination/pagination-support/build.gradle.kts b/samples/pagination/pagination-support/build.gradle.kts index fe2bdb79..16e1b4d8 100644 --- a/samples/pagination/pagination-support/build.gradle.kts +++ b/samples/pagination/pagination-support/build.gradle.kts @@ -1,5 +1,5 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id("com.android.application") version "8.7.2" apply false - id("org.jetbrains.kotlin.android") version "2.0.21" apply false + id("com.android.application") version "8.9.1" apply false + id("org.jetbrains.kotlin.android") version "2.1.10" apply false } diff --git a/samples/pagination/pagination-support/gradle.properties b/samples/pagination/pagination-support/gradle.properties index 77e99b2e..c279a2d7 100644 --- a/samples/pagination/pagination-support/gradle.properties +++ b/samples/pagination/pagination-support/gradle.properties @@ -26,5 +26,4 @@ kotlin.code.style=official android.nonTransitiveRClass=true # Get a Github API Oauth token here: https://github.com/settings/tokens -githubOauthKey=XXXXXXXXXXX - +#githubOauthKey=XXXXXXXXXXX diff --git a/samples/pagination/pagination-support/gradle/wrapper/gradle-wrapper.properties b/samples/pagination/pagination-support/gradle/wrapper/gradle-wrapper.properties index 0965f9a3..af48b6c1 100644 --- a/samples/pagination/pagination-support/gradle/wrapper/gradle-wrapper.properties +++ b/samples/pagination/pagination-support/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Fri Jan 19 14:54:45 CET 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists