Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

1,470 changes: 727 additions & 743 deletions app/versions/dependencies/debugRuntimeClasspathDependencies.txt

Large diffs are not rendered by default.

1,524 changes: 754 additions & 770 deletions app/versions/dependencies/debugUnitTestRuntimeClasspathDependencies.txt

Large diffs are not rendered by default.

1,432 changes: 708 additions & 724 deletions app/versions/dependencies/releaseRuntimeClasspathDependencies.txt

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -155,13 +155,13 @@
android:value="androidx.startup" />
<meta-data
android:name="androidx.lifecycle.ProcessLifecycleInitializer"
android:value="androidx.startup" /> <!-- This entry makes ApolloInitializer discoverable. -->
<meta-data
android:name="com.apollographql.apollo.cache.normalized.sql.ApolloInitializer"
android:value="androidx.startup" />
<meta-data
android:name="androidx.profileinstaller.ProfileInstallerInitializer"
android:value="androidx.startup" />
<meta-data
android:name="okhttp3.internal.platform.PlatformInitializer"
android:value="androidx.startup" />
</provider>

<uses-library
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,13 +155,13 @@
android:value="androidx.startup" />
<meta-data
android:name="androidx.lifecycle.ProcessLifecycleInitializer"
android:value="androidx.startup" /> <!-- This entry makes ApolloInitializer discoverable. -->
<meta-data
android:name="com.apollographql.apollo.cache.normalized.sql.ApolloInitializer"
android:value="androidx.startup" />
<meta-data
android:name="androidx.profileinstaller.ProfileInstallerInitializer"
android:value="androidx.startup" />
<meta-data
android:name="okhttp3.internal.platform.PlatformInitializer"
android:value="androidx.startup" />
</provider>

<uses-library
Expand Down
Binary file modified build-conventions/build/libs/build-conventions.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ kotlin {
}

listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ kapt.include.compile.classpath=false
# Kotlin
kotlin.code.style=official
kotlin.incremental.usePreciseJavaTracking=true
kotlin.native.binary.memoryModel=experimental
kotlin.native.ignoreDisabledTargets=true
kotlin.mpp.enableCInteropCommonization=true
kotlin.native.cacheKind=none
org.jetbrains.compose.experimental.uikit.enabled=true
compose.desktop.packaging.checkJdkVendor=false
26 changes: 13 additions & 13 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@
aboutlibraries = "13.2.1"
agp = "9.0.1"
androidCompileSdk = "36"
androidx-compose = "1.11.0"
apollo = "4.4.3"
androidx-compose = "1.11.2"
apollo = "5.0.0"
apolloCache = "1.0.3"
coil3 = "3.4.0"
coroutines = "1.10.2"
coroutines = "1.11.0"
detekt = "1.23.8"
diktat = "1.2.5"
firebase-bom = "34.12.0"
firebase-bom = "34.13.0"
gitlive = "2.4.0"
gradle = "8.1.1"
jetbrains-lifecycle = "2.10.0"
Expand All @@ -20,12 +21,12 @@ koin = "4.2.1"
koin-ksp = "4.2.1"
kotlin = "2.3.21"
kotlinpoet = "2.3.0"
kotlin-multiplatform = "1.10.3"
kotlin-multiplatform = "1.11.0"
kotlin-result = "2.3.1"
kotlinx-datetime = "0.7.1"
kotlinx-datetime = "0.8.0"
ksp = "2.3.5"
ktlint = "0.43.0"
ktor = "3.4.3"
ktor = "3.5.0"
material3 = "1.9.0"
mockk = "1.14.9"
okhttp = "4.12.0"
Expand All @@ -44,12 +45,11 @@ androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core",
androidx-test-orchestrator = { module = "androidx.test:orchestrator", version = "1.6.1" }
androidx-test-runner = { module = "androidx.test:runner", version = "1.7.0" }
apollo = { module = "com.apollographql.apollo:apollo-runtime", version.ref = "apollo" }
apollo-adapters = { module = "com.apollographql.apollo:apollo-adapters", version.ref = "apollo" }
apollo-cache = { module = "com.apollographql.apollo:apollo-normalized-cache", version.ref = "apollo" }
apollo-cache-sqlite = { module = "com.apollographql.apollo:apollo-normalized-cache-sqlite", version.ref = "apollo" }
apollo-cache = { module = "com.apollographql.cache:normalized-cache", version.ref = "apolloCache" }
apollo-cache-sqlite = { module = "com.apollographql.cache:normalized-cache-sqlite", version.ref = "apolloCache" }
apollo-testing-support = { module = "com.apollographql.apollo:apollo-testing-support", version.ref = "apollo" }
calendar = { module = "com.kizitonwose.calendar:compose-multiplatform", version = "2.10.1" }
composemultiplatformcharts = { module = "io.github.koalaplot:koalaplot-core", version = "0.11.0" }
composemultiplatformcharts = { module = "io.github.koalaplot:koalaplot-core", version = "0.11.2" }
composemultiplatformcharts2 = { module = "io.github.thechance101:chart", version = "Beta-0.0.5" }
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil3" }
coil-compose-core = { module = "io.coil-kt.coil3:coil-compose-core", version.ref = "coil3" }
Expand Down Expand Up @@ -113,7 +113,7 @@ leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", version =
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
mockk-android = { module = "io.mockk:mockk-android", version.ref = "mockk" }
multiplatform-log = { module = "co.touchlab:kermit", version = "2.1.0" }
multiplatform-constraintlayout-compose = { module = "tech.annexflow.compose:constraintlayout-compose-multiplatform", version = "0.7.0" }
multiplatform-constraintlayout-compose = { module = "tech.annexflow.compose:constraintlayout-compose-multiplatform", version = "0.8.0" }
sqldelight-androidDriver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqlDelight" }
sqldelight-jvmDriver = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqlDelight" }
sqldelight-nativeDriver = { module = "app.cash.sqldelight:native-driver", version.ref = "sqlDelight" }
Expand All @@ -133,7 +133,7 @@ plugin-google-services = { module = "com.google.gms:google-services", version =
plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
plugin-ksp = { module = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" }
plugin-ruler = { module = "com.spotify.ruler:ruler-gradle-plugin", version = "1.4.0" }
plugin-spotless = { module = "com.diffplug.spotless:spotless-plugin-gradle", version = "8.4.0" }
plugin-spotless = { module = "com.diffplug.spotless:spotless-plugin-gradle", version = "8.5.1" }
plugin-versions = "com.github.ben-manes:gradle-versions-plugin:0.52.0"
plugin-versions-update = "nl.littlerobots.vcu:plugin:1.1.0"
plugin-violation = { module = "se.bjurr.violations:violation-comments-to-github-gradle-plugin", version = "1.70.0" }
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Thu Oct 13 15:47:24 CEST 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-all.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
Binary file not shown.
1 change: 1 addition & 0 deletions iosApp/iosApp/iosAppApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ struct iosAppApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.ignoresSafeArea()
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.jarroyo.feature.home.shared.ui

import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
Expand Down Expand Up @@ -47,6 +48,7 @@ fun RootView() {
) {
Scaffold(
modifier = Modifier.fillMaxSize(),
contentWindowInsets = WindowInsets(0),
bottomBar = { MainNavigationBar(navHostController, mainNavigationBarEntries) },
) { scaffoldPadding: PaddingValues ->
mainScaffoldPadding.value = scaffoldPadding
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.jarroyo.feature.launches.api.interactor

import com.apollographql.apollo.cache.normalized.FetchPolicy
import com.apollographql.cache.normalized.FetchPolicy
import com.github.michaelbull.result.Result
import com.jarroyo.composeapp.library.network.api.graphql.fragment.LaunchFragment

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.jarroyo.feature.launches.api.interactor

import com.apollographql.apollo.cache.normalized.FetchPolicy
import com.apollographql.cache.normalized.FetchPolicy
import com.github.michaelbull.result.Result
import com.jarroyo.composeapp.library.network.api.graphql.fragment.LaunchFragment

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.jarroyo.feature.launches.interactor

import com.apollographql.apollo.ApolloClient
import com.apollographql.apollo.cache.normalized.FetchPolicy
import com.apollographql.apollo.cache.normalized.fetchPolicy
import com.apollographql.cache.normalized.FetchPolicy
import com.apollographql.cache.normalized.fetchPolicy
import com.github.michaelbull.result.Ok
import com.github.michaelbull.result.Result
import com.jarroyo.composeapp.library.network.api.graphql.LaunchDetailQuery
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.jarroyo.feature.launches.interactor

import com.apollographql.apollo.ApolloClient
import com.apollographql.apollo.cache.normalized.FetchPolicy
import com.apollographql.apollo.cache.normalized.fetchPolicy
import com.apollographql.cache.normalized.FetchPolicy
import com.apollographql.cache.normalized.fetchPolicy
import com.github.michaelbull.result.Ok
import com.github.michaelbull.result.Result
import com.jarroyo.composeapp.library.network.api.graphql.LaunchesQuery
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
package com.jarroyo.feature.launches.ui.launchlist

import androidx.lifecycle.viewModelScope
import com.apollographql.apollo.cache.normalized.FetchPolicy
import com.apollographql.cache.normalized.FetchPolicy
import com.github.michaelbull.result.fold
import com.jarroyo.feature.common.api.interactor.GetInstantFlowInteractor
import com.jarroyo.feature.launches.api.destination.LaunchDestination
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ package com.jarroyo.feature.home.shared.interactor

import com.apollographql.apollo.ApolloClient
import com.apollographql.apollo.annotations.ApolloExperimental
import com.apollographql.apollo.api.DefaultFakeResolver
import com.apollographql.apollo.api.FakeResolverContext
import com.apollographql.apollo.testing.QueueTestNetworkTransport
import com.apollographql.apollo.testing.enqueueTestNetworkError
import com.apollographql.apollo.testing.enqueueTestResponse
import com.jarroyo.composeapp.library.network.api.graphql.builder.Data
import com.jarroyo.composeapp.library.network.api.graphql.builder.resolver.DefaultFakeResolver
import com.github.michaelbull.result.unwrap
import com.github.michaelbull.result.unwrapError
import com.jarroyo.composeapp.library.network.api.graphql.LaunchDetailQuery
Expand All @@ -24,7 +25,7 @@ import kotlin.time.Clock
import kotlin.time.ExperimentalTime

class GetLaunchDetailInteractorImplTest {
private val data: LaunchDetailQuery.Data = LaunchDetailQuery.Data(FakeResolver()) { }
private val data: LaunchDetailQuery.Data = LaunchDetailQuery.Data(FakeResolver())
private lateinit var apolloClient: ApolloClient
private lateinit var getLaunchDetailInteractor: GetLaunchDetailInteractor

Expand Down Expand Up @@ -72,13 +73,11 @@ class GetLaunchDetailInteractorImplTest {
}
}

class FakeResolver : DefaultFakeResolver(
com.jarroyo.composeapp.library.network.api.graphql.schema.__Schema.all,
) {
class FakeResolver : DefaultFakeResolver() {
@OptIn(ExperimentalTime::class)
override fun resolveLeaf(context: FakeResolverContext): Any =
when (context.mergedField.type.rawType().name) {
"Date" -> Clock.System.now()
"Date" -> Clock.System.now().toString()
else -> super.resolveLeaf(context)
}
}
3 changes: 1 addition & 2 deletions modules/library-network-api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ apollo {
generateApolloMetadata.set(true)
decapitalizeFields.set(true)
generateDataBuilders.set(true)
dataBuildersOutputDirConnection { connectToKotlinSourceSet("commonMain") }
mapScalar(
"Date",
"kotlin.time.Instant",
Expand All @@ -40,9 +41,7 @@ kotlin {
sourceSets {
commonMain.dependencies {
api(libs.apollo)
api(libs.apollo.adapters)
api(libs.apollo.cache)
implementation(libs.apollo.cache.sqlite)
implementation(libs.jetbrains.kotlinx.serialization)
}
}
Expand Down
33 changes: 17 additions & 16 deletions modules/library-network-api/src/commonMain/graphql/schema.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -1869,54 +1869,55 @@ enum __DirectiveLocation {
INPUT_FIELD_DEFINITION
}

directive @contact ("Contact title of the subgraph owner" name: String!, "URL where the subgraph's owner can be reached" url: String, "Other relevant notes can be included here; supports markdown links" description: String) on SCHEMA
directive @contact("Contact title of the subgraph owner" name: String!, "URL where the subgraph's owner can be reached" url: String, "Other relevant notes can be included here; supports markdown links" description: String) on SCHEMA

directive @link (url: String, as: String, for: link__Purpose, import: [link__Import]) repeatable on SCHEMA
directive @link(url: String, as: String, for: link__Purpose, import: [link__Import]) repeatable on SCHEMA

directive @key (fields: federation__FieldSet!, resolvable: Boolean = true) repeatable on OBJECT|INTERFACE
directive @key(fields: federation__FieldSet!, resolvable: Boolean = true) repeatable on OBJECT | INTERFACE

directive @federation__requires (fields: federation__FieldSet!) on FIELD_DEFINITION
directive @federation__requires(fields: federation__FieldSet!) on FIELD_DEFINITION

directive @federation__provides (fields: federation__FieldSet!) on FIELD_DEFINITION
directive @federation__provides(fields: federation__FieldSet!) on FIELD_DEFINITION

directive @federation__external (reason: String) on OBJECT|FIELD_DEFINITION
directive @federation__external(reason: String) on OBJECT | FIELD_DEFINITION

directive @federation__tag (name: String!) repeatable on FIELD_DEFINITION|OBJECT|INTERFACE|UNION|ARGUMENT_DEFINITION|SCALAR|ENUM|ENUM_VALUE|INPUT_OBJECT|INPUT_FIELD_DEFINITION|SCHEMA
directive @federation__tag(name: String!) repeatable on FIELD_DEFINITION | OBJECT | INTERFACE | UNION | ARGUMENT_DEFINITION | SCALAR | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION | SCHEMA

directive @federation__extends on OBJECT|INTERFACE
directive @federation__extends on OBJECT | INTERFACE

directive @federation__shareable repeatable on OBJECT|FIELD_DEFINITION
directive @federation__shareable repeatable on OBJECT | FIELD_DEFINITION

directive @federation__inaccessible on FIELD_DEFINITION|OBJECT|INTERFACE|UNION|ARGUMENT_DEFINITION|SCALAR|ENUM|ENUM_VALUE|INPUT_OBJECT|INPUT_FIELD_DEFINITION
directive @federation__inaccessible on FIELD_DEFINITION | OBJECT | INTERFACE | UNION | ARGUMENT_DEFINITION | SCALAR | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION

directive @federation__override (from: String!) on FIELD_DEFINITION
directive @federation__override(from: String!) on FIELD_DEFINITION

directive @federation__composeDirective (name: String) repeatable on SCHEMA
directive @federation__composeDirective(name: String) repeatable on SCHEMA

directive @federation__interfaceObject on OBJECT

"""
Directs the executor to include this field or fragment only when the `if` argument is true.
"""
directive @include ("Included when true." if: Boolean!) on FIELD|FRAGMENT_SPREAD|INLINE_FRAGMENT
directive @include("Included when true." if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT

"""
Directs the executor to skip this field or fragment when the `if` argument is true.
"""
directive @skip ("Skipped when true." if: Boolean!) on FIELD|FRAGMENT_SPREAD|INLINE_FRAGMENT
directive @skip("Skipped when true." if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT

"""
Marks an element of a GraphQL schema as no longer supported.
"""
directive @deprecated ("Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/)." reason: String = "No longer supported") on FIELD_DEFINITION|ARGUMENT_DEFINITION|INPUT_FIELD_DEFINITION|ENUM_VALUE
directive @deprecated("Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/)." reason: String = "No longer supported") on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | ENUM_VALUE

"""
Exposes a URL that specifies the behavior of this scalar.
"""
directive @specifiedBy ("The URL that specifies the behavior of this scalar." url: String!) on SCALAR
directive @specifiedBy("The URL that specifies the behavior of this scalar." url: String!) on SCALAR

schema {
query: Query
mutation: Mutation
subscription: Subscription
}

Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.jarroyo.library.network.di

import com.apollographql.apollo.ApolloClient
import com.apollographql.apollo.cache.normalized.api.MemoryCacheFactory
import com.apollographql.apollo.cache.normalized.api.NormalizedCacheFactory
import com.apollographql.apollo.cache.normalized.normalizedCache
import com.apollographql.cache.normalized.api.NormalizedCacheFactory
import com.apollographql.cache.normalized.memory.MemoryCacheFactory
import com.apollographql.cache.normalized.normalizedCache
import dev.gitlive.firebase.Firebase
import dev.gitlive.firebase.firestore.FirebaseFirestore
import dev.gitlive.firebase.firestore.firestore
Expand All @@ -26,7 +26,11 @@ val networkModule = module {
val chainedCacheFactory: NormalizedCacheFactory = get()
ApolloClient.Builder()
.serverUrl("https://spacex-production.up.railway.app/")
.apply { normalizedCache(chainedCacheFactory) }
.normalizedCache(
normalizedCacheFactory = chainedCacheFactory,
typePolicies = emptyMap(),
fieldPolicies = emptyMap(),
)
.build()
}

Expand Down
Loading