diff --git a/README.md b/README.md
index ffdb7a353..ef4f37ff8 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Confetti 🎊
-
+
[
().configureEach {
- kotlinOptions.jvmTarget = "17"
+ compilerOptions.jvmTarget.set(JvmTarget.JVM_17)
}
springBoot {
diff --git a/compose-desktop/build.gradle.kts b/compose-desktop/build.gradle.kts
index 5209df187..153c0564b 100644
--- a/compose-desktop/build.gradle.kts
+++ b/compose-desktop/build.gradle.kts
@@ -1,3 +1,4 @@
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
@@ -30,8 +31,8 @@ kotlin {
}
tasks.withType {
- kotlinOptions {
- jvmTarget = "17"
+ compilerOptions {
+ jvmTarget.set(JvmTarget.JVM_17)
}
}
diff --git a/compose-web/build.gradle.kts b/compose-web/build.gradle.kts
index b77d5073d..4d10400ea 100644
--- a/compose-web/build.gradle.kts
+++ b/compose-web/build.gradle.kts
@@ -10,7 +10,6 @@ version = "1.0-SNAPSHOT"
kotlin {
wasmJs {
- moduleName = "confetti"
browser {
commonWebpackConfig {
outputFileName = "confetti.js"
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index cd8bbdd28..0108d28aa 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,58 +1,59 @@
[versions]
-kotlin = "2.1.20"
-ksp = "2.1.20-2.0.0"
-kotlinx-coroutines = "1.10.1"
-kotlinx-datetime = "0.6.2"
+kotlin = "2.2.0"
+ksp = "2.2.0-2.0.2"
+kotlinx-coroutines = "1.10.2"
+kotlinx-datetime = "0.6.0"
+kotlinx-serialization = "1.9.0"
apollo-kotlin-execution = "0.1.1-SNAPSHOT-fd7fa806b95c5b9046494989a7dd478c47237e12"
compatPatrouille = "0.0.0"
-agp = "8.8.2"
+agp = "8.11.0"
activity-compose = "1.10.1"
-androidx-lifecycle = "2.8.7"
-androidx-datastore = "1.1.5"
-apollo = "4.2.0"
-apollo-cache = "1.0.0-alpha.1"
-compose = "1.8.0"
-compose-hot-reload = "1.0.0-alpha09"
-composeLifecyleRuntime="2.9.0-alpha07"
-compose-multiplatform = "1.8.0"
+androidx-lifecycle = "2.9.1"
+androidx-datastore = "1.1.7"
+apollo = "4.3.1"
+apollo-cache = "1.0.0-alpha.4"
+compose = "1.8.3"
+compose-hot-reload = "1.0.0-beta03"
+composeLifecyleRuntime="2.9.1"
+compose-multiplatform = "1.8.2"
compose-material3 = "1.3.2"
composeWindowSize = "0.5.0"
credentials = "1.5.0"
-decompose = "3.4.0-alpha01"
+decompose = "3.4.0-alpha03"
doistx-normalize = "1.2.0"
essenty = "2.5.0"
googleid = "1.1.1"
horologist = "0.7.10-alpha"
io-coil-kt = "2.7.0"
-io-coil3-kt = "3.2.0-rc02"
-kermit = "2.0.5"
+io-coil3-kt = "3.2.0"
+kermit = "2.0.6"
kmmbridge = "0.5.7"
-koin = "4.1.0-Beta8"
-kotlinx-coroutines-play-services = "1.10.1"
-lifecycle = "2.8.7"
-lifecycle-livedata-ktx = "2.8.7"
-materialkolor = "2.0.0"
+koin = "4.1.0"
+kotlinx-coroutines-play-services = "1.10.2"
+lifecycle = "2.9.1"
+lifecycle-livedata-ktx = "2.9.1"
+materialkolor = "2.1.1"
multiplatform-settings = "1.3.0"
-nav-compose = "2.9.0-rc01"
-okio = "3.10.2"
+nav-compose = "2.9.1"
+okio = "3.15.0"
permissions = "0.19.1"
permissionsCompose = "0.19.1"
permissionsNotifications = "0.19.1"
-protolayout = "1.3.0-beta01"
-robolectric = "4.14.1"
-room = "2.7.1"
-tiles-tooling-preview = "1.5.0-beta01"
+protolayout = "1.3.0"
+robolectric = "4.15.1"
+room = "2.7.2"
+tiles-tooling-preview = "1.5.0"
wear = "1.3.0"
wear-watchface = "1.3.0-alpha07"
wear-compose = "1.5.0-alpha12"
wearPhoneInteractions = "1.1.0"
-work-runtime-ktx = "2.10.1"
-spring = "3.4.4"
+work-runtime-ktx = "2.10.2"
+spring = "3.5.3"
generativeai = "0.9.0-1.1.0"
-buildkonfig = "0.15.2"
-roborazzi = "1.43.1"
-screenshot = "0.0.1-alpha09"
+buildkonfig = "0.17.1"
+roborazzi = "1.46.1"
+screenshot = "0.0.1-alpha10"
[libraries]
@@ -70,7 +71,7 @@ androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-view
androidx-protolayout-expression = { module = "androidx.wear.protolayout:protolayout-expression", version.ref = "protolayout" }
androidx-protolayout-expression-pipeline = { module = "androidx.wear.protolayout:protolayout-expression-pipeline", version.ref = "protolayout" }
androidx-protolayout-material = { module = "androidx.wear.protolayout:protolayout-material", version.ref = "protolayout" }
-androidx-protolayout-material3 = { module = "androidx.wear.protolayout:protolayout-material3", version = "1.0.0-alpha27" }
+androidx-protolayout-material3 = { module = "androidx.wear.protolayout:protolayout-material3", version = "1.3.0" }
androidx-protolayout-proto = { module = "androidx.wear.protolayout:protolayout-proto", version.ref = "protolayout" }
androidx-tiles-tooling-preview = { module = "androidx.wear.tiles:tiles-tooling-preview", version.ref = "tiles-tooling-preview" }
androidx-tiles-tooling = { module = "androidx.wear.tiles:tiles-tooling", version.ref = "tiles-tooling-preview" }
@@ -130,7 +131,7 @@ desugar = "com.android.tools:desugar_jdk_libs:2.1.3"
firebase-admin = { module = "com.google.firebase:firebase-admin", version = "9.4.3" }
firebase-analytics = { module = "com.google.firebase:firebase-analytics" }
firebase-auth = { module = "com.google.firebase:firebase-auth" }
-firebase-bom = "com.google.firebase:firebase-bom:33.12.0"
+firebase-bom = "com.google.firebase:firebase-bom:33.16.0"
firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics" }
firebase-performance = { module = "com.google.firebase:firebase-perf" }
firebase-mpp-auth = "dev.gitlive:firebase-auth:1.13.0"
@@ -169,7 +170,7 @@ kotlinx-coroutines-reactor = { module = "org.jetbrains.kotlinx:kotlinx-coroutine
kotlinx-coroutines-play-services = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services", version.ref = "kotlinx-coroutines-play-services" }
kotlinx-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }
-kotlinx-serialization = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1"
+kotlinx-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
ktor-cio = "io.ktor:ktor-server-cio:2.3.13"
ktor-status-pages = "io.ktor:ktor-server-status-pages:2.3.13"
lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycle" }
@@ -181,15 +182,15 @@ multiplatform-settings-serialization = { module = "com.russhwolf:multiplatform-s
multiplatform-settings-coroutines = { module = "com.russhwolf:multiplatform-settings-serialization", version.ref = "multiplatform-settings" }
multiplatform-settings-make-observable = { module = "com.russhwolf:multiplatform-settings-make-observable", version.ref = "multiplatform-settings" }
multiplatform-settings-datastore = { module = "com.russhwolf:multiplatform-settings-datastore", version.ref = "multiplatform-settings" }
-okhttp = "com.squareup.okhttp3:okhttp:5.0.0-alpha.14"
-okhttp-coroutines = "com.squareup.okhttp3:okhttp-coroutines:5.0.0-alpha.14"
-okhttp-logging-interceptor = "com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.14"
+okhttp = "com.squareup.okhttp3:okhttp:5.0.0"
+okhttp-coroutines = "com.squareup.okhttp3:okhttp-coroutines:5.0.0"
+okhttp-logging-interceptor = "com.squareup.okhttp3:logging-interceptor:5.0.0"
play-services-auth = "com.google.android.gms:play-services-auth:21.3.0"
plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
plugin-android-application = { module = "com.android.tools.build:gradle", version.ref = "agp" }
plugin-apollo = { module = "com.apollographql.apollo:apollo-gradle-plugin", version.ref = "apollo" }
-plugin-firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics-gradle", version = "2.9.9" }
-plugin-google-services = "com.google.gms:google-services:4.4.2"
+plugin-firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics-gradle", version = "3.0.4" }
+plugin-google-services = "com.google.gms:google-services:4.4.3"
plugin-kotlin-serialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlin" }
plugin-kotlin-spring = { module = "org.jetbrains.kotlin:kotlin-allopen", version.ref = "kotlin" }
plugin-ksp = { module = "com.google.devtools.ksp:symbol-processing-gradle-plugin", version.ref = "ksp" }
diff --git a/iosApp/iosApp.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/xcschememanagement.plist b/iosApp/iosApp.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/xcschememanagement.plist
index 86c05b5f3..639e608d3 100644
--- a/iosApp/iosApp.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/iosApp/iosApp.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -12,86 +12,86 @@
Promises (Playground) 1.xcscheme
isShown
-
+
orderHint
- 2
+ 4
Promises (Playground) 2.xcscheme
isShown
-
+
orderHint
- 3
+ 7
Promises (Playground).xcscheme
isShown
-
+
orderHint
- 1
+ 2
Rx (Playground) 1.xcscheme
isShown
-
+
orderHint
- 1
+ 3
Rx (Playground) 2.xcscheme
isShown
-
+
orderHint
- 3
+ 8
Rx (Playground) 3.xcscheme
isShown
-
+
orderHint
- 2
+ 5
Rx (Playground) 4.xcscheme
isShown
-
+
orderHint
- 5
+ 9
Rx (Playground) 5.xcscheme
isShown
-
+
orderHint
- 6
+ 10
Rx (Playground) 6.xcscheme
isShown
-
+
orderHint
- 7
+ 11
Rx (Playground) 7.xcscheme
isShown
-
+
orderHint
- 8
+ 12
Rx (Playground) 8.xcscheme
isShown
-
+
orderHint
- 9
+ 13
Rx (Playground).xcscheme
isShown
-
+
orderHint
- 2
+ 6
iosApp.xcscheme_^#shared#^_
diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts
index 900d11030..d4cf347d9 100644
--- a/shared/build.gradle.kts
+++ b/shared/build.gradle.kts
@@ -24,7 +24,6 @@ dependencies {
kotlin {
wasmJs {
- moduleName = "confetti"
browser {
commonWebpackConfig {
outputFileName = "confetti.js"
diff --git a/shared/src/commonMain/kotlin/dev/johnoreilly/confetti/ApolloClientCache.kt b/shared/src/commonMain/kotlin/dev/johnoreilly/confetti/ApolloClientCache.kt
index 49d9ce5b4..18b728e2c 100644
--- a/shared/src/commonMain/kotlin/dev/johnoreilly/confetti/ApolloClientCache.kt
+++ b/shared/src/commonMain/kotlin/dev/johnoreilly/confetti/ApolloClientCache.kt
@@ -149,7 +149,7 @@ class ApolloClientCache : KoinComponent {
_clients.clear()
}
- fun clear() {
+ suspend fun clear() {
_clients.values.forEach {
it.apolloStore.clearAll()
it.close()
diff --git a/wearApp/src/main/java/dev/johnoreilly/confetti/wear/preview/TestFixtures.kt b/wearApp/src/main/java/dev/johnoreilly/confetti/wear/preview/TestFixtures.kt
index 11e683591..05d3e4e69 100644
--- a/wearApp/src/main/java/dev/johnoreilly/confetti/wear/preview/TestFixtures.kt
+++ b/wearApp/src/main/java/dev/johnoreilly/confetti/wear/preview/TestFixtures.kt
@@ -11,6 +11,7 @@ object TestFixtures {
val sessionTime = LocalDateTime.parse("2023-04-13T14:00")
val kotlinConf2023 = GetConferencesQuery.Conference(
+ __typename = "Conference",
"kotlinconf2023",
"",
listOf(
@@ -20,67 +21,66 @@ object TestFixtures {
),
"KotlinConf 2023",
"0xFF800000",
- __typename = "Conference",
)
val kotlinConf2023Config = GetBookmarkedSessionsQuery.Config(
+ __typename = "Conference",
kotlinConf2023.id,
"",
kotlinConf2023.days,
kotlinConf2023.name,
- __typename = "Conference"
)
// Generate from FetchDataTest.fetchConferences
val conferences = listOf(
kotlinConf2023,
GetConferencesQuery.Conference(
+ __typename = "Conference",
"fosdem2023",
"",
listOf(LocalDate.parse("2023-02-04"), LocalDate.parse("2023-02-05")),
"Fosdem 2023",
"0xFF008000",
- __typename = "Conference",
),
GetConferencesQuery.Conference(
+ __typename = "Conference",
"droidconlondon2022",
"",
listOf(LocalDate.parse("2022-10-27"), LocalDate.parse("2022-10-28")),
"droidcon London",
"0xFF800000",
- __typename = "Conference",
),
GetConferencesQuery.Conference(
+ __typename = "Conference",
"devfestnantes",
"",
listOf(LocalDate.parse("2022-10-20"), LocalDate.parse("2022-10-21")),
"DevFest Nantes",
"0xFF800000",
- __typename = "Conference",
),
GetConferencesQuery.Conference(
+ __typename = "Conference",
"graphqlsummit2022",
"",
listOf(LocalDate.parse("2022-10-04"), LocalDate.parse("2022-10-05")),
"GraphQL Summit",
"0xFF800000",
- __typename = "Conference",
),
GetConferencesQuery.Conference(
+ __typename = "Conference",
"frenchkit2022",
"",
listOf(LocalDate.parse("2022-09-29"), LocalDate.parse("2022-09-30")),
"FrenchKit",
"0xFF800000",
- __typename = "Conference",
),
GetConferencesQuery.Conference(
+ __typename = "Conference",
"droidconsf",
"",
listOf(LocalDate.parse("2022-06-02"), LocalDate.parse("2022-06-03")),
"droidcon SF",
"0xFF800000",
- __typename = "Conference",
)
)
diff --git a/wearApp/src/test/kotlin/dev/johnoreilly/confetti/wear/surfaces/TileScreenshotTest.kt b/wearApp/src/test/kotlin/dev/johnoreilly/confetti/wear/surfaces/TileScreenshotTest.kt
index cbcba79dc..fc061476b 100644
--- a/wearApp/src/test/kotlin/dev/johnoreilly/confetti/wear/surfaces/TileScreenshotTest.kt
+++ b/wearApp/src/test/kotlin/dev/johnoreilly/confetti/wear/surfaces/TileScreenshotTest.kt
@@ -30,11 +30,11 @@ class TileScreenshotTest(override val device: WearDevice) : BaseScreenshotTest()
val tileState = remember {
CurrentSessionsData(
GetBookmarkedSessionsQuery.Config(
+ __typename = "Conference",
TestFixtures.kotlinConf2023.id,
"",
TestFixtures.kotlinConf2023.days,
TestFixtures.kotlinConf2023.name,
- __typename = "Conference",
),
listOf(
TestFixtures.sessionDetails
@@ -60,11 +60,11 @@ class TileScreenshotTest(override val device: WearDevice) : BaseScreenshotTest()
val tileState = remember {
ConfettiTileData.NotLoggedIn(
GetBookmarkedSessionsQuery.Config(
+ __typename = "Conference",
TestFixtures.kotlinConf2023.id,
"",
TestFixtures.kotlinConf2023.days,
TestFixtures.kotlinConf2023.name,
- __typename = "Conference",
)
)
}