diff --git a/README.md b/README.md index ffdb7a353..ef4f37ff8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Confetti 🎊 -![kotlin-version](https://img.shields.io/badge/kotlin-2.1.0-blue?logo=kotlin) +![kotlin-version](https://img.shields.io/badge/kotlin-2.2.0-blue?logo=kotlin) [Get it on Google Play Store().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", ) ) }