diff --git a/.github/workflows/flutter_integration.yaml b/.github/workflows/flutter_integration.yaml index fd49de9bf..db1fde8d8 100644 --- a/.github/workflows/flutter_integration.yaml +++ b/.github/workflows/flutter_integration.yaml @@ -53,7 +53,7 @@ jobs: - uses: subosito/flutter-action@v2 with: - flutter-version: '3.24' + flutter-version: '3.29' cache: true - name: 'Run Flutter Driver tests' @@ -65,4 +65,4 @@ jobs: disable-animations: true script: | flutter pub get - cd test_integration && flutter drive + cd test_integration && flutter build apk && flutter drive diff --git a/.tool-versions b/.tool-versions index 02d04683e..2d7c47ed4 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -ruby 3.0.1 +ruby 3.4.5 flutter 3.29.0 diff --git a/android/build.gradle b/android/build.gradle index eae63b9af..87e826576 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,14 +1,16 @@ group 'io.ably.flutter.plugin' -version '1.0' +// Use the snapshot suffix to show that build artifacts are not shared. +// This Gradle file is used by Flutter to build itself. +version '1.0-SNAPSHOT' buildscript { repositories { google() - mavenCentral() // for firebase-messaging + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.4.0' + classpath 'com.android.tools.build:gradle:8.12.1' } } @@ -26,36 +28,25 @@ dependencies { implementation 'io.ably:ably-android:1.2.40' // https://firebase.google.com/docs/cloud-messaging/android/client - implementation 'com.google.firebase:firebase-messaging:23.0.4' - - // https://github.com/google/desugar_jdk_libs - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' + implementation 'com.google.firebase:firebase-messaging:23.0.6' } android { - compileSdkVersion 34 + // older version of flutter sdk doesn't provide `compileSdkVersion` defaults to 34 + compileSdkVersion flutter.compileSdkVersion ?: 34 // Conditional for compatibility with AGP <4.2. if (project.android.hasProperty("namespace")) { namespace 'io.ably.flutter.plugin' } - // Require Java language level 8 so we can use Method References (used with Lambdas) compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - - // Flag to enable Java 8 language APIs while supporting to older SDK Versions - coreLibraryDesugaringEnabled true + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } defaultConfig { minSdkVersion 19 - - // Required when setting minSdkVersion to 20 or lower so we can use - // the Java 8 language APIs as mentioned here: - // https://developer.android.com/studio/write/java8-support#library-desugaring - multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { @@ -66,4 +57,10 @@ android { } } +gradle.projectsEvaluated { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" + } +} + apply from: file("./ably-agent.gradle") diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index afeda6e5e..c307e56d1 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -14,12 +14,12 @@ android { compileOptions { coreLibraryDesugaringEnabled true - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 + jvmTarget = JavaVersion.VERSION_17 } defaultConfig { diff --git a/example/android/settings.gradle b/example/android/settings.gradle index 4262f8c79..2c5e3a732 100644 --- a/example/android/settings.gradle +++ b/example/android/settings.gradle @@ -19,7 +19,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.7.0" apply false - id "org.jetbrains.kotlin.android" version "1.8.22" apply false + id "org.jetbrains.kotlin.android" version "2.2.20" apply false id "com.google.gms.google-services" version "4.3.10" apply false } diff --git a/test_integration/android/app/build.gradle b/test_integration/android/app/build.gradle index 3d19bae21..c4e3031da 100644 --- a/test_integration/android/app/build.gradle +++ b/test_integration/android/app/build.gradle @@ -11,12 +11,14 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + coreLibraryDesugaringEnabled true + + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 + jvmTarget = JavaVersion.VERSION_17 } defaultConfig { @@ -42,3 +44,8 @@ android { flutter { source = "../.." } + +dependencies { + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3' +} + diff --git a/test_integration/android/gradle/wrapper/gradle-wrapper.properties b/test_integration/android/gradle/wrapper/gradle-wrapper.properties index 91dc34173..5c40527d4 100644 --- a/test_integration/android/gradle/wrapper/gradle-wrapper.properties +++ b/test_integration/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/test_integration/android/settings.gradle b/test_integration/android/settings.gradle index cef42b686..6f0fcae6a 100644 --- a/test_integration/android/settings.gradle +++ b/test_integration/android/settings.gradle @@ -18,8 +18,9 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.4.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false + id "com.android.application" version "8.7.0" apply false + id "org.jetbrains.kotlin.android" version "2.2.20" apply false + id "com.google.gms.google-services" version "4.3.10" apply false } include ":app" \ No newline at end of file