diff --git a/packages/camera/camera_android/CHANGELOG.md b/packages/camera/camera_android/CHANGELOG.md index 9357004bb894..0bf9721e6ab9 100644 --- a/packages/camera/camera_android/CHANGELOG.md +++ b/packages/camera/camera_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.10.10+16 + +* Updates build files from Groovy to Kotlin. + ## 0.10.10+15 * Updates example to demonstrate correct exception handling for async return statements, ensuring exceptions thrown during return within try blocks are properly caught as per [dart-lang/sdk#44395](https://github.com/dart-lang/sdk/issues/44395). diff --git a/packages/camera/camera_android/android/build.gradle b/packages/camera/camera_android/android/build.gradle deleted file mode 100644 index 609ffa80fcbb..000000000000 --- a/packages/camera/camera_android/android/build.gradle +++ /dev/null @@ -1,74 +0,0 @@ -group = 'io.flutter.plugins.camera' -version = '1.0-SNAPSHOT' -def args = ["-Xlint:deprecation","-Xlint:unchecked"] - -buildscript { - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - } -} - -rootProject.allprojects { - repositories { - google() - mavenCentral() - } -} - -project.getTasks().withType(JavaCompile){ - options.compilerArgs.addAll(args) -} - -apply plugin: 'com.android.library' - -android { -buildFeatures { - buildConfig = true - } - namespace = "io.flutter.plugins.camera" - compileSdk = flutter.compileSdkVersion - - defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - lintOptions { - checkAllWarnings = true - warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - // The org.gradle.jvmargs property that may be set in gradle.properties does not impact - // the Java heap size when running the Android unit tests. The following property here - // sets the heap size to a size large enough to run the robolectric tests across - // multiple SDK levels. - jvmArgs "-Xmx4G" - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true - } - } - } -} - -dependencies { - implementation("androidx.annotation:annotation:1.9.1") - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-core:5.22.0") - testImplementation("androidx.test:core:1.7.0") - testImplementation("org.robolectric:robolectric:4.16") -} diff --git a/packages/camera/camera_android/android/build.gradle.kts b/packages/camera/camera_android/android/build.gradle.kts new file mode 100644 index 000000000000..7439d5a418e9 --- /dev/null +++ b/packages/camera/camera_android/android/build.gradle.kts @@ -0,0 +1,80 @@ +group = "io.flutter.plugins.camera" +version = "1.0-SNAPSHOT" + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:8.13.1") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.withType().configureEach { + options.compilerArgs.add("-Xlint:deprecation") + options.compilerArgs.add("-Xlint:unchecked") +} + +plugins { + id("com.android.library") +} + +android { + buildFeatures { + buildConfig = true + } + namespace = "io.flutter.plugins.camera" + compileSdk = flutter.compileSdkVersion + + defaultConfig { + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + lint { + checkAllWarnings = true + warningsAsErrors = true + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + // The org.gradle.jvmargs property that may be set in gradle.properties does not impact + // the Java heap size when running the Android unit tests. The following property here + // sets the heap size to a size large enough to run the robolectric tests across + // multiple SDK levels. + it.jvmArgs("-Xmx4G") + } + } + } +} + +dependencies { + implementation("androidx.annotation:annotation:1.9.1") + testImplementation("junit:junit:4.13.2") + testImplementation("org.mockito:mockito-core:5.22.0") + testImplementation("androidx.test:core:1.7.0") + testImplementation("org.robolectric:robolectric:4.16") +} diff --git a/packages/camera/camera_android/android/settings.gradle b/packages/camera/camera_android/android/settings.gradle deleted file mode 100644 index 94a1bae9d6cd..000000000000 --- a/packages/camera/camera_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'camera_android' diff --git a/packages/camera/camera_android/android/settings.gradle.kts b/packages/camera/camera_android/android/settings.gradle.kts new file mode 100644 index 000000000000..0006625daf4e --- /dev/null +++ b/packages/camera/camera_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "camera_android" diff --git a/packages/camera/camera_android/pubspec.yaml b/packages/camera/camera_android/pubspec.yaml index 4448279e3a32..34ffc900e502 100644 --- a/packages/camera/camera_android/pubspec.yaml +++ b/packages/camera/camera_android/pubspec.yaml @@ -3,7 +3,7 @@ description: Android implementation of the camera plugin. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.10.10+15 +version: 0.10.10+16 environment: sdk: ^3.9.0 diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index 159cdf9b67b6..2223d805003f 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.0+2 + +* Updates build files from Groovy to Kotlin. + ## 0.7.0+1 * Updates example to demonstrate correct exception handling for async return statements, ensuring exceptions thrown during return within try blocks are properly caught as per [dart-lang/sdk#44395](https://github.com/dart-lang/sdk/issues/44395). @@ -514,4 +518,4 @@ this plugin should now be compatible with [google_ml_kit_flutter](https://github * Displaying a live camera preview * Image streaming - See [`README.md`](README.md) for more details on the limitations of this implementation. \ No newline at end of file + See [`README.md`](README.md) for more details on the limitations of this implementation. diff --git a/packages/camera/camera_android_camerax/android/build.gradle b/packages/camera/camera_android_camerax/android/build.gradle deleted file mode 100644 index 8d7553028e1b..000000000000 --- a/packages/camera/camera_android_camerax/android/build.gradle +++ /dev/null @@ -1,86 +0,0 @@ -group = 'io.flutter.plugins.camerax' -version = '1.0' - -buildscript { - ext.kotlin_version = '2.3.0' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - -rootProject.allprojects { - repositories { - google() - mavenCentral() - } -} - -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' - -android { - namespace = "io.flutter.plugins.camerax" - // CameraX dependencies require compilation against version 33 or later. - compileSdk = flutter.compileSdkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - // This must match the Java version provided in compileOptions. - jvmTarget = JavaVersion.VERSION_17.toString() - } - - defaultConfig { - // CameraX APIs require API 23 or later. - minSdk = 23 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - // The org.gradle.jvmargs property that may be set in gradle.properties does not impact - // the Java heap size when running the Android unit tests. The following property here - // sets the heap size to a size large enough to run the robolectric tests across - // multiple SDK levels. - jvmArgs "-Xmx1G" - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true - } - } - } - - lint { - checkAllWarnings = true - warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'GradleDependency', 'InvalidPackage', 'NewerVersionAvailable' - baseline = file("lint-baseline.xml") - } -} - -dependencies { - // CameraX core library using the camera2 implementation must use same version number. - def camerax_version = "1.5.3" - implementation("androidx.camera:camera-core:${camerax_version}") - implementation("androidx.camera:camera-camera2:${camerax_version}") - implementation("androidx.camera:camera-lifecycle:${camerax_version}") - implementation("androidx.camera:camera-video:${camerax_version}") - implementation("com.google.guava:guava:33.5.0-android") - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-core:5.22.0") - testImplementation("org.mockito:mockito-inline:5.2.0") - testImplementation("androidx.test:core:1.7.0") - testImplementation("org.robolectric:robolectric:4.16") -} diff --git a/packages/camera/camera_android_camerax/android/build.gradle.kts b/packages/camera/camera_android_camerax/android/build.gradle.kts new file mode 100644 index 000000000000..61504fe0c5ec --- /dev/null +++ b/packages/camera/camera_android_camerax/android/build.gradle.kts @@ -0,0 +1,93 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +group = "io.flutter.plugins.camerax" +version = "1.0" + +buildscript { + val kotlinVersion = "2.3.0" + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:8.13.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +plugins { + id("com.android.library") + id("kotlin-android") +} + +kotlin { + compilerOptions { + jvmTarget = JvmTarget.fromTarget(JavaVersion.VERSION_17.toString()) + } +} + +android { + namespace = "io.flutter.plugins.camerax" + // CameraX dependencies require compilation against version 33 or later. + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + defaultConfig { + // CameraX APIs require API 23 or later. + minSdk = 23 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + // The org.gradle.jvmargs property that may be set in gradle.properties does not impact + // the Java heap size when running the Android unit tests. The following property here + // sets the heap size to a size large enough to run the robolectric tests across + // multiple SDK levels. + it.jvmArgs("-Xmx1G") + } + } + } + + lint { + checkAllWarnings = true + warningsAsErrors = true + disable.addAll(setOf("AndroidGradlePluginVersion", "GradleDependency", "InvalidPackage", "NewerVersionAvailable")) + baseline = file("lint-baseline.xml") + } +} + +dependencies { + // CameraX core library using the camera2 implementation must use same version number. + val cameraxVersion = "1.5.3" + implementation("androidx.camera:camera-core:${cameraxVersion}") + implementation("androidx.camera:camera-camera2:${cameraxVersion}") + implementation("androidx.camera:camera-lifecycle:${cameraxVersion}") + implementation("androidx.camera:camera-video:${cameraxVersion}") + implementation("com.google.guava:guava:33.5.0-android") + testImplementation("junit:junit:4.13.2") + testImplementation("org.mockito:mockito-core:5.22.0") + testImplementation("org.mockito:mockito-inline:5.2.0") + testImplementation("androidx.test:core:1.7.0") + testImplementation("org.robolectric:robolectric:4.16") +} diff --git a/packages/camera/camera_android_camerax/android/settings.gradle b/packages/camera/camera_android_camerax/android/settings.gradle deleted file mode 100644 index 613f994165a0..000000000000 --- a/packages/camera/camera_android_camerax/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'camera_android_camerax' diff --git a/packages/camera/camera_android_camerax/android/settings.gradle.kts b/packages/camera/camera_android_camerax/android/settings.gradle.kts new file mode 100644 index 000000000000..9d4ef5bade6a --- /dev/null +++ b/packages/camera/camera_android_camerax/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "camera_android_camerax" diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index ef3930bee73b..eef9a72cbe45 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_android_camerax description: Android implementation of the camera plugin using the CameraX library. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android_camerax issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.7.0+1 +version: 0.7.0+2 environment: sdk: ^3.9.0 diff --git a/packages/espresso/CHANGELOG.md b/packages/espresso/CHANGELOG.md index 14b7dce5dcae..53e9782e206c 100644 --- a/packages/espresso/CHANGELOG.md +++ b/packages/espresso/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.0+23 + +* Updates build files from Groovy to Kotlin. + ## 0.4.0+22 * Updates minimum supported SDK version to Flutter 3.35/Dart 3.9. diff --git a/packages/espresso/android/build.gradle b/packages/espresso/android/build.gradle.kts similarity index 60% rename from packages/espresso/android/build.gradle rename to packages/espresso/android/build.gradle.kts index d545cfc1b277..fa6210082701 100644 --- a/packages/espresso/android/build.gradle +++ b/packages/espresso/android/build.gradle.kts @@ -1,5 +1,5 @@ -group = 'com.example.espresso' -version = '1.0' +group = "com.example.espresso" +version = "1.0" buildscript { repositories { @@ -8,26 +8,28 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' + classpath("com.android.tools.build:gradle:8.13.1") } } -rootProject.allprojects { +allprojects { repositories { google() mavenCentral() } } -apply plugin: 'com.android.library' +plugins { + id("com.android.library") +} android { namespace = "com.example.espresso" compileSdk = flutter.compileSdkVersion defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } compileOptions { @@ -35,32 +37,33 @@ android { targetCompatibility = JavaVersion.VERSION_17 } - lintOptions { + lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' - baseline file("lint-baseline.xml") + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) + baseline = file("lint-baseline.xml") } - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } } dependencies { - implementation 'com.google.guava:guava:33.5.0-android' - implementation 'com.squareup.okhttp3:okhttp:5.3.2' - implementation 'com.google.code.gson:gson:2.13.2' - androidTestImplementation 'org.hamcrest:hamcrest:3.0' + implementation("com.google.guava:guava:33.5.0-android") + implementation("com.squareup.okhttp3:okhttp:5.3.2") + implementation("com.google.code.gson:gson:2.13.2") + androidTestImplementation("org.hamcrest:hamcrest:3.0") testImplementation("junit:junit:4.13.2") testImplementation("com.google.truth:truth:1.4.5") @@ -88,7 +91,7 @@ dependencies { // The following Espresso dependency can be either "implementation" // or "androidTestImplementation", depending on whether you want the - // dependency to appear on your APK's compile classpath or the test APK + // dependency to appear on your APK"s compile classpath or the test APK // classpath. api("androidx.test.espresso:espresso-idling-resource:3.7.0") } diff --git a/packages/espresso/android/settings.gradle b/packages/espresso/android/settings.gradle deleted file mode 100644 index 46643c1c5e02..000000000000 --- a/packages/espresso/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'espresso' diff --git a/packages/espresso/android/settings.gradle.kts b/packages/espresso/android/settings.gradle.kts new file mode 100644 index 000000000000..ecf97c03a52c --- /dev/null +++ b/packages/espresso/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "espresso" diff --git a/packages/espresso/pubspec.yaml b/packages/espresso/pubspec.yaml index dbec8b813844..63e77af8c5a9 100644 --- a/packages/espresso/pubspec.yaml +++ b/packages/espresso/pubspec.yaml @@ -3,7 +3,7 @@ description: Java classes for testing Flutter apps using Espresso. Allows driving Flutter widgets from a native Espresso test. repository: https://github.com/flutter/packages/tree/main/packages/espresso issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+espresso%22 -version: 0.4.0+22 +version: 0.4.0+23 environment: sdk: ^3.9.0 diff --git a/packages/file_selector/file_selector_android/CHANGELOG.md b/packages/file_selector/file_selector_android/CHANGELOG.md index 7e0e36773d2d..070599f8e5d7 100644 --- a/packages/file_selector/file_selector_android/CHANGELOG.md +++ b/packages/file_selector/file_selector_android/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 0.5.2+5 +* Updates build files from Groovy to Kotlin. * Updates minimum supported SDK version to Flutter 3.35/Dart 3.9. ## 0.5.2+4 diff --git a/packages/file_selector/file_selector_android/android/build.gradle b/packages/file_selector/file_selector_android/android/build.gradle.kts similarity index 56% rename from packages/file_selector/file_selector_android/android/build.gradle rename to packages/file_selector/file_selector_android/android/build.gradle.kts index aaae0b684ceb..99291f8635a1 100644 --- a/packages/file_selector/file_selector_android/android/build.gradle +++ b/packages/file_selector/file_selector_android/android/build.gradle.kts @@ -1,5 +1,5 @@ -group = 'dev.flutter.packages.file_selector_android' -version = '1.0' +group = "dev.flutter.packages.file_selector_android" +version = "1.0" buildscript { repositories { @@ -8,18 +8,20 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' + classpath("com.android.tools.build:gradle:8.13.1") } } -rootProject.allprojects { +allprojects { repositories { google() mavenCentral() } } -apply plugin: 'com.android.library' +plugins { + id("com.android.library") +} android { namespace = "dev.flutter.packages.file_selector_android" @@ -31,7 +33,7 @@ android { } defaultConfig { - minSdkVersion 24 + minSdk = 24 } dependencies { @@ -42,20 +44,22 @@ android { testImplementation("org.robolectric:robolectric:4.16") } - lintOptions { + lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) } testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } diff --git a/packages/file_selector/file_selector_android/android/settings.gradle b/packages/file_selector/file_selector_android/android/settings.gradle deleted file mode 100644 index 679b28be66a4..000000000000 --- a/packages/file_selector/file_selector_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'file_selector_android' diff --git a/packages/file_selector/file_selector_android/android/settings.gradle.kts b/packages/file_selector/file_selector_android/android/settings.gradle.kts new file mode 100644 index 000000000000..49fb054f3458 --- /dev/null +++ b/packages/file_selector/file_selector_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "file_selector_android" diff --git a/packages/file_selector/file_selector_android/pubspec.yaml b/packages/file_selector/file_selector_android/pubspec.yaml index 042236bfae85..80440caaa287 100644 --- a/packages/file_selector/file_selector_android/pubspec.yaml +++ b/packages/file_selector/file_selector_android/pubspec.yaml @@ -2,7 +2,7 @@ name: file_selector_android description: Android implementation of the file_selector package. repository: https://github.com/flutter/packages/tree/main/packages/file_selector/file_selector_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+file_selector%22 -version: 0.5.2+4 +version: 0.5.2+5 environment: sdk: ^3.9.0 diff --git a/packages/flutter_plugin_android_lifecycle/CHANGELOG.md b/packages/flutter_plugin_android_lifecycle/CHANGELOG.md index 85dd8c13e2e1..aec558de4c34 100644 --- a/packages/flutter_plugin_android_lifecycle/CHANGELOG.md +++ b/packages/flutter_plugin_android_lifecycle/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 2.0.34 +* Updates build files from Groovy to Kotlin. * Updates README to reflect currently supported OS version. ## 2.0.33 diff --git a/packages/flutter_plugin_android_lifecycle/android/build.gradle b/packages/flutter_plugin_android_lifecycle/android/build.gradle deleted file mode 100644 index 1868b38dafe3..000000000000 --- a/packages/flutter_plugin_android_lifecycle/android/build.gradle +++ /dev/null @@ -1,66 +0,0 @@ -group = 'io.flutter.plugins.flutter_plugin_android_lifecycle' -version = '1.0' - -buildscript { - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - } -} - -rootProject.allprojects { - repositories { - google() - mavenCentral() - } -} - -apply plugin: 'com.android.library' - -android { - namespace = "io.flutter.plugins.flutter_plugin_android_lifecycle" - compileSdk = flutter.compileSdkVersion - - defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles 'proguard.txt' - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - lintOptions { - checkAllWarnings = true - warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' - } - - dependencies { - implementation("androidx.annotation:annotation:1.9.1") - } - - - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true - } - } - } -} - -dependencies { - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-core:5.22.0") -} diff --git a/packages/flutter_plugin_android_lifecycle/android/build.gradle.kts b/packages/flutter_plugin_android_lifecycle/android/build.gradle.kts new file mode 100644 index 000000000000..f9c9001086f5 --- /dev/null +++ b/packages/flutter_plugin_android_lifecycle/android/build.gradle.kts @@ -0,0 +1,69 @@ +group = "io.flutter.plugins.flutter_plugin_android_lifecycle" +version = "1.0" + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:8.13.1") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +plugins { + id("com.android.library") +} + +android { + namespace = "io.flutter.plugins.flutter_plugin_android_lifecycle" + compileSdk = flutter.compileSdkVersion + + defaultConfig { + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("proguard.txt") + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + lint { + checkAllWarnings = true + warningsAsErrors = true + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) + } + + dependencies { + implementation("androidx.annotation:annotation:1.9.1") + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + } + } + } +} + +dependencies { + testImplementation("junit:junit:4.13.2") + testImplementation("org.mockito:mockito-core:5.22.0") +} diff --git a/packages/flutter_plugin_android_lifecycle/android/settings.gradle b/packages/flutter_plugin_android_lifecycle/android/settings.gradle deleted file mode 100644 index 70836e6e7200..000000000000 --- a/packages/flutter_plugin_android_lifecycle/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'flutter_plugin_android_lifecycle' diff --git a/packages/flutter_plugin_android_lifecycle/android/settings.gradle.kts b/packages/flutter_plugin_android_lifecycle/android/settings.gradle.kts new file mode 100644 index 000000000000..5c21302de099 --- /dev/null +++ b/packages/flutter_plugin_android_lifecycle/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "flutter_plugin_android_lifecycle" diff --git a/packages/flutter_plugin_android_lifecycle/pubspec.yaml b/packages/flutter_plugin_android_lifecycle/pubspec.yaml index 6c146b98342e..038fc39804aa 100644 --- a/packages/flutter_plugin_android_lifecycle/pubspec.yaml +++ b/packages/flutter_plugin_android_lifecycle/pubspec.yaml @@ -2,7 +2,7 @@ name: flutter_plugin_android_lifecycle description: Flutter plugin for accessing an Android Lifecycle within other plugins. repository: https://github.com/flutter/packages/tree/main/packages/flutter_plugin_android_lifecycle issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+flutter_plugin_android_lifecycle%22 -version: 2.0.33 +version: 2.0.34 environment: sdk: ^3.9.0 diff --git a/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md b/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md index fed644c5be91..09707615326f 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md +++ b/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.19.3 + +* Updates build files from Groovy to Kotlin. + ## 2.19.2 * Bump com.google.maps.android:android-maps-utils from 4.0.0 to 4.1.0. diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle b/packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle.kts similarity index 51% rename from packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle rename to packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle.kts index 46b92902aeed..3fa1c4abf568 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle.kts @@ -1,5 +1,5 @@ -group = 'io.flutter.plugins.googlemaps' -version = '1.0-SNAPSHOT' +group = "io.flutter.plugins.googlemaps" +version = "1.0-SNAPSHOT" buildscript { repositories { @@ -8,31 +8,34 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' + classpath("com.android.tools.build:gradle:8.13.1") } } -rootProject.allprojects { +allprojects { repositories { google() mavenCentral() } } -apply plugin: 'com.android.library' +plugins { + id("com.android.library") +} android { namespace = "io.flutter.plugins.googlemaps" compileSdk = flutter.compileSdkVersion defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } - lintOptions { + + lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) } dependencies { @@ -54,19 +57,21 @@ android { } testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + // The org.gradle.jvmargs property that may be set in gradle.properties does not impact + // the Java heap size when running the Android unit tests. The following property here + // sets the heap size to a size large enough to run the robolectric tests across + // multiple SDK levels. + it.jvmArgs("-Xmx4G") } - // The org.gradle.jvmargs property that may be set in gradle.properties does not impact - // the Java heap size when running the Android unit tests. The following property here - // sets the heap size to a size large enough to run the robolectric tests across - // multiple SDK levels. - jvmArgs "-Xmx4G" } } } diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/settings.gradle b/packages/google_maps_flutter/google_maps_flutter_android/android/settings.gradle deleted file mode 100644 index d873c7abe92c..000000000000 --- a/packages/google_maps_flutter/google_maps_flutter_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'google_maps_flutter_android' diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/settings.gradle.kts b/packages/google_maps_flutter/google_maps_flutter_android/android/settings.gradle.kts new file mode 100644 index 000000000000..8a4acb4d1530 --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "google_maps_flutter_android" diff --git a/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml index 2caebe121cde..817e60a672ae 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml @@ -2,7 +2,7 @@ name: google_maps_flutter_android description: Android implementation of the google_maps_flutter plugin. repository: https://github.com/flutter/packages/tree/main/packages/google_maps_flutter/google_maps_flutter_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22 -version: 2.19.2 +version: 2.19.3 environment: sdk: ^3.9.0 diff --git a/packages/google_sign_in/google_sign_in_android/CHANGELOG.md b/packages/google_sign_in/google_sign_in_android/CHANGELOG.md index 38624c575a70..0117c25f07d9 100644 --- a/packages/google_sign_in/google_sign_in_android/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 7.2.10 + +* Updates build files from Groovy to Kotlin. + ## 7.2.9 * Simplifies internal code for Kotlin/Java interoperability. diff --git a/packages/google_sign_in/google_sign_in_android/android/build.gradle b/packages/google_sign_in/google_sign_in_android/android/build.gradle deleted file mode 100644 index 1c87580418ee..000000000000 --- a/packages/google_sign_in/google_sign_in_android/android/build.gradle +++ /dev/null @@ -1,77 +0,0 @@ -group = 'io.flutter.plugins.googlesignin' -version = '1.0-SNAPSHOT' - -buildscript { - ext.kotlin_version = '2.3.0' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - -rootProject.allprojects { - repositories { - google() - mavenCentral() - } -} - -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' - -android { - namespace = "io.flutter.plugins.googlesignin" - compileSdk = flutter.compileSdkVersion - - defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - lint { - checkAllWarnings = true - warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' - baseline = file("lint-baseline.xml") - } - - - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true - } - } - } -} - -dependencies { - implementation("androidx.credentials:credentials:1.5.0") - implementation("androidx.credentials:credentials-play-services-auth:1.5.0") - implementation("com.google.android.libraries.identity.googleid:googleid:1.1.1") - implementation("com.google.android.gms:play-services-auth:21.4.0") - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-core:5.22.0") -} diff --git a/packages/google_sign_in/google_sign_in_android/android/build.gradle.kts b/packages/google_sign_in/google_sign_in_android/android/build.gradle.kts new file mode 100644 index 000000000000..5c1a338c20fd --- /dev/null +++ b/packages/google_sign_in/google_sign_in_android/android/build.gradle.kts @@ -0,0 +1,80 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +group = "io.flutter.plugins.googlesignin" +version = "1.0-SNAPSHOT" + +buildscript { + val kotlinVersion = "2.3.0" + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:8.13.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +plugins { + id("com.android.library") + id("kotlin-android") +} + +kotlin { + compilerOptions { + jvmTarget = JvmTarget.fromTarget(JavaVersion.VERSION_17.toString()) + } +} + +android { + namespace = "io.flutter.plugins.googlesignin" + compileSdk = flutter.compileSdkVersion + + defaultConfig { + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + lint { + checkAllWarnings = true + warningsAsErrors = true + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) + baseline = file("lint-baseline.xml") + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + } + } + } +} + +dependencies { + implementation("androidx.credentials:credentials:1.5.0") + implementation("androidx.credentials:credentials-play-services-auth:1.5.0") + implementation("com.google.android.libraries.identity.googleid:googleid:1.1.1") + implementation("com.google.android.gms:play-services-auth:21.4.0") + testImplementation("junit:junit:4.13.2") + testImplementation("org.mockito:mockito-core:5.22.0") +} diff --git a/packages/google_sign_in/google_sign_in_android/android/settings.gradle b/packages/google_sign_in/google_sign_in_android/android/settings.gradle deleted file mode 100644 index 35ebd0e2428a..000000000000 --- a/packages/google_sign_in/google_sign_in_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'google_sign_in_android' diff --git a/packages/google_sign_in/google_sign_in_android/android/settings.gradle.kts b/packages/google_sign_in/google_sign_in_android/android/settings.gradle.kts new file mode 100644 index 000000000000..88f95d9cc61f --- /dev/null +++ b/packages/google_sign_in/google_sign_in_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "google_sign_in_android" diff --git a/packages/google_sign_in/google_sign_in_android/pubspec.yaml b/packages/google_sign_in/google_sign_in_android/pubspec.yaml index 244cf1d3f6fd..ead6b61afa4a 100644 --- a/packages/google_sign_in/google_sign_in_android/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in_android/pubspec.yaml @@ -2,7 +2,7 @@ name: google_sign_in_android description: Android implementation of the google_sign_in plugin. repository: https://github.com/flutter/packages/tree/main/packages/google_sign_in/google_sign_in_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22 -version: 7.2.9 +version: 7.2.10 environment: sdk: ^3.9.0 diff --git a/packages/image_picker/image_picker_android/CHANGELOG.md b/packages/image_picker/image_picker_android/CHANGELOG.md index 7f2e33347447..80d91b1deb87 100644 --- a/packages/image_picker/image_picker_android/CHANGELOG.md +++ b/packages/image_picker/image_picker_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.13+15 + +* Updates build files from Groovy to Kotlin. + ## 0.8.13+14 * Bumps androidx.activity:activity from 1.12.2 to 1.12.4. diff --git a/packages/image_picker/image_picker_android/android/build.gradle b/packages/image_picker/image_picker_android/android/build.gradle.kts similarity index 57% rename from packages/image_picker/image_picker_android/android/build.gradle rename to packages/image_picker/image_picker_android/android/build.gradle.kts index 6e1aa71e2d64..5cb0a4825651 100644 --- a/packages/image_picker/image_picker_android/android/build.gradle +++ b/packages/image_picker/image_picker_android/android/build.gradle.kts @@ -1,5 +1,5 @@ -group = 'io.flutter.plugins.imagepicker' -version = '1.0-SNAPSHOT' +group = "io.flutter.plugins.imagepicker" +version = "1.0-SNAPSHOT" buildscript { repositories { @@ -8,32 +8,36 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' + classpath("com.android.tools.build:gradle:8.13.1") } } -rootProject.allprojects { +allprojects { repositories { google() mavenCentral() } } -apply plugin: 'com.android.library' +plugins { + id("com.android.library") +} android { namespace = "io.flutter.plugins.imagepicker" compileSdk = flutter.compileSdkVersion defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } - lintOptions { + + lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) } + dependencies { implementation("androidx.core:core:1.17.0") implementation("androidx.annotation:annotation:1.9.1") @@ -52,13 +56,15 @@ android { } testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } diff --git a/packages/image_picker/image_picker_android/android/settings.gradle b/packages/image_picker/image_picker_android/android/settings.gradle deleted file mode 100755 index 3c673efcd542..000000000000 --- a/packages/image_picker/image_picker_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'image_picker_android' diff --git a/packages/image_picker/image_picker_android/android/settings.gradle.kts b/packages/image_picker/image_picker_android/android/settings.gradle.kts new file mode 100755 index 000000000000..efd9fe9f7500 --- /dev/null +++ b/packages/image_picker/image_picker_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "image_picker_android" diff --git a/packages/image_picker/image_picker_android/pubspec.yaml b/packages/image_picker/image_picker_android/pubspec.yaml index 37dfcbaf8654..aba9ecbef800 100755 --- a/packages/image_picker/image_picker_android/pubspec.yaml +++ b/packages/image_picker/image_picker_android/pubspec.yaml @@ -2,7 +2,7 @@ name: image_picker_android description: Android implementation of the image_picker plugin. repository: https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22 -version: 0.8.13+14 +version: 0.8.13+15 environment: sdk: ^3.9.0 diff --git a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md index 5769150bf7fb..e1c8438aa111 100644 --- a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md +++ b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.0+9 + +* Updates build files from Groovy to Kotlin. + ## 0.4.0+8 * Bumps com.android.tools.build:gradle from 8.12.1 to 8.13.1. diff --git a/packages/in_app_purchase/in_app_purchase_android/android/build.gradle b/packages/in_app_purchase/in_app_purchase_android/android/build.gradle.kts similarity index 60% rename from packages/in_app_purchase/in_app_purchase_android/android/build.gradle rename to packages/in_app_purchase/in_app_purchase_android/android/build.gradle.kts index efe9bb1ae4d9..a5a11945ce67 100644 --- a/packages/in_app_purchase/in_app_purchase_android/android/build.gradle +++ b/packages/in_app_purchase/in_app_purchase_android/android/build.gradle.kts @@ -1,5 +1,5 @@ -group = 'io.flutter.plugins.inapppurchase' -version = '1.0-SNAPSHOT' +group = "io.flutter.plugins.inapppurchase" +version = "1.0-SNAPSHOT" buildscript { repositories { @@ -8,18 +8,20 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' + classpath("com.android.tools.build:gradle:8.13.1") } } -rootProject.allprojects { +allprojects { repositories { google() mavenCentral() } } -apply plugin: 'com.android.library' +plugins { + id("com.android.library") +} android { buildFeatures { @@ -32,27 +34,30 @@ android { defaultConfig { minSdk = 21 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } - lintOptions { + + lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) } + compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } diff --git a/packages/in_app_purchase/in_app_purchase_android/android/settings.gradle b/packages/in_app_purchase/in_app_purchase_android/android/settings.gradle deleted file mode 100644 index 58efd2e9323e..000000000000 --- a/packages/in_app_purchase/in_app_purchase_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'in_app_purchase' diff --git a/packages/in_app_purchase/in_app_purchase_android/android/settings.gradle.kts b/packages/in_app_purchase/in_app_purchase_android/android/settings.gradle.kts new file mode 100644 index 000000000000..9d77dc602791 --- /dev/null +++ b/packages/in_app_purchase/in_app_purchase_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "in_app_purchase" diff --git a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml index 06a91eb3cfaa..e6fc2a4efa5b 100644 --- a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml @@ -3,7 +3,7 @@ description: An implementation for the Android platform of the Flutter `in_app_p repository: https://github.com/flutter/packages/tree/main/packages/in_app_purchase/in_app_purchase_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22 -version: 0.4.0+8 +version: 0.4.0+9 environment: sdk: ^3.9.0 diff --git a/packages/interactive_media_ads/CHANGELOG.md b/packages/interactive_media_ads/CHANGELOG.md index 9a5ffb9eafa8..e36a21703873 100644 --- a/packages/interactive_media_ads/CHANGELOG.md +++ b/packages/interactive_media_ads/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.0+12 + +* Updates build files from Groovy to Kotlin. + ## 0.3.0+11 * Updates `README` to recommend that a single `AdsLoader` should be used per page not for the entire diff --git a/packages/interactive_media_ads/android/build.gradle b/packages/interactive_media_ads/android/build.gradle.kts similarity index 53% rename from packages/interactive_media_ads/android/build.gradle rename to packages/interactive_media_ads/android/build.gradle.kts index acf02e97af25..c8883cfae126 100644 --- a/packages/interactive_media_ads/android/build.gradle +++ b/packages/interactive_media_ads/android/build.gradle.kts @@ -1,16 +1,18 @@ -group = 'dev.flutter.packages.interactive_media_ads' -version = '1.0-SNAPSHOT' +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +group = "dev.flutter.packages.interactive_media_ads" +version = "1.0-SNAPSHOT" buildscript { - ext.kotlin_version = '2.3.0' + val kotlinVersion = "2.3.0" repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath("com.android.tools.build:gradle:8.13.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") } } @@ -21,8 +23,16 @@ allprojects { } } -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +plugins { + id("com.android.library") + id("kotlin-android") +} + +kotlin { + compilerOptions { + jvmTarget = JvmTarget.fromTarget(JavaVersion.VERSION_17.toString()) + } +} android { namespace = "dev.flutter.packages.interactive_media_ads" @@ -34,17 +44,8 @@ android { targetCompatibility = JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - test.java.srcDirs += 'src/test/kotlin' - } - defaultConfig { - minSdkVersion 24 + minSdk = 24 } dependencies { @@ -61,19 +62,21 @@ android { lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) baseline = file("lint-baseline.xml") } testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - useJUnitPlatform() - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.useJUnitPlatform() + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } diff --git a/packages/interactive_media_ads/android/settings.gradle b/packages/interactive_media_ads/android/settings.gradle deleted file mode 100644 index 388e84d5a359..000000000000 --- a/packages/interactive_media_ads/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'interactive_media_ads' diff --git a/packages/interactive_media_ads/android/settings.gradle.kts b/packages/interactive_media_ads/android/settings.gradle.kts new file mode 100644 index 000000000000..3e483db7158d --- /dev/null +++ b/packages/interactive_media_ads/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "interactive_media_ads" diff --git a/packages/interactive_media_ads/pubspec.yaml b/packages/interactive_media_ads/pubspec.yaml index 7a886069f1f6..a9a6d0ea061a 100644 --- a/packages/interactive_media_ads/pubspec.yaml +++ b/packages/interactive_media_ads/pubspec.yaml @@ -2,7 +2,7 @@ name: interactive_media_ads description: A Flutter plugin for using the Interactive Media Ads SDKs on Android and iOS. repository: https://github.com/flutter/packages/tree/main/packages/interactive_media_ads issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+interactive_media_ads%22 -version: 0.3.0+11 # This must match the version in +version: 0.3.0+12 # This must match the version in # `android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/AdsRequestProxyApi.kt` and # `ios/interactive_media_ads/Sources/interactive_media_ads/AdsRequestProxyAPIDelegate.swift` diff --git a/packages/local_auth/local_auth_android/CHANGELOG.md b/packages/local_auth/local_auth_android/CHANGELOG.md index f0c6a100b30d..52793992ce10 100644 --- a/packages/local_auth/local_auth_android/CHANGELOG.md +++ b/packages/local_auth/local_auth_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.6 + +* Updates build files from Groovy to Kotlin. + ## 2.0.5 * Adds platform-specific setup instructions to README. diff --git a/packages/local_auth/local_auth_android/android/build.gradle b/packages/local_auth/local_auth_android/android/build.gradle.kts similarity index 57% rename from packages/local_auth/local_auth_android/android/build.gradle rename to packages/local_auth/local_auth_android/android/build.gradle.kts index 02f2f41c7dfb..a54735652be3 100644 --- a/packages/local_auth/local_auth_android/android/build.gradle +++ b/packages/local_auth/local_auth_android/android/build.gradle.kts @@ -1,5 +1,5 @@ -group = 'io.flutter.plugins.localauth' -version = '1.0-SNAPSHOT' +group = "io.flutter.plugins.localauth" +version = "1.0-SNAPSHOT" buildscript { repositories { @@ -8,26 +8,28 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' + classpath("com.android.tools.build:gradle:8.13.1") } } -rootProject.allprojects { +allprojects { repositories { google() mavenCentral() } } -apply plugin: 'com.android.library' +plugins { + id("com.android.library") +} android { namespace = "io.flutter.plugins.localauth" compileSdk = flutter.compileSdkVersion defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } compileOptions { @@ -35,21 +37,22 @@ android { targetCompatibility = JavaVersion.VERSION_17 } - lintOptions { + lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) } - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } diff --git a/packages/local_auth/local_auth_android/android/settings.gradle b/packages/local_auth/local_auth_android/android/settings.gradle deleted file mode 100644 index dca8c623fdf6..000000000000 --- a/packages/local_auth/local_auth_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'local_auth' diff --git a/packages/local_auth/local_auth_android/android/settings.gradle.kts b/packages/local_auth/local_auth_android/android/settings.gradle.kts new file mode 100644 index 000000000000..3d731a10b076 --- /dev/null +++ b/packages/local_auth/local_auth_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "local_auth" diff --git a/packages/local_auth/local_auth_android/pubspec.yaml b/packages/local_auth/local_auth_android/pubspec.yaml index 627e6ed396fb..a9f3e4c08b43 100644 --- a/packages/local_auth/local_auth_android/pubspec.yaml +++ b/packages/local_auth/local_auth_android/pubspec.yaml @@ -2,7 +2,7 @@ name: local_auth_android description: Android implementation of the local_auth plugin. repository: https://github.com/flutter/packages/tree/main/packages/local_auth/local_auth_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22 -version: 2.0.5 +version: 2.0.6 environment: sdk: ^3.9.0 diff --git a/packages/path_provider/path_provider_android/CHANGELOG.md b/packages/path_provider/path_provider_android/CHANGELOG.md index 76f560327b59..106b35fa0676 100644 --- a/packages/path_provider/path_provider_android/CHANGELOG.md +++ b/packages/path_provider/path_provider_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.2.23 + +* Updates build files from Groovy to Kotlin. + ## 2.2.22 * Bumps com.android.tools.build:gradle from 8.12.1 to 8.13.1. diff --git a/packages/path_provider/path_provider_android/android/build.gradle b/packages/path_provider/path_provider_android/android/build.gradle deleted file mode 100644 index 163ca2de6e0f..000000000000 --- a/packages/path_provider/path_provider_android/android/build.gradle +++ /dev/null @@ -1,59 +0,0 @@ -group = 'io.flutter.plugins.pathprovider' -version = '1.0-SNAPSHOT' - -buildscript { - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - } -} - -rootProject.allprojects { - repositories { - google() - mavenCentral() - } -} - -apply plugin: 'com.android.library' - -android { - namespace = "io.flutter.plugins.pathprovider" - compileSdk = flutter.compileSdkVersion - - defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - lintOptions { - checkAllWarnings = true - warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true - } - } - } -} - -dependencies { - implementation("androidx.annotation:annotation:1.9.1") - testImplementation("junit:junit:4.13.2") -} diff --git a/packages/path_provider/path_provider_android/android/build.gradle.kts b/packages/path_provider/path_provider_android/android/build.gradle.kts new file mode 100644 index 000000000000..3114e6c6385e --- /dev/null +++ b/packages/path_provider/path_provider_android/android/build.gradle.kts @@ -0,0 +1,64 @@ +group = "io.flutter.plugins.pathprovider" +version = "1.0-SNAPSHOT" + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:8.13.1") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +plugins { + id("com.android.library") +} + +android { + namespace = "io.flutter.plugins.pathprovider" + compileSdk = flutter.compileSdkVersion + + defaultConfig { + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + lint { + checkAllWarnings = true + warningsAsErrors = true + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + } + } + } +} + +dependencies { + implementation("androidx.annotation:annotation:1.9.1") + testImplementation("junit:junit:4.13.2") +} diff --git a/packages/path_provider/path_provider_android/android/settings.gradle b/packages/path_provider/path_provider_android/android/settings.gradle deleted file mode 100644 index 359a57ff9540..000000000000 --- a/packages/path_provider/path_provider_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'path_provider_android' diff --git a/packages/path_provider/path_provider_android/android/settings.gradle.kts b/packages/path_provider/path_provider_android/android/settings.gradle.kts new file mode 100644 index 000000000000..4fc5bb16d8aa --- /dev/null +++ b/packages/path_provider/path_provider_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "path_provider_android" diff --git a/packages/path_provider/path_provider_android/pubspec.yaml b/packages/path_provider/path_provider_android/pubspec.yaml index 021a3bf16d66..a5a6380aa24b 100644 --- a/packages/path_provider/path_provider_android/pubspec.yaml +++ b/packages/path_provider/path_provider_android/pubspec.yaml @@ -2,7 +2,7 @@ name: path_provider_android description: Android implementation of the path_provider plugin. repository: https://github.com/flutter/packages/tree/main/packages/path_provider/path_provider_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+path_provider%22 -version: 2.2.22 +version: 2.2.23 environment: sdk: ^3.9.0 diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md index 27ebd2090661..679a86405b3e 100644 --- a/packages/pigeon/CHANGELOG.md +++ b/packages/pigeon/CHANGELOG.md @@ -1,3 +1,7 @@ +## 26.1.11 + +* Updates build files from Groovy to Kotlin. + ## 26.1.10 * Dramatically reduces the number of File write operations sent to the operating diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/build.gradle b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/build.gradle.kts similarity index 50% rename from packages/pigeon/platform_tests/alternate_language_test_plugin/android/build.gradle rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/build.gradle.kts index 181ac05f5ca3..14e778fe7a14 100644 --- a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/build.gradle +++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/build.gradle.kts @@ -1,5 +1,5 @@ -group = 'com.example.alternate_language_test_plugin' -version = '1.0' +group = "com.example.alternate_language_test_plugin" +version = "1.0" buildscript { repositories { @@ -8,18 +8,20 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' + classpath("com.android.tools.build:gradle:8.13.1") } } -rootProject.allprojects { +allprojects { repositories { google() mavenCentral() } } -apply plugin: 'com.android.library' +plugins { + id("com.android.library") +} android { namespace = "com.example.alternate_language_test_plugin" @@ -31,25 +33,27 @@ android { } defaultConfig { - minSdkVersion 24 + minSdk = 24 } testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } - lintOptions { + lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) } dependencies { diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/settings.gradle b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/settings.gradle deleted file mode 100644 index 0f10659c4e4e..000000000000 --- a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'alternate_language_test_plugin' diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/settings.gradle.kts b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/settings.gradle.kts new file mode 100644 index 000000000000..e6c1cb2b5f2e --- /dev/null +++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "alternate_language_test_plugin" diff --git a/packages/pigeon/platform_tests/test_plugin/android/build.gradle b/packages/pigeon/platform_tests/test_plugin/android/build.gradle.kts similarity index 59% rename from packages/pigeon/platform_tests/test_plugin/android/build.gradle rename to packages/pigeon/platform_tests/test_plugin/android/build.gradle.kts index 5f0b03c47864..60847669c6f0 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/build.gradle +++ b/packages/pigeon/platform_tests/test_plugin/android/build.gradle.kts @@ -1,16 +1,16 @@ -group = 'com.example.test_plugin' -version = '1.0-SNAPSHOT' +group = "com.example.test_plugin" +version = "1.0-SNAPSHOT" buildscript { - ext.kotlin_version = '2.3.0' + val kotlinVersion = "2.3.0" repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath("com.android.tools.build:gradle:8.13.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") } } @@ -21,8 +21,10 @@ allprojects { } } -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +plugins { + id("com.android.library") + id("kotlin-android") +} android { namespace = "com.example.test_plugin" @@ -38,22 +40,20 @@ android { allWarningsAsErrors = true } - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - defaultConfig { - minSdkVersion 24 + minSdk = 24 } testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } @@ -61,7 +61,7 @@ android { lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) baseline = file("lint-baseline.xml") } diff --git a/packages/pigeon/platform_tests/test_plugin/android/settings.gradle b/packages/pigeon/platform_tests/test_plugin/android/settings.gradle deleted file mode 100644 index e9328f28412e..000000000000 --- a/packages/pigeon/platform_tests/test_plugin/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'test_plugin' diff --git a/packages/pigeon/platform_tests/test_plugin/android/settings.gradle.kts b/packages/pigeon/platform_tests/test_plugin/android/settings.gradle.kts new file mode 100644 index 000000000000..2e32f8d43572 --- /dev/null +++ b/packages/pigeon/platform_tests/test_plugin/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "test_plugin" diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml index e0e25734e32e..ef6202d4350a 100644 --- a/packages/pigeon/pubspec.yaml +++ b/packages/pigeon/pubspec.yaml @@ -2,7 +2,7 @@ name: pigeon description: Code generator tool to make communication between Flutter and the host platform type-safe and easier. repository: https://github.com/flutter/packages/tree/main/packages/pigeon issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+pigeon%22 -version: 26.1.10 # This must match the version in lib/src/generator_tools.dart +version: 26.1.11 # This must match the version in lib/src/generator_tools.dart environment: sdk: ^3.9.0 diff --git a/packages/quick_actions/quick_actions_android/CHANGELOG.md b/packages/quick_actions/quick_actions_android/CHANGELOG.md index 9fdf32001183..fcacbb356d3c 100644 --- a/packages/quick_actions/quick_actions_android/CHANGELOG.md +++ b/packages/quick_actions/quick_actions_android/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 1.0.28 +* Updates build files from Groovy to Kotlin. * Updates minimum supported SDK version to Flutter 3.35/Dart 3.9. ## 1.0.27 diff --git a/packages/quick_actions/quick_actions_android/android/build.gradle b/packages/quick_actions/quick_actions_android/android/build.gradle deleted file mode 100644 index 5895a7336317..000000000000 --- a/packages/quick_actions/quick_actions_android/android/build.gradle +++ /dev/null @@ -1,60 +0,0 @@ -group = 'io.flutter.plugins.quickactions' -version = '1.0-SNAPSHOT' - -buildscript { - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - } -} - -rootProject.allprojects { - repositories { - google() - mavenCentral() - } -} - -apply plugin: 'com.android.library' - -android { - namespace = "io.flutter.plugins.quickactions" - compileSdk = flutter.compileSdkVersion - - defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - lintOptions { - checkAllWarnings = true - warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' - } - - dependencies { - implementation("androidx.annotation:annotation:1.9.1") - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-core:5.22.0") - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true - } - } - } -} diff --git a/packages/quick_actions/quick_actions_android/android/build.gradle.kts b/packages/quick_actions/quick_actions_android/android/build.gradle.kts new file mode 100644 index 000000000000..da2460ff619d --- /dev/null +++ b/packages/quick_actions/quick_actions_android/android/build.gradle.kts @@ -0,0 +1,65 @@ +group = "io.flutter.plugins.quickactions" +version = "1.0-SNAPSHOT" + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:8.13.1") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +plugins { + id("com.android.library") +} + +android { + namespace = "io.flutter.plugins.quickactions" + compileSdk = flutter.compileSdkVersion + + defaultConfig { + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + lint { + checkAllWarnings = true + warningsAsErrors = true + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) + } + + dependencies { + implementation("androidx.annotation:annotation:1.9.1") + testImplementation("junit:junit:4.13.2") + testImplementation("org.mockito:mockito-core:5.22.0") + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + } + } + } +} diff --git a/packages/quick_actions/quick_actions_android/android/settings.gradle b/packages/quick_actions/quick_actions_android/android/settings.gradle deleted file mode 100644 index 75248241ec35..000000000000 --- a/packages/quick_actions/quick_actions_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'quick_actions' diff --git a/packages/quick_actions/quick_actions_android/android/settings.gradle.kts b/packages/quick_actions/quick_actions_android/android/settings.gradle.kts new file mode 100644 index 000000000000..300d89d29631 --- /dev/null +++ b/packages/quick_actions/quick_actions_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "quick_actions" diff --git a/packages/quick_actions/quick_actions_android/pubspec.yaml b/packages/quick_actions/quick_actions_android/pubspec.yaml index d468da6bbd51..dd05368fd9de 100644 --- a/packages/quick_actions/quick_actions_android/pubspec.yaml +++ b/packages/quick_actions/quick_actions_android/pubspec.yaml @@ -2,7 +2,7 @@ name: quick_actions_android description: An implementation for the Android platform of the Flutter `quick_actions` plugin. repository: https://github.com/flutter/packages/tree/main/packages/quick_actions/quick_actions_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22 -version: 1.0.27 +version: 1.0.28 environment: sdk: ^3.9.0 diff --git a/packages/shared_preferences/shared_preferences_android/CHANGELOG.md b/packages/shared_preferences/shared_preferences_android/CHANGELOG.md index d9d83230286a..32bfb5ee185f 100644 --- a/packages/shared_preferences/shared_preferences_android/CHANGELOG.md +++ b/packages/shared_preferences/shared_preferences_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.4.22 + +* Updates build files from Groovy to Kotlin. + ## 2.4.21 * Reverts `androidx.datastore:datastore` to 1.1.7 due to a regression 16 KB diff --git a/packages/shared_preferences/shared_preferences_android/android/build.gradle b/packages/shared_preferences/shared_preferences_android/android/build.gradle deleted file mode 100644 index c855fe40328e..000000000000 --- a/packages/shared_preferences/shared_preferences_android/android/build.gradle +++ /dev/null @@ -1,86 +0,0 @@ -group = 'io.flutter.plugins.sharedpreferences' -version = '1.0-SNAPSHOT' - -buildscript { - ext.kotlin_version = '2.3.0' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - -rootProject.allprojects { - repositories { - google() - mavenCentral() - } -} - -allprojects { - gradle.projectsEvaluated { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" - } - } -} - -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' - -android { - namespace = "io.flutter.plugins.sharedpreferences" - compileSdk = flutter.compileSdkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - lint { - checkAllWarnings = true - warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' - baseline = file("lint-baseline.xml") - } - dependencies { - implementation("androidx.datastore:datastore:1.1.7") - implementation("androidx.datastore:datastore-preferences:1.1.7") - implementation("androidx.preference:preference:1.2.1") - testImplementation("junit:junit:4.13.2") - testImplementation("androidx.test:core-ktx:1.7.0") - testImplementation("androidx.test.ext:junit-ktx:1.3.0") - testImplementation("org.robolectric:robolectric:4.16") - testImplementation("org.mockito:mockito-inline:5.2.0") - testImplementation("io.mockk:mockk:1.14.9") - } - - - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true - } - } - } -} diff --git a/packages/shared_preferences/shared_preferences_android/android/build.gradle.kts b/packages/shared_preferences/shared_preferences_android/android/build.gradle.kts new file mode 100644 index 000000000000..edf15edc0ca4 --- /dev/null +++ b/packages/shared_preferences/shared_preferences_android/android/build.gradle.kts @@ -0,0 +1,89 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +group = "io.flutter.plugins.sharedpreferences" +version = "1.0-SNAPSHOT" + +buildscript { + val kotlinVersion = "2.3.0" + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:8.13.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +// TODO(stuartmorgan): See if this can be removed. +tasks.withType().configureEach { + options.compilerArgs.add("-Xlint:deprecation") + options.compilerArgs.add("-Xlint:unchecked") +} + +plugins { + id("com.android.library") + id("kotlin-android") +} + +kotlin { + compilerOptions { + jvmTarget = JvmTarget.fromTarget(JavaVersion.VERSION_17.toString()) + } +} + +android { + namespace = "io.flutter.plugins.sharedpreferences" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + defaultConfig { + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + lint { + checkAllWarnings = true + warningsAsErrors = true + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) + baseline = file("lint-baseline.xml") + } + + dependencies { + implementation("androidx.datastore:datastore:1.1.7") + implementation("androidx.datastore:datastore-preferences:1.1.7") + implementation("androidx.preference:preference:1.2.1") + testImplementation("junit:junit:4.13.2") + testImplementation("androidx.test:core-ktx:1.7.0") + testImplementation("androidx.test.ext:junit-ktx:1.3.0") + testImplementation("org.robolectric:robolectric:4.16") + testImplementation("org.mockito:mockito-inline:5.2.0") + testImplementation("io.mockk:mockk:1.14.9") + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + } + } + } +} diff --git a/packages/shared_preferences/shared_preferences_android/android/settings.gradle b/packages/shared_preferences/shared_preferences_android/android/settings.gradle deleted file mode 100644 index 033d5be261a7..000000000000 --- a/packages/shared_preferences/shared_preferences_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'shared_preferences_android' diff --git a/packages/shared_preferences/shared_preferences_android/android/settings.gradle.kts b/packages/shared_preferences/shared_preferences_android/android/settings.gradle.kts new file mode 100644 index 000000000000..e526d4c93d44 --- /dev/null +++ b/packages/shared_preferences/shared_preferences_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "shared_preferences_android" diff --git a/packages/shared_preferences/shared_preferences_android/pubspec.yaml b/packages/shared_preferences/shared_preferences_android/pubspec.yaml index 8ef265cd3b95..67998482ecde 100644 --- a/packages/shared_preferences/shared_preferences_android/pubspec.yaml +++ b/packages/shared_preferences/shared_preferences_android/pubspec.yaml @@ -2,7 +2,7 @@ name: shared_preferences_android description: Android implementation of the shared_preferences plugin repository: https://github.com/flutter/packages/tree/main/packages/shared_preferences/shared_preferences_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+shared_preferences%22 -version: 2.4.21 +version: 2.4.22 environment: sdk: ^3.9.0 diff --git a/packages/url_launcher/url_launcher_android/CHANGELOG.md b/packages/url_launcher/url_launcher_android/CHANGELOG.md index 09f2f425163c..2cb8a74f5f26 100644 --- a/packages/url_launcher/url_launcher_android/CHANGELOG.md +++ b/packages/url_launcher/url_launcher_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.3.29 + +* Updates build files from Groovy to Kotlin. + ## 6.3.28 * Bumps com.android.tools.build:gradle from 8.12.1 to 8.13.1. diff --git a/packages/url_launcher/url_launcher_android/android/build.gradle b/packages/url_launcher/url_launcher_android/android/build.gradle.kts similarity index 57% rename from packages/url_launcher/url_launcher_android/android/build.gradle rename to packages/url_launcher/url_launcher_android/android/build.gradle.kts index 3d3470587705..d5bbc4953b01 100644 --- a/packages/url_launcher/url_launcher_android/android/build.gradle +++ b/packages/url_launcher/url_launcher_android/android/build.gradle.kts @@ -1,5 +1,5 @@ -group = 'io.flutter.plugins.urllauncher' -version = '1.0-SNAPSHOT' +group = "io.flutter.plugins.urllauncher" +version = "1.0-SNAPSHOT" buildscript { repositories { @@ -8,29 +8,32 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' + classpath("com.android.tools.build:gradle:8.13.1") } } -rootProject.allprojects { +allprojects { repositories { google() mavenCentral() } } -apply plugin: 'com.android.library' +plugins { + id("com.android.library") +} android { buildFeatures { buildConfig = true } + namespace = "io.flutter.plugins.urllauncher" compileSdk = flutter.compileSdkVersion defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } compileOptions { @@ -38,28 +41,28 @@ android { targetCompatibility = JavaVersion.VERSION_17 } - lintOptions { + lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) } - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } } dependencies { - // Java language implementation implementation("androidx.core:core:1.17.0") implementation("androidx.annotation:annotation:1.9.1") diff --git a/packages/url_launcher/url_launcher_android/android/settings.gradle b/packages/url_launcher/url_launcher_android/android/settings.gradle deleted file mode 100644 index d8b7cc47172c..000000000000 --- a/packages/url_launcher/url_launcher_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'url_launcher_android' diff --git a/packages/url_launcher/url_launcher_android/android/settings.gradle.kts b/packages/url_launcher/url_launcher_android/android/settings.gradle.kts new file mode 100644 index 000000000000..22c54c2e0d72 --- /dev/null +++ b/packages/url_launcher/url_launcher_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "url_launcher_android" diff --git a/packages/url_launcher/url_launcher_android/pubspec.yaml b/packages/url_launcher/url_launcher_android/pubspec.yaml index 4aeab9b6eee2..425b261484ae 100644 --- a/packages/url_launcher/url_launcher_android/pubspec.yaml +++ b/packages/url_launcher/url_launcher_android/pubspec.yaml @@ -2,7 +2,7 @@ name: url_launcher_android description: Android implementation of the url_launcher plugin. repository: https://github.com/flutter/packages/tree/main/packages/url_launcher/url_launcher_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+url_launcher%22 -version: 6.3.28 +version: 6.3.29 environment: sdk: ^3.9.0 diff --git a/packages/video_player/video_player_android/CHANGELOG.md b/packages/video_player/video_player_android/CHANGELOG.md index 4dc08f0c4624..3180609828e8 100644 --- a/packages/video_player/video_player_android/CHANGELOG.md +++ b/packages/video_player/video_player_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.9.5 + +* Updates build files from Groovy to Kotlin. + ## 2.9.4 * Updates `androidx.media3` to 1.9.2. diff --git a/packages/video_player/video_player_android/android/build.gradle b/packages/video_player/video_player_android/android/build.gradle deleted file mode 100644 index 173cb32a30d7..000000000000 --- a/packages/video_player/video_player_android/android/build.gradle +++ /dev/null @@ -1,83 +0,0 @@ -group = 'io.flutter.plugins.videoplayer' -version = '1.0-SNAPSHOT' - -buildscript { - ext.kotlin_version = '2.3.0' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - -rootProject.allprojects { - repositories { - google() - mavenCentral() - } -} - -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' - -android { - namespace = "io.flutter.plugins.videoplayer" - compileSdk = flutter.compileSdkVersion - - defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - lint { - checkAllWarnings = true - warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' - baseline = file("lint-baseline.xml") - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - dependencies { - def exoplayer_version = "1.9.2" - implementation("androidx.media3:media3-exoplayer:${exoplayer_version}") - implementation("androidx.media3:media3-exoplayer-hls:${exoplayer_version}") - implementation("androidx.media3:media3-exoplayer-dash:${exoplayer_version}") - implementation("androidx.media3:media3-exoplayer-rtsp:${exoplayer_version}") - implementation("androidx.media3:media3-exoplayer-smoothstreaming:${exoplayer_version}") - testImplementation("junit:junit:4.13.2") - testImplementation("androidx.test:core:1.7.0") - testImplementation("org.mockito:mockito-core:5.22.0") - testImplementation("org.robolectric:robolectric:4.16") - testImplementation("androidx.media3:media3-test-utils:${exoplayer_version}") - } - - testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - // The org.gradle.jvmargs property that may be set in gradle.properties does not impact - // the Java heap size when running the Android unit tests. The following property here - // sets the heap size to a size large enough to run the robolectric tests across - // multiple SDK levels. - jvmArgs "-Xmx4G" - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true - } - } - } -} diff --git a/packages/video_player/video_player_android/android/build.gradle.kts b/packages/video_player/video_player_android/android/build.gradle.kts new file mode 100644 index 000000000000..663d96838140 --- /dev/null +++ b/packages/video_player/video_player_android/android/build.gradle.kts @@ -0,0 +1,86 @@ +group = "io.flutter.plugins.videoplayer" +version = "1.0-SNAPSHOT" + +buildscript { + val kotlinVersion = "2.3.0" + repositories { + google() + mavenCentral() + } + + dependencies { + classpath("com.android.tools.build:gradle:8.13.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +plugins { + id("com.android.library") + id("kotlin-android") +} + +android { + namespace = "io.flutter.plugins.videoplayer" + compileSdk = flutter.compileSdkVersion + + defaultConfig { + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + lint { + checkAllWarnings = true + warningsAsErrors = true + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) + baseline = file("lint-baseline.xml") + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + dependencies { + val exoplayerVersion = "1.9.2" + implementation("androidx.media3:media3-exoplayer:${exoplayerVersion}") + implementation("androidx.media3:media3-exoplayer-hls:${exoplayerVersion}") + implementation("androidx.media3:media3-exoplayer-dash:${exoplayerVersion}") + implementation("androidx.media3:media3-exoplayer-rtsp:${exoplayerVersion}") + implementation("androidx.media3:media3-exoplayer-smoothstreaming:${exoplayerVersion}") + testImplementation("junit:junit:4.13.2") + testImplementation("androidx.test:core:1.7.0") + testImplementation("org.mockito:mockito-core:5.22.0") + testImplementation("org.robolectric:robolectric:4.16") + testImplementation("androidx.media3:media3-test-utils:${exoplayerVersion}") + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } + // The org.gradle.jvmargs property that may be set in gradle.properties does not impact + // the Java heap size when running the Android unit tests. The following property here + // sets the heap size to a size large enough to run the robolectric tests across + // multiple SDK levels. + it.jvmArgs("-Xmx4G") + } + } + } +} diff --git a/packages/video_player/video_player_android/android/settings.gradle b/packages/video_player/video_player_android/android/settings.gradle deleted file mode 100644 index 00681714f7d8..000000000000 --- a/packages/video_player/video_player_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'video_player_android' diff --git a/packages/video_player/video_player_android/android/settings.gradle.kts b/packages/video_player/video_player_android/android/settings.gradle.kts new file mode 100644 index 000000000000..e3289a056828 --- /dev/null +++ b/packages/video_player/video_player_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "video_player_android" diff --git a/packages/video_player/video_player_android/pubspec.yaml b/packages/video_player/video_player_android/pubspec.yaml index 359ba7466e27..4461ddd73d1e 100644 --- a/packages/video_player/video_player_android/pubspec.yaml +++ b/packages/video_player/video_player_android/pubspec.yaml @@ -2,7 +2,7 @@ name: video_player_android description: Android implementation of the video_player plugin. repository: https://github.com/flutter/packages/tree/main/packages/video_player/video_player_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22 -version: 2.9.4 +version: 2.9.5 environment: sdk: ^3.9.0 diff --git a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md index 088dcb547c3e..832b6a95711e 100644 --- a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.10.14 + +* Updates build files from Groovy to Kotlin. + ## 4.10.13 * Bumps androidx.webkit:webkit from 1.14.0 to 1.15.0. diff --git a/packages/webview_flutter/webview_flutter_android/android/build.gradle b/packages/webview_flutter/webview_flutter_android/android/build.gradle.kts similarity index 54% rename from packages/webview_flutter/webview_flutter_android/android/build.gradle rename to packages/webview_flutter/webview_flutter_android/android/build.gradle.kts index fb026cb7a778..e345474e5106 100644 --- a/packages/webview_flutter/webview_flutter_android/android/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/android/build.gradle.kts @@ -1,28 +1,30 @@ -group = 'io.flutter.plugins.webviewflutter' -version = '1.0-SNAPSHOT' +group = "io.flutter.plugins.webviewflutter" +version = "1.0-SNAPSHOT" buildscript { - ext.kotlin_version = '2.3.0' + val kotlinVersion = "2.3.0" repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.13.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath("com.android.tools.build:gradle:8.13.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") } } -rootProject.allprojects { +allprojects { repositories { google() mavenCentral() } } -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +plugins { + id("com.android.library") + id("kotlin-android") +} android { namespace = "io.flutter.plugins.webviewflutter" @@ -38,14 +40,14 @@ android { } defaultConfig { - minSdkVersion 24 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } lint { checkAllWarnings = true warningsAsErrors = true - disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency', 'NewerVersionAvailable' + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) baseline = file("lint-baseline.xml") } @@ -59,13 +61,15 @@ android { } testOptions { - unitTests.includeAndroidResources = true - unitTests.returnDefaultValues = true - unitTests.all { - testLogging { - events "passed", "skipped", "failed", "standardOut", "standardError" - outputs.upToDateWhen {false} - showStandardStreams = true + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + all { + it.outputs.upToDateWhen { false } + it.testLogging { + events("passed", "skipped", "failed", "standardOut", "standardError") + showStandardStreams = true + } } } } diff --git a/packages/webview_flutter/webview_flutter_android/android/settings.gradle b/packages/webview_flutter/webview_flutter_android/android/settings.gradle deleted file mode 100644 index 5be7a4b4c692..000000000000 --- a/packages/webview_flutter/webview_flutter_android/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'webview_flutter' diff --git a/packages/webview_flutter/webview_flutter_android/android/settings.gradle.kts b/packages/webview_flutter/webview_flutter_android/android/settings.gradle.kts new file mode 100644 index 000000000000..009a3e185c9a --- /dev/null +++ b/packages/webview_flutter/webview_flutter_android/android/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "webview_flutter" diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml index 4415fcfbbaee..1657eeb4af99 100644 --- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_android description: A Flutter plugin that provides a WebView widget on Android. repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 4.10.13 +version: 4.10.14 environment: sdk: ^3.9.0 diff --git a/script/tool/test/gradle_check_command_test.dart b/script/tool/test/gradle_check_command_test.dart index 7821995c0519..9ab207b07601 100644 --- a/script/tool/test/gradle_check_command_test.dart +++ b/script/tool/test/gradle_check_command_test.dart @@ -19,6 +19,8 @@ void main() { late Directory packagesDir; const groovyJavaIncompatabilityIndicator = 'build.gradle must set an explicit Java compatibility version.'; + const kotlinJavaIncompatabilityIndicator = + 'build.gradle.kts must set an explicit Java compatibility version.'; setUp(() { final GitDir gitDir; @@ -128,6 +130,101 @@ dependencies { '''); } + /// Writes a fake android/build.gradle.kts file for plugin [package] with the + /// given options. + void writeFakeKotlinPluginBuildGradle( + RepositoryPackage package, { + bool includeLanguageVersion = false, + bool includeSourceCompat = false, + bool includeTargetCompat = false, + bool commentSourceLanguage = false, + bool includeNamespace = true, + bool commentNamespace = false, + bool warningsConfigured = true, + String compileSdk = '36', + bool includeKotlinOptions = true, + bool commentKotlinOptions = false, + bool useDeprecatedJvmTargetStyle = false, + int jvmTargetValue = 17, + int kotlinJvmValue = 17, + }) { + final File buildGradle = package + .platformDirectory(FlutterPlatform.android) + .childFile('build.gradle.kts'); + buildGradle.createSync(recursive: true); + + const warningConfig = ''' + lint { + checkAllWarnings = true + warningsAsErrors = true + disable.addAll(setOf("AndroidGradlePluginVersion", "InvalidPackage", "GradleDependency", "NewerVersionAvailable")) + baseline = file("lint-baseline.xml") + } +'''; + final javaSection = + ''' +java { + toolchain { + ${commentSourceLanguage ? '// ' : ''}languageVersion = JavaLanguageVersion.of(8) + } +} + +'''; + final sourceCompat = + '${commentSourceLanguage ? '// ' : ''}sourceCompatibility = JavaVersion.VERSION_$jvmTargetValue'; + final targetCompat = + '${commentSourceLanguage ? '// ' : ''}targetCompatibility = JavaVersion.VERSION_$jvmTargetValue'; + final namespace = + ' ${commentNamespace ? '// ' : ''}namespace = "$_defaultFakeNamespace"'; + final kotlinJvmTarget = useDeprecatedJvmTargetStyle + ? '$jvmTargetValue' + : 'JavaVersion.VERSION_$kotlinJvmValue.toString()'; + final kotlinConfig = + ''' + ${commentKotlinOptions ? '//' : ''}kotlinOptions { + ${commentKotlinOptions ? '//' : ''}jvmTarget = $kotlinJvmTarget + ${commentKotlinOptions ? '//' : ''}}'''; + + buildGradle.writeAsStringSync(''' +group = "dev.flutter.plugins.fake" +version = "1.0-SNAPSHOT" + +buildscript { + repositories { + google() + mavenCentral() + } +} + +apply plugin: 'com.android.library' + +${includeLanguageVersion ? javaSection : ''} +android { +${includeNamespace ? namespace : ''} + compileSdk = $compileSdk + + defaultConfig { + minSdk = 30 + } +${warningsConfigured ? warningConfig : ''} + compileOptions { + ${includeSourceCompat ? sourceCompat : ''} + ${includeTargetCompat ? targetCompat : ''} + } + ${includeKotlinOptions ? kotlinConfig : ''} + testOptions { + unitTests { + isIncludeAndroidResources = true + } + } +} + +dependencies { + implementation("fake.package:fake:1.0.0") +} +'''); + } + /// Writes a fake android/build.gradle file for an example [package] with the /// given options. // TODO(stuartmorgan): Once all packages are migrated to Kotlin, remove all @@ -542,7 +639,9 @@ flutter { ); }); - test('fails when build.gradle has no java compatibility version', () async { + test( + 'fails when build.gradle has no java compatibility version - groovy', + () async { final RepositoryPackage package = createFakePlugin( 'a_plugin', packagesDir, @@ -569,6 +668,36 @@ flutter { ); }); + test( + 'fails when build.gradle has no java compatibility version - kotlin', + () async { + final RepositoryPackage package = createFakePlugin( + 'a_plugin', + packagesDir, + examples: [], + ); + writeFakeKotlinPluginBuildGradle(package); + writeFakeManifest(package); + + Error? commandError; + final List output = await runCapturingPrint( + runner, + ['gradle-check'], + errorHandler: (Error e) { + commandError = e; + }, + ); + + expect(commandError, isA()); + expect( + output, + containsAllInOrder([ + contains(kotlinJavaIncompatabilityIndicator), + ]), + ); + }, + ); + test( 'fails when sourceCompatibility is provided with out targetCompatibility', () async { @@ -774,7 +903,7 @@ flutter { test('does not require java version in examples - kotlin', () async { const pluginName = 'a_plugin'; final RepositoryPackage package = createFakePlugin(pluginName, packagesDir); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); + writeFakeKotlinPluginBuildGradle(package, includeLanguageVersion: true); writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; writeFakeKotlinExampleBuildGradles(example, pluginName: pluginName); @@ -888,7 +1017,7 @@ flutter { }, ); - test('fails when namespace is missing', () async { + test('fails when namespace is missing - groovy', () async { final RepositoryPackage package = createFakePlugin( 'a_plugin', packagesDir, @@ -919,6 +1048,37 @@ flutter { ); }); + test('fails when namespace is missing - kotlin', () async { + final RepositoryPackage package = createFakePlugin( + 'a_plugin', + packagesDir, + examples: [], + ); + writeFakeKotlinPluginBuildGradle( + package, + includeLanguageVersion: true, + includeNamespace: false, + ); + writeFakeManifest(package); + + Error? commandError; + final List output = await runCapturingPrint( + runner, + ['gradle-check'], + errorHandler: (Error e) { + commandError = e; + }, + ); + + expect(commandError, isA()); + expect( + output, + containsAllInOrder([ + contains('build.gradle.kts must set a "namespace"'), + ]), + ); + }); + test('fails when namespace is missing from example - groovy', () async { const pluginName = 'a_plugin'; final RepositoryPackage package = createFakePlugin(pluginName, packagesDir); @@ -953,7 +1113,7 @@ flutter { test('fails when namespace is missing from example - kotlin', () async { const pluginName = 'a_plugin'; final RepositoryPackage package = createFakePlugin(pluginName, packagesDir); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); + writeFakeKotlinPluginBuildGradle(package, includeLanguageVersion: true); writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; writeFakeKotlinExampleBuildGradles(