From d31df6671d3fa6edf499772aacb5e3bb55b79af4 Mon Sep 17 00:00:00 2001 From: stuartmorgan-g Date: Fri, 3 Apr 2026 11:38:15 -0400 Subject: [PATCH 01/14] [various] Convert plugin impl examples to Kotlin Gradle (#11421) Converts plugin implementation package example apps to Kotlin Gradle. Does not include app-facing package examples, which are still unmigrated, because they don't have all the same elements. (That will be a follow-up PR) Unlike some of the other example conversion PRs, these were not done by recreating the `android/` directory from scratch, since there's a lot more going on these directories (e.g., native unit tests). Instead they were converted directly: - I used Gemini to convert one plugin, following the example of one of the previous non-plugin PRs. - I did some manual fixup on that. - I had Gemini replicate that commit to the other plugin implementation packages. - I manually diffed the files across plugins, removing any variation introduced by inconsistent AI output. - I took this opportunity to remove some `-Xlint:-classfile` flags that were no longer needed, since we are requiring a new enough version of Java that some versions of the problem no longer happen. - I did side-by-side comparison of the new and old files to look for any accidental changes. The last step is the one where I'm most likely to have missed something, but since these are example apps, CI should give us good confidence that everything that matters is correct. Includes an update to the repo tools to recognize `.kts` files as Kotlin for excerpting, since a .gradle excerpt source file is now a `.gradle.kts` file. Part of https://github.com/flutter/flutter/issues/176065 ## Pre-Review Checklist [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. --- .../example/android/app/build.gradle | 63 ---------- .../example/android/app/build.gradle.kts | 51 ++++++++ .../example/android/build.gradle | 37 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 67 ---------- .../example/android/app/build.gradle.kts | 46 +++++++ .../example/android/build.gradle | 36 ------ .../example/android/build.gradle.kts | 46 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../app/{build.gradle => build.gradle.kts} | 53 +++----- .../espresso/example/android/build.gradle | 38 ------ .../espresso/example/android/build.gradle.kts | 46 +++++++ .../espresso/example/android/settings.gradle | 28 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 66 ---------- .../example/android/app/build.gradle.kts | 46 +++++++ .../example/android/build.gradle | 37 ------ .../example/android/build.gradle.kts | 49 ++++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 61 ---------- .../example/android/app/build.gradle.kts | 47 ++++++++ .../example/android/build.gradle | 36 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 38 ------ .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 72 ----------- .../example/android/app/build.gradle.kts | 57 +++++++++ .../example/android/build.gradle | 46 ------- .../example/android/build.gradle.kts | 49 ++++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 66 ---------- .../example/android/app/build.gradle.kts | 56 +++++++++ .../example/android/build.gradle | 41 ------- .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 29 +++++ .../example/android/app/build.gradle | 67 ---------- .../example/android/app/build.gradle.kts | 57 +++++++++ .../example/android/build.gradle | 37 ------ .../example/android/build.gradle.kts | 49 ++++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 114 ------------------ .../example/android/app/build.gradle.kts | 105 ++++++++++++++++ .../example/android/build.gradle | 36 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ packages/interactive_media_ads/CHANGELOG.md | 4 + packages/interactive_media_ads/README.md | 13 +- .../AdsRequestProxyApi.kt | 2 +- .../app/{build.gradle => build.gradle.kts} | 46 ++----- .../example/android/build.gradle | 39 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../AdsRequestProxyAPIDelegate.swift | 2 +- packages/interactive_media_ads/pubspec.yaml | 2 +- .../example/android/app/build.gradle | 57 --------- .../example/android/app/build.gradle.kts | 47 ++++++++ .../example/android/build.gradle | 37 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 28 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 63 ---------- .../example/android/app/build.gradle.kts | 40 ++++++ .../example/android/build.gradle | 37 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 57 --------- .../example/android/app/build.gradle.kts | 38 ++++++ .../example/android/build.gradle | 32 ----- .../example/android/build.gradle.kts | 42 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 69 ----------- .../example/android/app/build.gradle.kts | 42 +++++++ .../test_plugin/example/android/build.gradle | 32 ----- .../example/android/build.gradle.kts | 42 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 65 ---------- .../example/android/app/build.gradle.kts | 54 +++++++++ .../example/android/build.gradle | 37 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 87 ------------- .../example/android/app/build.gradle.kts | 53 ++++++++ .../example/android/build.gradle | 36 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 59 --------- .../example/android/app/build.gradle.kts | 47 ++++++++ .../example/android/build.gradle | 36 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 69 ----------- .../example/android/app/build.gradle.kts | 53 ++++++++ .../example/android/build.gradle | 59 --------- .../example/android/build.gradle.kts | 67 ++++++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../example/android/app/build.gradle | 70 ----------- .../example/android/app/build.gradle.kts | 49 ++++++++ .../example/android/build.gradle | 37 ------ .../example/android/build.gradle.kts | 45 +++++++ .../example/android/settings.gradle | 27 ----- .../example/android/settings.gradle.kts | 28 +++++ .../tool/lib/src/update_excerpts_command.dart | 1 + .../test/update_excerpts_command_test.dart | 1 + 119 files changed, 2354 insertions(+), 2500 deletions(-) delete mode 100644 packages/camera/camera_android/example/android/app/build.gradle create mode 100644 packages/camera/camera_android/example/android/app/build.gradle.kts delete mode 100644 packages/camera/camera_android/example/android/build.gradle create mode 100644 packages/camera/camera_android/example/android/build.gradle.kts delete mode 100644 packages/camera/camera_android/example/android/settings.gradle create mode 100644 packages/camera/camera_android/example/android/settings.gradle.kts delete mode 100644 packages/camera/camera_android_camerax/example/android/app/build.gradle create mode 100644 packages/camera/camera_android_camerax/example/android/app/build.gradle.kts delete mode 100644 packages/camera/camera_android_camerax/example/android/build.gradle create mode 100644 packages/camera/camera_android_camerax/example/android/build.gradle.kts delete mode 100644 packages/camera/camera_android_camerax/example/android/settings.gradle create mode 100644 packages/camera/camera_android_camerax/example/android/settings.gradle.kts rename packages/espresso/example/android/app/{build.gradle => build.gradle.kts} (56%) delete mode 100644 packages/espresso/example/android/build.gradle create mode 100644 packages/espresso/example/android/build.gradle.kts delete mode 100644 packages/espresso/example/android/settings.gradle create mode 100644 packages/espresso/example/android/settings.gradle.kts delete mode 100644 packages/file_selector/file_selector_android/example/android/app/build.gradle create mode 100644 packages/file_selector/file_selector_android/example/android/app/build.gradle.kts delete mode 100644 packages/file_selector/file_selector_android/example/android/build.gradle create mode 100644 packages/file_selector/file_selector_android/example/android/build.gradle.kts delete mode 100644 packages/file_selector/file_selector_android/example/android/settings.gradle create mode 100644 packages/file_selector/file_selector_android/example/android/settings.gradle.kts delete mode 100644 packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle create mode 100644 packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle.kts delete mode 100644 packages/flutter_plugin_android_lifecycle/example/android/build.gradle create mode 100644 packages/flutter_plugin_android_lifecycle/example/android/build.gradle.kts delete mode 100644 packages/flutter_plugin_android_lifecycle/example/android/settings.gradle create mode 100644 packages/flutter_plugin_android_lifecycle/example/android/settings.gradle.kts delete mode 100644 packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle create mode 100644 packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle.kts delete mode 100644 packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle create mode 100644 packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle.kts delete mode 100644 packages/google_maps_flutter/google_maps_flutter_android/example/android/settings.gradle create mode 100644 packages/google_maps_flutter/google_maps_flutter_android/example/android/settings.gradle.kts delete mode 100644 packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle create mode 100644 packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle.kts delete mode 100644 packages/google_sign_in/google_sign_in_android/example/android/build.gradle create mode 100644 packages/google_sign_in/google_sign_in_android/example/android/build.gradle.kts delete mode 100644 packages/google_sign_in/google_sign_in_android/example/android/settings.gradle create mode 100644 packages/google_sign_in/google_sign_in_android/example/android/settings.gradle.kts delete mode 100755 packages/image_picker/image_picker_android/example/android/app/build.gradle create mode 100644 packages/image_picker/image_picker_android/example/android/app/build.gradle.kts delete mode 100755 packages/image_picker/image_picker_android/example/android/build.gradle create mode 100644 packages/image_picker/image_picker_android/example/android/build.gradle.kts delete mode 100755 packages/image_picker/image_picker_android/example/android/settings.gradle create mode 100644 packages/image_picker/image_picker_android/example/android/settings.gradle.kts delete mode 100644 packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle create mode 100644 packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle.kts delete mode 100644 packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle create mode 100644 packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle.kts delete mode 100644 packages/in_app_purchase/in_app_purchase_android/example/android/settings.gradle create mode 100644 packages/in_app_purchase/in_app_purchase_android/example/android/settings.gradle.kts rename packages/interactive_media_ads/example/android/app/{build.gradle => build.gradle.kts} (50%) delete mode 100644 packages/interactive_media_ads/example/android/build.gradle create mode 100644 packages/interactive_media_ads/example/android/build.gradle.kts delete mode 100644 packages/interactive_media_ads/example/android/settings.gradle create mode 100644 packages/interactive_media_ads/example/android/settings.gradle.kts delete mode 100644 packages/local_auth/local_auth_android/example/android/app/build.gradle create mode 100644 packages/local_auth/local_auth_android/example/android/app/build.gradle.kts delete mode 100644 packages/local_auth/local_auth_android/example/android/build.gradle create mode 100644 packages/local_auth/local_auth_android/example/android/build.gradle.kts delete mode 100644 packages/local_auth/local_auth_android/example/android/settings.gradle create mode 100644 packages/local_auth/local_auth_android/example/android/settings.gradle.kts delete mode 100644 packages/path_provider/path_provider_android/example/android/app/build.gradle create mode 100644 packages/path_provider/path_provider_android/example/android/app/build.gradle.kts delete mode 100644 packages/path_provider/path_provider_android/example/android/build.gradle create mode 100644 packages/path_provider/path_provider_android/example/android/build.gradle.kts delete mode 100644 packages/path_provider/path_provider_android/example/android/settings.gradle create mode 100644 packages/path_provider/path_provider_android/example/android/settings.gradle.kts delete mode 100644 packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle create mode 100644 packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle.kts delete mode 100644 packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/build.gradle create mode 100644 packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/build.gradle.kts delete mode 100644 packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/settings.gradle create mode 100644 packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/settings.gradle.kts delete mode 100644 packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle create mode 100644 packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle.kts delete mode 100644 packages/pigeon/platform_tests/test_plugin/example/android/build.gradle create mode 100644 packages/pigeon/platform_tests/test_plugin/example/android/build.gradle.kts delete mode 100644 packages/pigeon/platform_tests/test_plugin/example/android/settings.gradle create mode 100644 packages/pigeon/platform_tests/test_plugin/example/android/settings.gradle.kts delete mode 100644 packages/quick_actions/quick_actions_android/example/android/app/build.gradle create mode 100644 packages/quick_actions/quick_actions_android/example/android/app/build.gradle.kts delete mode 100644 packages/quick_actions/quick_actions_android/example/android/build.gradle create mode 100644 packages/quick_actions/quick_actions_android/example/android/build.gradle.kts delete mode 100644 packages/quick_actions/quick_actions_android/example/android/settings.gradle create mode 100644 packages/quick_actions/quick_actions_android/example/android/settings.gradle.kts delete mode 100644 packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle create mode 100644 packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle.kts delete mode 100644 packages/shared_preferences/shared_preferences_android/example/android/build.gradle create mode 100644 packages/shared_preferences/shared_preferences_android/example/android/build.gradle.kts delete mode 100644 packages/shared_preferences/shared_preferences_android/example/android/settings.gradle create mode 100644 packages/shared_preferences/shared_preferences_android/example/android/settings.gradle.kts delete mode 100644 packages/url_launcher/url_launcher_android/example/android/app/build.gradle create mode 100644 packages/url_launcher/url_launcher_android/example/android/app/build.gradle.kts delete mode 100644 packages/url_launcher/url_launcher_android/example/android/build.gradle create mode 100644 packages/url_launcher/url_launcher_android/example/android/build.gradle.kts delete mode 100644 packages/url_launcher/url_launcher_android/example/android/settings.gradle create mode 100644 packages/url_launcher/url_launcher_android/example/android/settings.gradle.kts delete mode 100644 packages/video_player/video_player_android/example/android/app/build.gradle create mode 100644 packages/video_player/video_player_android/example/android/app/build.gradle.kts delete mode 100644 packages/video_player/video_player_android/example/android/build.gradle create mode 100644 packages/video_player/video_player_android/example/android/build.gradle.kts delete mode 100644 packages/video_player/video_player_android/example/android/settings.gradle create mode 100644 packages/video_player/video_player_android/example/android/settings.gradle.kts delete mode 100644 packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle create mode 100644 packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle.kts delete mode 100644 packages/webview_flutter/webview_flutter_android/example/android/build.gradle create mode 100644 packages/webview_flutter/webview_flutter_android/example/android/build.gradle.kts delete mode 100644 packages/webview_flutter/webview_flutter_android/example/android/settings.gradle create mode 100644 packages/webview_flutter/webview_flutter_android/example/android/settings.gradle.kts diff --git a/packages/camera/camera_android/example/android/app/build.gradle b/packages/camera/camera_android/example/android/app/build.gradle deleted file mode 100644 index 080f8244bad9..000000000000 --- a/packages/camera/camera_android/example/android/app/build.gradle +++ /dev/null @@ -1,63 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.cameraexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.cameraexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - profile { - matchingFallbacks = ['debug', 'release'] - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test:rules:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") -} diff --git a/packages/camera/camera_android/example/android/app/build.gradle.kts b/packages/camera/camera_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..5cbd95299a93 --- /dev/null +++ b/packages/camera/camera_android/example/android/app/build.gradle.kts @@ -0,0 +1,51 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.cameraexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.cameraexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + getByName("profile") { + matchingFallbacks += listOf("debug", "release") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test:rules:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") +} diff --git a/packages/camera/camera_android/example/android/build.gradle b/packages/camera/camera_android/example/android/build.gradle deleted file mode 100644 index 0e991044a094..000000000000 --- a/packages/camera/camera_android/example/android/build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":camera_android") { - tasks.withType(JavaCompile) { - // Ignore classfile due to https://issuetracker.google.com/issues/342067844 - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - } - } -} diff --git a/packages/camera/camera_android/example/android/build.gradle.kts b/packages/camera/camera_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..75c21ddbb6b5 --- /dev/null +++ b/packages/camera/camera_android/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":camera_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/camera/camera_android/example/android/settings.gradle b/packages/camera/camera_android/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/camera/camera_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/camera/camera_android/example/android/settings.gradle.kts b/packages/camera/camera_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/camera/camera_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/camera/camera_android_camerax/example/android/app/build.gradle b/packages/camera/camera_android_camerax/example/android/app/build.gradle deleted file mode 100644 index c622ae4f9dea..000000000000 --- a/packages/camera/camera_android_camerax/example/android/app/build.gradle +++ /dev/null @@ -1,67 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.cameraxexample" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - 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 { - applicationId "io.flutter.plugins.cameraxexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") -} diff --git a/packages/camera/camera_android_camerax/example/android/app/build.gradle.kts b/packages/camera/camera_android_camerax/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..34eeda4f747e --- /dev/null +++ b/packages/camera/camera_android_camerax/example/android/app/build.gradle.kts @@ -0,0 +1,46 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.cameraxexample" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.cameraxexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") +} diff --git a/packages/camera/camera_android_camerax/example/android/build.gradle b/packages/camera/camera_android_camerax/example/android/build.gradle deleted file mode 100644 index 76edbf940bb0..000000000000 --- a/packages/camera/camera_android_camerax/example/android/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":camera_android_camerax") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } -} diff --git a/packages/camera/camera_android_camerax/example/android/build.gradle.kts b/packages/camera/camera_android_camerax/example/android/build.gradle.kts new file mode 100644 index 000000000000..5cd4e03b613a --- /dev/null +++ b/packages/camera/camera_android_camerax/example/android/build.gradle.kts @@ -0,0 +1,46 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} + +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":camera_android_camerax") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/camera/camera_android_camerax/example/android/settings.gradle b/packages/camera/camera_android_camerax/example/android/settings.gradle deleted file mode 100644 index b83203f03197..000000000000 --- a/packages/camera/camera_android_camerax/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/camera/camera_android_camerax/example/android/settings.gradle.kts b/packages/camera/camera_android_camerax/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/camera/camera_android_camerax/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/espresso/example/android/app/build.gradle b/packages/espresso/example/android/app/build.gradle.kts similarity index 56% rename from packages/espresso/example/android/app/build.gradle rename to packages/espresso/example/android/app/build.gradle.kts index 21e82d2a4ef3..bd4a4767ae50 100644 --- a/packages/espresso/example/android/app/build.gradle +++ b/packages/espresso/example/android/app/build.gradle.kts @@ -1,55 +1,42 @@ plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") } android { - compileSdk = flutter.compileSdkVersion - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). namespace = "com.example.espresso_example" + compileSdk = flutter.compileSdkVersion + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } defaultConfig { - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug + signingConfig = signingConfigs.getByName("debug") } } lint { - disable 'InvalidPackage' + disable.add("InvalidPackage") } } flutter { - source = '../..' + source = "../.." } dependencies { diff --git a/packages/espresso/example/android/build.gradle b/packages/espresso/example/android/build.gradle deleted file mode 100644 index 31e331a7ec51..000000000000 --- a/packages/espresso/example/android/build.gradle +++ /dev/null @@ -1,38 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":espresso") { - tasks.withType(JavaCompile) { - // Ignore classfile warnings due to https://bugs.openjdk.org/browse/JDK-8190452 - // TODO(stuartmorgan): Remove that ignore once the build uses Java 11+. - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - } - } -} diff --git a/packages/espresso/example/android/build.gradle.kts b/packages/espresso/example/android/build.gradle.kts new file mode 100644 index 000000000000..0a08188ee915 --- /dev/null +++ b/packages/espresso/example/android/build.gradle.kts @@ -0,0 +1,46 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} + +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":espresso") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/espresso/example/android/settings.gradle b/packages/espresso/example/android/settings.gradle deleted file mode 100644 index d7ba8d54ffbc..000000000000 --- a/packages/espresso/example/android/settings.gradle +++ /dev/null @@ -1,28 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" - -} - -include ":app" diff --git a/packages/espresso/example/android/settings.gradle.kts b/packages/espresso/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/espresso/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/file_selector/file_selector_android/example/android/app/build.gradle b/packages/file_selector/file_selector_android/example/android/app/build.gradle deleted file mode 100644 index 3b2b53354573..000000000000 --- a/packages/file_selector/file_selector_android/example/android/app/build.gradle +++ /dev/null @@ -1,66 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "dev.flutter.packages.file_selector_android_example" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - defaultConfig { - applicationId "dev.flutter.packages.file_selector_android_example" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.espresso:espresso-intents:3.4.0") - androidTestImplementation("androidx.test:runner:1.4.0") - androidTestImplementation("androidx.test:rules:1.4.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0") - implementation(project(':file_selector_android')) - implementation(project(':espresso')) - api("androidx.test:core:1.4.0") -} diff --git a/packages/file_selector/file_selector_android/example/android/app/build.gradle.kts b/packages/file_selector/file_selector_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..d687271b70c4 --- /dev/null +++ b/packages/file_selector/file_selector_android/example/android/app/build.gradle.kts @@ -0,0 +1,46 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "dev.flutter.packages.file_selector_android_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + defaultConfig { + applicationId = "dev.flutter.packages.file_selector_android_example" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.espresso:espresso-intents:3.4.0") + androidTestImplementation("androidx.test:runner:1.4.0") + androidTestImplementation("androidx.test:rules:1.4.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0") + implementation(project(":file_selector_android")) + implementation(project(":espresso")) + api("androidx.test:core:1.4.0") +} diff --git a/packages/file_selector/file_selector_android/example/android/build.gradle b/packages/file_selector/file_selector_android/example/android/build.gradle deleted file mode 100644 index 0794404e2f24..000000000000 --- a/packages/file_selector/file_selector_android/example/android/build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":file_selector_android") { - tasks.withType(JavaCompile) { - // Ignore classfile due to https://issuetracker.google.com/issues/342067844 - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - } - } -} diff --git a/packages/file_selector/file_selector_android/example/android/build.gradle.kts b/packages/file_selector/file_selector_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..eff9450a812e --- /dev/null +++ b/packages/file_selector/file_selector_android/example/android/build.gradle.kts @@ -0,0 +1,49 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":file_selector_android") { + // Workaround for a warning when building that the above turns into + // an error: + // Cannot find annotation method 'api()' in type 'RequiresApi': class + // file for android.annotation.RequiresApi not found + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror", "-Xlint:-classfile")) + } + } +} diff --git a/packages/file_selector/file_selector_android/example/android/settings.gradle b/packages/file_selector/file_selector_android/example/android/settings.gradle deleted file mode 100644 index b83203f03197..000000000000 --- a/packages/file_selector/file_selector_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/file_selector/file_selector_android/example/android/settings.gradle.kts b/packages/file_selector/file_selector_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/file_selector/file_selector_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle b/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle deleted file mode 100644 index f8389c7bd30a..000000000000 --- a/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle +++ /dev/null @@ -1,61 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - - -android { - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "io.flutter.plugins.flutter_plugin_android_lifecycle_example" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - namespace = "io.flutter.plugins.flutter_plugin_android_lifecycle_example" - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.1.1") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") -} diff --git a/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle.kts b/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..0ee0ce2f9fdd --- /dev/null +++ b/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle.kts @@ -0,0 +1,47 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.flutter_plugin_android_lifecycle_example" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.flutter_plugin_android_lifecycle_example" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.1.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") +} diff --git a/packages/flutter_plugin_android_lifecycle/example/android/build.gradle b/packages/flutter_plugin_android_lifecycle/example/android/build.gradle deleted file mode 100644 index 39fed5c8ebbb..000000000000 --- a/packages/flutter_plugin_android_lifecycle/example/android/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":flutter_plugin_android_lifecycle") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } -} diff --git a/packages/flutter_plugin_android_lifecycle/example/android/build.gradle.kts b/packages/flutter_plugin_android_lifecycle/example/android/build.gradle.kts new file mode 100644 index 000000000000..a1f852bec044 --- /dev/null +++ b/packages/flutter_plugin_android_lifecycle/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":flutter_plugin_android_lifecycle") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/flutter_plugin_android_lifecycle/example/android/settings.gradle b/packages/flutter_plugin_android_lifecycle/example/android/settings.gradle deleted file mode 100644 index 3880f232841c..000000000000 --- a/packages/flutter_plugin_android_lifecycle/example/android/settings.gradle +++ /dev/null @@ -1,38 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -buildscript { - repositories { - maven { - url = "https://plugins.gradle.org/m2/" - } - } - dependencies { - classpath "gradle.plugin.com.google.cloud.artifactregistry:artifactregistry-gradle-plugin:2.2.1" - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/flutter_plugin_android_lifecycle/example/android/settings.gradle.kts b/packages/flutter_plugin_android_lifecycle/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/flutter_plugin_android_lifecycle/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle b/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle deleted file mode 100644 index b6af084f2397..000000000000 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle +++ /dev/null @@ -1,72 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.googlemapsexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.googlemapsexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - defaultConfig { - manifestPlaceholders = [mapsApiKey: "$System.env.MAPS_API_KEY"] - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - - testOptions { - unitTests { - includeAndroidResources = true - } - } - - dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") - testImplementation("com.google.android.gms:play-services-maps:17.0.0") - testImplementation("com.google.maps.android:android-maps-utils:4.0.0") - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle.kts b/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..ce958702fc11 --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle.kts @@ -0,0 +1,57 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.googlemapsexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.googlemapsexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + manifestPlaceholders["mapsApiKey"] = System.getenv("MAPS_API_KEY") ?: "" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + } + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") + testImplementation("com.google.android.gms:play-services-maps:17.0.0") + testImplementation("com.google.maps.android:android-maps-utils:4.0.0") +} diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle b/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle deleted file mode 100644 index aba27e72d1ee..000000000000 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle +++ /dev/null @@ -1,46 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":google_maps_flutter_android") { - tasks.withType(JavaCompile) { - // Ignore classfile warnings due to https://bugs.openjdk.org/browse/JDK-8190452 - // TODO(stuartmorgan): Remove that ignore once the build uses Java 11+. - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - // Workaround for a warning when building that the above turns into - // an error, coming from jetified-play-services-maps-18.1.0: - // warning: Cannot find annotation method 'value()' in type - // 'GuardedBy': class file for - // javax.annotation.concurrent.GuardedBy not found - dependencies { - implementation("com.google.code.findbugs:jsr305:3.0.2") - } - } - } -} diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle.kts b/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..11f563c766b5 --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle.kts @@ -0,0 +1,49 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":google_maps_flutter_android") { + // Workaround for a warning when building that the above turns into + // an error: + // Cannot find annotation method 'api()' in type 'RequiresApi': class + // file for android.annotation.RequiresApi not found + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror", "-Xlint:-classfile")) + } + } +} diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/settings.gradle b/packages/google_maps_flutter/google_maps_flutter_android/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/settings.gradle.kts b/packages/google_maps_flutter/google_maps_flutter_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle b/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle deleted file mode 100644 index 4bc889a0a2fa..000000000000 --- a/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle +++ /dev/null @@ -1,66 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" - id 'com.google.gms.google-services' -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.googlesigninexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.googlesigninexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - - testOptions { - unitTests.returnDefaultValues = true - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - implementation("com.google.android.gms:play-services-auth:16.0.1") - testImplementation("junit:junit:4.12") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") -} diff --git a/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle.kts b/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..fd57346bf3bb --- /dev/null +++ b/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle.kts @@ -0,0 +1,56 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") + id("com.google.gms.google-services") +} + +android { + namespace = "io.flutter.plugins.googlesigninexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.googlesigninexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + + testOptions { + unitTests { + isReturnDefaultValues = true + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + implementation("com.google.android.gms:play-services-auth:16.0.1") + testImplementation("junit:junit:4.12") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") +} diff --git a/packages/google_sign_in/google_sign_in_android/example/android/build.gradle b/packages/google_sign_in/google_sign_in_android/example/android/build.gradle deleted file mode 100644 index 92a39343e0d0..000000000000 --- a/packages/google_sign_in/google_sign_in_android/example/android/build.gradle +++ /dev/null @@ -1,41 +0,0 @@ -plugins { - id 'com.google.gms.google-services' version '4.4.2' apply false -} - -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":google_sign_in_android") { - tasks.withType(JavaCompile) { - // Ignore classfile due to https://issuetracker.google.com/issues/342067844 - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - } - } -} diff --git a/packages/google_sign_in/google_sign_in_android/example/android/build.gradle.kts b/packages/google_sign_in/google_sign_in_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..da9eae96366a --- /dev/null +++ b/packages/google_sign_in/google_sign_in_android/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":google_sign_in_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/google_sign_in/google_sign_in_android/example/android/settings.gradle b/packages/google_sign_in/google_sign_in_android/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/google_sign_in/google_sign_in_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/google_sign_in/google_sign_in_android/example/android/settings.gradle.kts b/packages/google_sign_in/google_sign_in_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..e7acb260f1a5 --- /dev/null +++ b/packages/google_sign_in/google_sign_in_android/example/android/settings.gradle.kts @@ -0,0 +1,29 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" + id("com.google.gms.google-services") version "4.4.2" apply false +} + +include(":app") diff --git a/packages/image_picker/image_picker_android/example/android/app/build.gradle b/packages/image_picker/image_picker_android/example/android/app/build.gradle deleted file mode 100755 index 3f29b26a401a..000000000000 --- a/packages/image_picker/image_picker_android/example/android/app/build.gradle +++ /dev/null @@ -1,67 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.imagepickerexample" - compileSdk = flutter.compileSdkVersion - testOptions.unitTests.includeAndroidResources = true - - - defaultConfig { - applicationId "io.flutter.plugins.imagepicker.example" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } - - testOptions { - unitTests.returnDefaultValues = true - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - implementation(project(':image_picker_android')) - implementation(project(':espresso')) - api("androidx.test:core:1.4.0") -} diff --git a/packages/image_picker/image_picker_android/example/android/app/build.gradle.kts b/packages/image_picker/image_picker_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..1aecc5f621cc --- /dev/null +++ b/packages/image_picker/image_picker_android/example/android/app/build.gradle.kts @@ -0,0 +1,57 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.imagepickerexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.imagepicker.example" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } + + testOptions { + unitTests { + isReturnDefaultValues = true + isIncludeAndroidResources = true + } + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + implementation(project(":image_picker_android")) + implementation(project(":espresso")) + api("androidx.test:core:1.4.0") +} diff --git a/packages/image_picker/image_picker_android/example/android/build.gradle b/packages/image_picker/image_picker_android/example/android/build.gradle deleted file mode 100755 index f8a5b5f14eb3..000000000000 --- a/packages/image_picker/image_picker_android/example/android/build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":image_picker_android") { - tasks.withType(JavaCompile) { - // Ignore classfile due to https://issuetracker.google.com/issues/342067844 - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - } - } -} diff --git a/packages/image_picker/image_picker_android/example/android/build.gradle.kts b/packages/image_picker/image_picker_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..940967963822 --- /dev/null +++ b/packages/image_picker/image_picker_android/example/android/build.gradle.kts @@ -0,0 +1,49 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":image_picker_android") { + // Workaround for a warning when building that the above turns into + // an error: + // Cannot find annotation method 'api()' in type 'RequiresApi': class + // file for android.annotation.RequiresApi not found + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror", "-Xlint:-classfile")) + } + } +} diff --git a/packages/image_picker/image_picker_android/example/android/settings.gradle b/packages/image_picker/image_picker_android/example/android/settings.gradle deleted file mode 100755 index b542cca3f52e..000000000000 --- a/packages/image_picker/image_picker_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/image_picker/image_picker_android/example/android/settings.gradle.kts b/packages/image_picker/image_picker_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/image_picker/image_picker_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle b/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle deleted file mode 100644 index 4faccaa79e53..000000000000 --- a/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle +++ /dev/null @@ -1,114 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -// Load the build signing secrets from a local `keystore.properties` file. -// TODO(YOU): Create release keys and a `keystore.properties` file. See -// `example/README.md` for more info and `keystore.example.properties` for an -// example. -def keystorePropertiesFile = rootProject.file("keystore.properties") -def keystoreProperties = new Properties() -def configured = true -try { - keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) -} catch (IOException e) { - configured = false - logger.error('Release signing information not found.') -} - -project.ext { - // TODO(YOU): Create release keys and a `keystore.properties` file. See - // `example/README.md` for more info and `keystore.example.properties` for an - // example. - APP_ID = configured ? keystoreProperties['appId'] : "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE" - KEYSTORE_STORE_FILE = configured ? rootProject.file(keystoreProperties['storeFile']) : null - KEYSTORE_STORE_PASSWORD = keystoreProperties['storePassword'] - KEYSTORE_KEY_ALIAS = keystoreProperties['keyAlias'] - KEYSTORE_KEY_PASSWORD = keystoreProperties['keyPassword'] - VERSION_CODE = configured ? keystoreProperties['versionCode'].toInteger() : 1 - VERSION_NAME = configured ? keystoreProperties['versionName'] : "0.0.1" -} - -if (project.APP_ID == "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE") { - configured = false - logger.error('Unique package name not set, defaulting to "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE".') -} - -// Log a final error message if we're unable to create a release key signed -// build for an app configured in the Play Developer Console. Apks built in this -// condition won't be able to call any of the BillingClient APIs. -if (!configured) { - logger.error('The app could not be configured for release signing. In app purchases will not be testable. See `example/README.md` for more info and instructions.') -} - -android { - namespace = "io.flutter.plugins.inapppurchaseexample" - compileSdk = flutter.compileSdkVersion - - signingConfigs { - release { - storeFile project.KEYSTORE_STORE_FILE - storePassword project.KEYSTORE_STORE_PASSWORD - keyAlias project.KEYSTORE_KEY_ALIAS - keyPassword project.KEYSTORE_KEY_PASSWORD - } - } - - - defaultConfig { - applicationId project.APP_ID - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode project.VERSION_CODE - versionName project.VERSION_NAME - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - // Google Play Billing APIs only work with apps signed for production. - debug { - if (configured) { - signingConfig = signingConfigs.release - } else { - signingConfig = signingConfigs.debug - } - } - release { - if (configured) { - signingConfig = signingConfigs.release - } else { - signingConfig = signingConfigs.debug - } - } - } - - testOptions { - unitTests.returnDefaultValues = true - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - implementation("com.android.billingclient:billing:6.1.0") - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-core:5.1.1") - testImplementation("org.json:json:20251224") - androidTestImplementation("androidx.test:runner:1.1.1") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") -} diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle.kts b/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..9f6cc8bf47ef --- /dev/null +++ b/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle.kts @@ -0,0 +1,105 @@ +import java.util.Properties + +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +val keystorePropertiesFile = rootProject.file("keystore.properties") +val keystoreProperties = Properties() +var configured = true +try { + keystorePropertiesFile.inputStream().use { keystoreProperties.load(it) } +} catch (e: java.io.IOException) { + configured = false + logger.error("Release signing information not found.") +} + +val appId: String = keystoreProperties.getProperty("appId") ?: "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE" +val keystoreStoreFile: File? = if (configured) rootProject.file(keystoreProperties.getProperty("storeFile")) else null +val keystoreStorePassword = keystoreProperties.getProperty("storePassword") +val keystoreKeyAlias = keystoreProperties.getProperty("keyAlias") +val keystoreKeyPassword = keystoreProperties.getProperty("keyPassword") +val vCode: Int = keystoreProperties.getProperty("versionCode")?.toInt() ?: 1 +val vName: String = keystoreProperties.getProperty("versionName") ?: "0.0.1" + +if (appId == "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE") { + configured = false + logger.error("Unique package name not set, defaulting to \"io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE\".") +} + +if (!configured) { + logger.error("The app could not be configured for release signing. In app purchases will not be testable. See `example/README.md` for more info and instructions.") +} + +android { + namespace = "io.flutter.plugins.inapppurchaseexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + signingConfigs { + create("release") { + storeFile = keystoreStoreFile + storePassword = keystoreStorePassword + keyAlias = keystoreKeyAlias + keyPassword = keystoreKeyPassword + } + } + + defaultConfig { + applicationId = appId + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = vCode + versionName = vName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + debug { + if (configured) { + signingConfig = signingConfigs.getByName("release") + } else { + signingConfig = signingConfigs.getByName("debug") + } + } + release { + if (configured) { + signingConfig = signingConfigs.getByName("release") + } else { + signingConfig = signingConfigs.getByName("debug") + } + } + } + + testOptions { + unitTests { + isReturnDefaultValues = true + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + implementation("com.android.billingclient:billing:6.1.0") + testImplementation("junit:junit:4.13.2") + testImplementation("org.mockito:mockito-core:5.1.1") + testImplementation("org.json:json:20251224") + androidTestImplementation("androidx.test:runner:1.1.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") +} diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle b/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle deleted file mode 100644 index 38f044d2b4ca..000000000000 --- a/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":in_app_purchase_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } -} diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle.kts b/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..96c513f61d31 --- /dev/null +++ b/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":in_app_purchase_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/settings.gradle b/packages/in_app_purchase/in_app_purchase_android/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/in_app_purchase/in_app_purchase_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/settings.gradle.kts b/packages/in_app_purchase/in_app_purchase_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/in_app_purchase/in_app_purchase_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/interactive_media_ads/CHANGELOG.md b/packages/interactive_media_ads/CHANGELOG.md index f3e56c233359..368f7655a3ea 100644 --- a/packages/interactive_media_ads/CHANGELOG.md +++ b/packages/interactive_media_ads/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.0+14 + +* Updates README to use Kotlin gradle rather than Groovy. + ## 0.3.0+13 * Updates build files from Groovy to Kotlin. diff --git a/packages/interactive_media_ads/README.md b/packages/interactive_media_ads/README.md index 4629902c5876..ce0c64743f48 100644 --- a/packages/interactive_media_ads/README.md +++ b/packages/interactive_media_ads/README.md @@ -58,23 +58,22 @@ Add the user permissions required by the IMA SDK for requesting ads in The IMA SDK requires library desugaring enabled, which you must do by setting `coreLibraryDesugaringEnabled true` and adding `coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'` as a dependency in the -`android/app/build.gradle` file. For more details, see +`android/app/build.gradle.kts` file. For more details, see [Java 11+ APIs available through desugaring with the nio specification](https://developer.android.com/studio/write/java11-nio-support-table). - -```groovy + +```kotlin android { // ··· compileOptions { - coreLibraryDesugaringEnabled true - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + isCoreLibraryDesugaringEnabled = true + // ··· } // ··· } // ··· dependencies { - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5") // ··· } ``` diff --git a/packages/interactive_media_ads/android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/AdsRequestProxyApi.kt b/packages/interactive_media_ads/android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/AdsRequestProxyApi.kt index 9ecf4f41c04f..1235e312ccf1 100644 --- a/packages/interactive_media_ads/android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/AdsRequestProxyApi.kt +++ b/packages/interactive_media_ads/android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/AdsRequestProxyApi.kt @@ -21,7 +21,7 @@ class AdsRequestProxyApi(override val pigeonRegistrar: ProxyApiRegistrar) : * * This must match the version in pubspec.yaml. */ - const val pluginVersion = "0.3.0+13" + const val pluginVersion = "0.3.0+14" } override fun setAdTagUrl(pigeon_instance: AdsRequest, adTagUrl: String) { diff --git a/packages/interactive_media_ads/example/android/app/build.gradle b/packages/interactive_media_ads/example/android/app/build.gradle.kts similarity index 50% rename from packages/interactive_media_ads/example/android/app/build.gradle rename to packages/interactive_media_ads/example/android/app/build.gradle.kts index bacc8f8e0752..6869e19efec5 100644 --- a/packages/interactive_media_ads/example/android/app/build.gradle +++ b/packages/interactive_media_ads/example/android/app/build.gradle.kts @@ -1,25 +1,7 @@ plugins { - id "com.android.application" - id "kotlin-android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") } // #docregion android_desugaring @@ -31,9 +13,11 @@ android { // #docregion android_desugaring compileOptions { - coreLibraryDesugaringEnabled true + isCoreLibraryDesugaringEnabled = true + // #enddocregion android_desugaring sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 + // #docregion android_desugaring } // #enddocregion android_desugaring @@ -41,22 +25,18 @@ android { jvmTarget = JavaVersion.VERSION_17.toString() } - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - defaultConfig { - applicationId "dev.flutter.packages.interactive_media_ads_example" + applicationId = "dev.flutter.packages.interactive_media_ads_example" minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { - signingConfig = signingConfigs.debug + signingConfig = signingConfigs.getByName("debug") } } // #docregion android_desugaring @@ -64,12 +44,12 @@ android { // #enddocregion android_desugaring flutter { - source = '../..' + source = "../.." } // #docregion android_desugaring dependencies { - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5") // #enddocregion android_desugaring testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test:runner:1.2.0") diff --git a/packages/interactive_media_ads/example/android/build.gradle b/packages/interactive_media_ads/example/android/build.gradle deleted file mode 100644 index 4cb8b44195d1..000000000000 --- a/packages/interactive_media_ads/example/android/build.gradle +++ /dev/null @@ -1,39 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -gradle.projectsEvaluated { - project(":interactive_media_ads") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } -} diff --git a/packages/interactive_media_ads/example/android/build.gradle.kts b/packages/interactive_media_ads/example/android/build.gradle.kts new file mode 100644 index 000000000000..def63e64964a --- /dev/null +++ b/packages/interactive_media_ads/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":interactive_media_ads") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/interactive_media_ads/example/android/settings.gradle b/packages/interactive_media_ads/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/interactive_media_ads/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/interactive_media_ads/example/android/settings.gradle.kts b/packages/interactive_media_ads/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/interactive_media_ads/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/interactive_media_ads/ios/interactive_media_ads/Sources/interactive_media_ads/AdsRequestProxyAPIDelegate.swift b/packages/interactive_media_ads/ios/interactive_media_ads/Sources/interactive_media_ads/AdsRequestProxyAPIDelegate.swift index c9c0982339b9..617641a1d5cc 100644 --- a/packages/interactive_media_ads/ios/interactive_media_ads/Sources/interactive_media_ads/AdsRequestProxyAPIDelegate.swift +++ b/packages/interactive_media_ads/ios/interactive_media_ads/Sources/interactive_media_ads/AdsRequestProxyAPIDelegate.swift @@ -13,7 +13,7 @@ class AdsRequestProxyAPIDelegate: PigeonApiDelegateIMAAdsRequest { /// The current version of the `interactive_media_ads` plugin. /// /// This must match the version in pubspec.yaml. - static let pluginVersion = "0.3.0+13" + static let pluginVersion = "0.3.0+14" func pigeonDefaultConstructor( pigeonApi: PigeonApiIMAAdsRequest, adTagUrl: String, adDisplayContainer: IMAAdDisplayContainer, diff --git a/packages/interactive_media_ads/pubspec.yaml b/packages/interactive_media_ads/pubspec.yaml index f61c679c68a0..03dddc287613 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+13 # This must match the version in +version: 0.3.0+14 # 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/example/android/app/build.gradle b/packages/local_auth/local_auth_android/example/android/app/build.gradle deleted file mode 100644 index c331558d7a3c..000000000000 --- a/packages/local_auth/local_auth_android/example/android/app/build.gradle +++ /dev/null @@ -1,57 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.localauthexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.localauthexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.1.1") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") -} diff --git a/packages/local_auth/local_auth_android/example/android/app/build.gradle.kts b/packages/local_auth/local_auth_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..520bcf8c629b --- /dev/null +++ b/packages/local_auth/local_auth_android/example/android/app/build.gradle.kts @@ -0,0 +1,47 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.localauthexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.localauthexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.1.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") +} diff --git a/packages/local_auth/local_auth_android/example/android/build.gradle b/packages/local_auth/local_auth_android/example/android/build.gradle deleted file mode 100644 index 485e7242a07a..000000000000 --- a/packages/local_auth/local_auth_android/example/android/build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":local_auth_android") { - tasks.withType(JavaCompile) { - // Ignore classfile due to https://issuetracker.google.com/issues/342067844 - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - } - } -} diff --git a/packages/local_auth/local_auth_android/example/android/build.gradle.kts b/packages/local_auth/local_auth_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..561ebe61aff4 --- /dev/null +++ b/packages/local_auth/local_auth_android/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":local_auth_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/local_auth/local_auth_android/example/android/settings.gradle b/packages/local_auth/local_auth_android/example/android/settings.gradle deleted file mode 100644 index d7ba8d54ffbc..000000000000 --- a/packages/local_auth/local_auth_android/example/android/settings.gradle +++ /dev/null @@ -1,28 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" - -} - -include ":app" diff --git a/packages/local_auth/local_auth_android/example/android/settings.gradle.kts b/packages/local_auth/local_auth_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/local_auth/local_auth_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/path_provider/path_provider_android/example/android/app/build.gradle b/packages/path_provider/path_provider_android/example/android/app/build.gradle deleted file mode 100644 index 991223e59884..000000000000 --- a/packages/path_provider/path_provider_android/example/android/app/build.gradle +++ /dev/null @@ -1,63 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.pathproviderexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.pathproviderexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test:rules:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.1.1") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") -} diff --git a/packages/path_provider/path_provider_android/example/android/app/build.gradle.kts b/packages/path_provider/path_provider_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..713d354ba402 --- /dev/null +++ b/packages/path_provider/path_provider_android/example/android/app/build.gradle.kts @@ -0,0 +1,40 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.pathproviderexample" + compileSdk = flutter.compileSdkVersion + + defaultConfig { + applicationId = "io.flutter.plugins.pathproviderexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test:rules:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + + testImplementation("junit:junit:4.13.2") +} diff --git a/packages/path_provider/path_provider_android/example/android/build.gradle b/packages/path_provider/path_provider_android/example/android/build.gradle deleted file mode 100644 index e073a0d1780a..000000000000 --- a/packages/path_provider/path_provider_android/example/android/build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":path_provider_android") { - tasks.withType(JavaCompile) { - // Ignore classfile due to https://issuetracker.google.com/issues/342067844 - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - } - } -} diff --git a/packages/path_provider/path_provider_android/example/android/build.gradle.kts b/packages/path_provider/path_provider_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..6b1647312231 --- /dev/null +++ b/packages/path_provider/path_provider_android/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":path_provider_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/path_provider/path_provider_android/example/android/settings.gradle b/packages/path_provider/path_provider_android/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/path_provider/path_provider_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/path_provider/path_provider_android/example/android/settings.gradle.kts b/packages/path_provider/path_provider_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/path_provider/path_provider_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle deleted file mode 100644 index afae2c9e3b77..000000000000 --- a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle +++ /dev/null @@ -1,57 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "com.example.alternate_language_test_plugin_example" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.alternate_language_test_plugin_example" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = '../..' -} diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle.kts b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..422bfc7419eb --- /dev/null +++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle.kts @@ -0,0 +1,38 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.alternate_language_test_plugin_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "com.example.alternate_language_test_plugin_example" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/build.gradle b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/build.gradle deleted file mode 100644 index 3f78da216a0e..000000000000 --- a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -gradle.projectsEvaluated { - project(":alternate_language_test_plugin") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } -} diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/build.gradle.kts b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/build.gradle.kts new file mode 100644 index 000000000000..31a165502a58 --- /dev/null +++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/build.gradle.kts @@ -0,0 +1,42 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} + +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +gradle.projectsEvaluated { + project(":alternate_language_test_plugin") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/settings.gradle b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/settings.gradle deleted file mode 100644 index b83203f03197..000000000000 --- a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/settings.gradle.kts b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle b/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle deleted file mode 100644 index 551d7ce3a9b7..000000000000 --- a/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle +++ /dev/null @@ -1,69 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "com.example.test_plugin_example" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - lint { - baseline = file("lint-baseline.xml") - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.test_plugin_example" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = '../..' -} diff --git a/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle.kts b/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..a5f1632dd97b --- /dev/null +++ b/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle.kts @@ -0,0 +1,42 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.test_plugin_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + lint { + baseline = file("lint-baseline.xml") + } + + defaultConfig { + applicationId = "com.example.test_plugin_example" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/packages/pigeon/platform_tests/test_plugin/example/android/build.gradle b/packages/pigeon/platform_tests/test_plugin/example/android/build.gradle deleted file mode 100644 index aa651bee379b..000000000000 --- a/packages/pigeon/platform_tests/test_plugin/example/android/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -gradle.projectsEvaluated { - project(":test_plugin") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } -} diff --git a/packages/pigeon/platform_tests/test_plugin/example/android/build.gradle.kts b/packages/pigeon/platform_tests/test_plugin/example/android/build.gradle.kts new file mode 100644 index 000000000000..a52cb115b20d --- /dev/null +++ b/packages/pigeon/platform_tests/test_plugin/example/android/build.gradle.kts @@ -0,0 +1,42 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} + +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +gradle.projectsEvaluated { + project(":test_plugin") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/pigeon/platform_tests/test_plugin/example/android/settings.gradle b/packages/pigeon/platform_tests/test_plugin/example/android/settings.gradle deleted file mode 100644 index b83203f03197..000000000000 --- a/packages/pigeon/platform_tests/test_plugin/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/pigeon/platform_tests/test_plugin/example/android/settings.gradle.kts b/packages/pigeon/platform_tests/test_plugin/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/pigeon/platform_tests/test_plugin/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/quick_actions/quick_actions_android/example/android/app/build.gradle b/packages/quick_actions/quick_actions_android/example/android/app/build.gradle deleted file mode 100644 index c054bb603344..000000000000 --- a/packages/quick_actions/quick_actions_android/example/android/app/build.gradle +++ /dev/null @@ -1,65 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -def androidXTestVersion = '1.4.0' - -android { - namespace = "io.flutter.plugins.quickactionsexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.quickactionsexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:$androidXTestVersion") - - androidTestImplementation("androidx.test:runner:$androidXTestVersion") - androidTestImplementation("androidx.test.uiautomator:uiautomator:2.2.0") - androidTestImplementation("androidx.test.ext:junit:1.0.0") - androidTestImplementation("org.mockito:mockito-core:5.0.0") - androidTestImplementation("org.mockito:mockito-android:5.0.0") -} diff --git a/packages/quick_actions/quick_actions_android/example/android/app/build.gradle.kts b/packages/quick_actions/quick_actions_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..946557001ac0 --- /dev/null +++ b/packages/quick_actions/quick_actions_android/example/android/app/build.gradle.kts @@ -0,0 +1,54 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.quickactionsexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.quickactionsexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +val androidXTestVersion = "1.4.0" + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:$androidXTestVersion") + androidTestImplementation("androidx.test:runner:$androidXTestVersion") + androidTestImplementation("androidx.test.uiautomator:uiautomator:2.2.0") + androidTestImplementation("androidx.test.ext:junit:1.0.0") + androidTestImplementation("org.mockito:mockito-core:5.0.0") + androidTestImplementation("org.mockito:mockito-android:5.0.0") +} diff --git a/packages/quick_actions/quick_actions_android/example/android/build.gradle b/packages/quick_actions/quick_actions_android/example/android/build.gradle deleted file mode 100644 index 44c90020bf66..000000000000 --- a/packages/quick_actions/quick_actions_android/example/android/build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":quick_actions_android") { - tasks.withType(JavaCompile) { - // Ignore classfile due to https://issuetracker.google.com/issues/342067844 - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - } - } -} diff --git a/packages/quick_actions/quick_actions_android/example/android/build.gradle.kts b/packages/quick_actions/quick_actions_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..22099c5a32ab --- /dev/null +++ b/packages/quick_actions/quick_actions_android/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":quick_actions_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/quick_actions/quick_actions_android/example/android/settings.gradle b/packages/quick_actions/quick_actions_android/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/quick_actions/quick_actions_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/quick_actions/quick_actions_android/example/android/settings.gradle.kts b/packages/quick_actions/quick_actions_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/quick_actions/quick_actions_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle b/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle deleted file mode 100644 index 90566aab6169..000000000000 --- a/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle +++ /dev/null @@ -1,87 +0,0 @@ -buildscript { - ext.kotlin_version = '2.1.0' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:9.1.0' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "dev.flutter.plugins.shared_preferences_example" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - applicationId "dev.flutter.plugins.shared_preferences_example" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = '../..' -} - -dependencies { - implementation("androidx.datastore:datastore-preferences:1.0.0") - implementation("androidx.preference:preference:1.2.1") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.espresso:espresso-intents:3.2.0") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test:rules:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") -} diff --git a/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle.kts b/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..42f5ba3743f0 --- /dev/null +++ b/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle.kts @@ -0,0 +1,53 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "dev.flutter.plugins.shared_preferences_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "dev.flutter.plugins.shared_preferences_example" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + implementation("androidx.datastore:datastore-preferences:1.0.0") + implementation("androidx.preference:preference:1.2.1") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.espresso:espresso-intents:3.2.0") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test:rules:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") +} diff --git a/packages/shared_preferences/shared_preferences_android/example/android/build.gradle b/packages/shared_preferences/shared_preferences_android/example/android/build.gradle deleted file mode 100644 index 5717c2b2377b..000000000000 --- a/packages/shared_preferences/shared_preferences_android/example/android/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":shared_preferences_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } -} diff --git a/packages/shared_preferences/shared_preferences_android/example/android/build.gradle.kts b/packages/shared_preferences/shared_preferences_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..397631cd0643 --- /dev/null +++ b/packages/shared_preferences/shared_preferences_android/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":shared_preferences_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/shared_preferences/shared_preferences_android/example/android/settings.gradle b/packages/shared_preferences/shared_preferences_android/example/android/settings.gradle deleted file mode 100644 index b83203f03197..000000000000 --- a/packages/shared_preferences/shared_preferences_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/shared_preferences/shared_preferences_android/example/android/settings.gradle.kts b/packages/shared_preferences/shared_preferences_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/shared_preferences/shared_preferences_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/url_launcher/url_launcher_android/example/android/app/build.gradle b/packages/url_launcher/url_launcher_android/example/android/app/build.gradle deleted file mode 100644 index a61e85e82b21..000000000000 --- a/packages/url_launcher/url_launcher_android/example/android/app/build.gradle +++ /dev/null @@ -1,59 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.urllauncherexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.urllauncherexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") -} diff --git a/packages/url_launcher/url_launcher_android/example/android/app/build.gradle.kts b/packages/url_launcher/url_launcher_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..402d90a1fd67 --- /dev/null +++ b/packages/url_launcher/url_launcher_android/example/android/app/build.gradle.kts @@ -0,0 +1,47 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.urllauncherexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.urllauncherexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") +} diff --git a/packages/url_launcher/url_launcher_android/example/android/build.gradle b/packages/url_launcher/url_launcher_android/example/android/build.gradle deleted file mode 100644 index 1f684e949855..000000000000 --- a/packages/url_launcher/url_launcher_android/example/android/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":url_launcher_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } -} diff --git a/packages/url_launcher/url_launcher_android/example/android/build.gradle.kts b/packages/url_launcher/url_launcher_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..bfa5b5c8064b --- /dev/null +++ b/packages/url_launcher/url_launcher_android/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":url_launcher_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/url_launcher/url_launcher_android/example/android/settings.gradle b/packages/url_launcher/url_launcher_android/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/url_launcher/url_launcher_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/url_launcher/url_launcher_android/example/android/settings.gradle.kts b/packages/url_launcher/url_launcher_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/url_launcher/url_launcher_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/video_player/video_player_android/example/android/app/build.gradle b/packages/video_player/video_player_android/example/android/app/build.gradle deleted file mode 100644 index ad24641085da..000000000000 --- a/packages/video_player/video_player_android/example/android/app/build.gradle +++ /dev/null @@ -1,69 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.videoplayerexample" - compileSdk = flutter.compileSdkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - defaultConfig { - applicationId "io.flutter.plugins.videoplayerexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("androidx.test.ext:junit:1.2.1") - testImplementation("com.google.truth:truth:1.1.3") - testImplementation("junit:junit:4.13") - testImplementation("org.robolectric:robolectric:4.16") - testImplementation("org.mockito:mockito-core:5.17.0") - androidTestImplementation("androidx.test:runner:1.1.1") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") - implementation(project(':espresso')) - api("androidx.test:core:1.2.0") -} diff --git a/packages/video_player/video_player_android/example/android/app/build.gradle.kts b/packages/video_player/video_player_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..5b4a09a7cd4e --- /dev/null +++ b/packages/video_player/video_player_android/example/android/app/build.gradle.kts @@ -0,0 +1,53 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.videoplayerexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.videoplayerexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("androidx.test.ext:junit:1.2.1") + testImplementation("com.google.truth:truth:1.1.3") + testImplementation("junit:junit:4.13") + testImplementation("org.robolectric:robolectric:4.16") + testImplementation("org.mockito:mockito-core:5.17.0") + androidTestImplementation("androidx.test:runner:1.1.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") + implementation(project(":espresso")) + api("androidx.test:core:1.2.0") +} diff --git a/packages/video_player/video_player_android/example/android/build.gradle b/packages/video_player/video_player_android/example/android/build.gradle deleted file mode 100644 index f380df723f2d..000000000000 --- a/packages/video_player/video_player_android/example/android/build.gradle +++ /dev/null @@ -1,59 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":video_player_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - - // Workaround for several warnings when building - // that the above turns into errors, coming from - // org.checkerframework.checker.nullness.qual and - // com.google.errorprone.annotations: - // - // warning: Cannot find annotation method 'value()' in type - // 'EnsuresNonNull': class file for - // org.checkerframework.checker.nullness.qual.EnsuresNonNull not found - // - // warning: Cannot find annotation method 'replacement()' in type - // 'InlineMe': class file for - // com.google.errorprone.annotations.InlineMe not found - // - // The dependency version are taken from: - // https://github.com/google/ExoPlayer/blob/r2.18.1/constants.gradle - // - // For future reference the dependencies are excluded here: - // https://github.com/google/ExoPlayer/blob/r2.18.1/library/common/build.gradle#L33-L34 - dependencies { - implementation("org.checkerframework:checker-qual:3.13.0") - implementation("com.google.errorprone:error_prone_annotations:2.10.0") - } - } - } -} diff --git a/packages/video_player/video_player_android/example/android/build.gradle.kts b/packages/video_player/video_player_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..dd31c341ea05 --- /dev/null +++ b/packages/video_player/video_player_android/example/android/build.gradle.kts @@ -0,0 +1,67 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":video_player_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + // Workaround for several warnings when building + // that the above turns into errors, coming from + // org.checkerframework.checker.nullness.qual and + // com.google.errorprone.annotations: + // + // warning: Cannot find annotation method 'value()' in type + // 'EnsuresNonNull': class file for + // org.checkerframework.checker.nullness.qual.EnsuresNonNull not found + // + // warning: Cannot find annotation method 'replacement()' in type + // 'InlineMe': class file for + // com.google.errorprone.annotations.InlineMe not found + // + // The dependency version are taken from: + // https://github.com/google/ExoPlayer/blob/r2.18.1/constants.gradle + // + // For future reference the dependencies are excluded here: + // https://github.com/google/ExoPlayer/blob/r2.18.1/library/common/build.gradle#L33-L34 + dependencies { + add("implementation", "org.checkerframework:checker-qual:3.13.0") + add("implementation", "com.google.errorprone:error_prone_annotations:2.10.0") + } + } +} diff --git a/packages/video_player/video_player_android/example/android/settings.gradle b/packages/video_player/video_player_android/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/video_player/video_player_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/video_player/video_player_android/example/android/settings.gradle.kts b/packages/video_player/video_player_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/video_player/video_player_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle b/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle deleted file mode 100644 index e989fd72d70e..000000000000 --- a/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle +++ /dev/null @@ -1,70 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.webviewflutterexample" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "io.flutter.plugins.webviewflutterandroidexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") -} diff --git a/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle.kts b/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..7870623725c2 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle.kts @@ -0,0 +1,49 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.webviewflutterexample" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.webviewflutterandroidexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") +} diff --git a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle deleted file mode 100644 index a3e7dce965d2..000000000000 --- a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":webview_flutter_android") { - tasks.withType(JavaCompile) { - // Ignore classfile due to https://issuetracker.google.com/issues/342067844 - options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile" - } - } -} diff --git a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle.kts b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle.kts new file mode 100644 index 000000000000..b9a45dbe39e0 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle.kts @@ -0,0 +1,45 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":webview_flutter_android") { + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) + } + } +} diff --git a/packages/webview_flutter/webview_flutter_android/example/android/settings.gradle b/packages/webview_flutter/webview_flutter_android/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/webview_flutter/webview_flutter_android/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/webview_flutter/webview_flutter_android/example/android/settings.gradle.kts b/packages/webview_flutter/webview_flutter_android/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/webview_flutter/webview_flutter_android/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/script/tool/lib/src/update_excerpts_command.dart b/script/tool/lib/src/update_excerpts_command.dart index 577b08ebfe38..539fcc241eef 100644 --- a/script/tool/lib/src/update_excerpts_command.dart +++ b/script/tool/lib/src/update_excerpts_command.dart @@ -148,6 +148,7 @@ class UpdateExcerptsCommand extends PackageLoopingCommand { case '': language = 'txt'; case '.kt': + case '.kts': language = 'kotlin'; case '.cc': case '.cpp': diff --git a/script/tool/test/update_excerpts_command_test.dart b/script/tool/test/update_excerpts_command_test.dart index b98e9329392c..314d940e5eaf 100644 --- a/script/tool/test/update_excerpts_command_test.dart +++ b/script/tool/test/update_excerpts_command_test.dart @@ -545,6 +545,7 @@ FAIL {'filename': 'main.dart'}, {'filename': 'main.js'}, {'filename': 'main.kt', 'language': 'kotlin'}, + {'filename': 'main.kts', 'language': 'kotlin'}, {'filename': 'main.java'}, {'filename': 'main.gradle', 'language': 'groovy'}, {'filename': 'main.m', 'language': 'objectivec'}, From a95e1c3a7711cc3cb53e20b1f23f05e8f1904be8 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Fri, 3 Apr 2026 12:29:55 -0400 Subject: [PATCH 02/14] Roll Flutter from 0f401eea0439 to 7245c3f71104 (25 revisions) (#11427) https://github.com/flutter/flutter/compare/0f401eea0439...7245c3f71104 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from c07c67045b6d to 5d847ba5c4aa (1 revision) (flutter/flutter#184570) 2026-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 3c7a79045b8b to 46f49142acd9 (1 revision) (flutter/flutter#184567) 2026-04-03 engine-flutter-autoroll@skia.org Roll ICU from ee5f27adc28b to ff7995a708a1 (5 revisions) (flutter/flutter#184566) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 9ae8231be181 to c07c67045b6d (4 revisions) (flutter/flutter#184562) 2026-04-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from BFLjk6Uwd0gs_Hkdk... to PpL3Bn2YMb2h9LbdK... (flutter/flutter#184556) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 0566b2f5f0d1 to 9ae8231be181 (1 revision) (flutter/flutter#184547) 2026-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 6008eaddd589 to 3c7a79045b8b (3 revisions) (flutter/flutter#184551) 2026-04-03 evanwall@buffalo.edu Fix wide gamut macos integration test (flutter/flutter#184427) 2026-04-02 jakemac@google.com forward an application name to DDS (flutter/flutter#184459) 2026-04-02 engine-flutter-autoroll@skia.org Roll Skia from 973117cfa875 to 0566b2f5f0d1 (8 revisions) (flutter/flutter#184534) 2026-04-02 97480502+b-luk@users.noreply.github.com Support different joins for stroked rects in uber_sdf, fix incorrect aa (flutter/flutter#184395) 2026-04-02 bkonyi@google.com [ Widget Preview ] Handle collections and records in custom preview annotations (flutter/flutter#184518) 2026-04-02 47866232+chunhtai@users.noreply.github.com Moves android_semantics_integration_test out of staging (flutter/flutter#184079) 2026-04-02 engine-flutter-autoroll@skia.org Roll Packages from b3fcf1456def to 66bf7ec0705f (4 revisions) (flutter/flutter#184514) 2026-04-02 rmolivares@renzo-olivares.dev Fix line breaks being lost when copying after selection gesture in SelectableRegion (flutter/flutter#184421) 2026-04-02 15619084+vashworth@users.noreply.github.com Add plugin version to SwiftPM package symlink directory (flutter/flutter#183668) 2026-04-02 34871572+gmackall@users.noreply.github.com Add our own wrapper for `CommonExtension` due to change in signature from 8.x->9.0 (flutter/flutter#184433) 2026-04-02 dbebawy@users.noreply.github.com [Android] Use EdgeToEdge.enable/WindowCompat for edge-to-edge mode instead of deprecated View flags (flutter/flutter#183072) 2026-04-02 dacoharkes@google.com [data_assets] Cleanup tests (flutter/flutter#184209) 2026-04-02 okorohelijah@google.com Enable SPM by default on Stable (flutter/flutter#184495) 2026-04-02 engine-flutter-autoroll@skia.org Roll Dart SDK from d84bdfeb45eb to 6008eaddd589 (2 revisions) (flutter/flutter#184513) 2026-04-02 victorsanniay@gmail.com Reland "Even more awaits" (flutter/flutter#184467) 2026-04-02 engine-flutter-autoroll@skia.org Roll Skia from bb9fd8653739 to 973117cfa875 (2 revisions) (flutter/flutter#184498) 2026-04-02 bkonyi@google.com [ Widget Preview ] Use analysis server for widget preview detection (flutter/flutter#184473) 2026-04-02 srawlins@google.com [web_ui] Fix avoid_type_to_string lint violation (flutter/flutter#184342) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 9125739e0120..849f4ae493d7 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -0f401eea04390dc08eb939b6c0fee17c7d15f6ec +7245c3f71104de04c1edb58523ab8482f4d76a2c From 5299279b93ce88c7d32a5331a37d78aaa90b3770 Mon Sep 17 00:00:00 2001 From: stuartmorgan-g Date: Fri, 3 Apr 2026 15:46:07 -0400 Subject: [PATCH 03/14] [ci] Move remove_cicd.yml to workflows/ (#11426) This hasn't been running, because I accidentally didn't put in in workflows/ See https://github.com/flutter/packages/pull/11301 for context on this file. --- .github/{ => workflows}/remove_cicd.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{ => workflows}/remove_cicd.yml (100%) diff --git a/.github/remove_cicd.yml b/.github/workflows/remove_cicd.yml similarity index 100% rename from .github/remove_cicd.yml rename to .github/workflows/remove_cicd.yml From ed7881e9301807fc909ad8fda069eb3e6da0df2a Mon Sep 17 00:00:00 2001 From: chunhtai <47866232+chunhtai@users.noreply.github.com> Date: Mon, 6 Apr 2026 09:10:21 -0700 Subject: [PATCH 04/14] [ci] use override: post-release- label (#11429) The ci only capture label that starts with `override:`. We can either (1) update the ci to capture more labels, or (2) update the post release label to start with `override:`. I figured adding `override:` prefix is more appropriate because the label is attempting to override verision check for batch release. ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. --- .github/workflows/sync_release_pr.yml | 2 +- script/tool/lib/src/version_check_command.dart | 2 +- script/tool/test/version_check_command_test.dart | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/sync_release_pr.yml b/.github/workflows/sync_release_pr.yml index 2b5ce6a84036..0280893b0708 100644 --- a/.github/workflows/sync_release_pr.yml +++ b/.github/workflows/sync_release_pr.yml @@ -41,4 +41,4 @@ jobs: --head "${{ github.ref_name }}" \ --title "Sync ${{ github.ref_name }} to main" \ --body "This automated PR syncs the changes from the release branch ${{ github.ref_name }} back to the main branch." \ - --label "post-${{ github.ref_name }}" + --label "override: post-${{ github.ref_name }}" diff --git a/script/tool/lib/src/version_check_command.dart b/script/tool/lib/src/version_check_command.dart index 7fea963b0292..3454c7e08890 100644 --- a/script/tool/lib/src/version_check_command.dart +++ b/script/tool/lib/src/version_check_command.dart @@ -248,7 +248,7 @@ class VersionCheckCommand extends PackageLoopingCommand { // PR with post release label is going to sync changelog.md and pubspec.yaml // change back to main branch. Proceed with regular version check. final bool hasPostReleaseLabel = _prLabels.contains( - 'post-release-${pubspec.name}', + 'override: post-release-${pubspec.name}', ); bool versionChanged; diff --git a/script/tool/test/version_check_command_test.dart b/script/tool/test/version_check_command_test.dart index f5de2c2c02eb..ee37a55313ca 100644 --- a/script/tool/test/version_check_command_test.dart +++ b/script/tool/test/version_check_command_test.dart @@ -2079,7 +2079,7 @@ release: }, ); test( - 'ignores changelog and pubspec yaml version modifications check with post-release label', + 'ignores changelog and pubspec yaml version modifications check with override: post-release label', () async { final RepositoryPackage package = createFakePackage( 'package', @@ -2112,7 +2112,7 @@ packages/package/pubspec.yaml final List output = await runCapturingPrint(runner, [ 'version-check', '--base-sha=main', - '--pr-labels=post-release-package', + '--pr-labels=override: post-release-package', ]); expect( From c7d680fbeba951c3c27aca893b5f6c34893cbccf Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 6 Apr 2026 13:03:04 -0400 Subject: [PATCH 05/14] [path_provider_android] Changes internal implementation to use JNI (#9770) https://developer.android.com/guide/components/processes-and-threads ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. --- .../path_provider_android/CHANGELOG.md | 4 + .../path_provider_android/CONTRIBUTING.md | 11 + .../android/build.gradle.kts | 64 - .../android/settings.gradle.kts | 1 - .../android/src/main/AndroidManifest.xml | 3 - .../plugins/pathprovider/Messages.java | 320 - .../pathprovider/PathProviderPlugin.java | 127 - .../pathprovider/PathProviderPluginTest.java | 28 - .../example/android/build.gradle.kts | 12 - .../path_provider_android/lib/messages.g.dart | 267 - .../lib/path_provider_android.dart | 107 +- .../lib/src/path_provider.g.dart | 10009 ++++++++++++++++ .../lib/src/path_provider_android_real.dart | 145 + .../lib/src/path_provider_android_stub.dart | 15 + .../pigeons/copyright.txt | 3 - .../pigeons/messages.dart | 49 - .../path_provider_android/pubspec.yaml | 8 +- .../test/path_provider_android_test.dart | 121 +- .../path_provider_android/tool/jnigen.dart | 31 + script/configs/allowed_unpinned_deps.yaml | 3 + script/tool/lib/src/analyze_command.dart | 9 +- script/tool/lib/src/gradle_check_command.dart | 13 +- script/tool/test/analyze_command_test.dart | 45 +- .../tool/test/gradle_check_command_test.dart | 18 +- 24 files changed, 10297 insertions(+), 1116 deletions(-) create mode 100644 packages/path_provider/path_provider_android/CONTRIBUTING.md delete mode 100644 packages/path_provider/path_provider_android/android/build.gradle.kts delete mode 100644 packages/path_provider/path_provider_android/android/settings.gradle.kts delete mode 100644 packages/path_provider/path_provider_android/android/src/main/AndroidManifest.xml delete mode 100644 packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/Messages.java delete mode 100644 packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java delete mode 100644 packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/PathProviderPluginTest.java delete mode 100644 packages/path_provider/path_provider_android/lib/messages.g.dart create mode 100644 packages/path_provider/path_provider_android/lib/src/path_provider.g.dart create mode 100644 packages/path_provider/path_provider_android/lib/src/path_provider_android_real.dart create mode 100644 packages/path_provider/path_provider_android/lib/src/path_provider_android_stub.dart delete mode 100644 packages/path_provider/path_provider_android/pigeons/copyright.txt delete mode 100644 packages/path_provider/path_provider_android/pigeons/messages.dart create mode 100644 packages/path_provider/path_provider_android/tool/jnigen.dart diff --git a/packages/path_provider/path_provider_android/CHANGELOG.md b/packages/path_provider/path_provider_android/CHANGELOG.md index 106b35fa0676..d0bee39ec1a6 100644 --- a/packages/path_provider/path_provider_android/CHANGELOG.md +++ b/packages/path_provider/path_provider_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.3.0 + +* Changes internal implementation to use JNI. + ## 2.2.23 * Updates build files from Groovy to Kotlin. diff --git a/packages/path_provider/path_provider_android/CONTRIBUTING.md b/packages/path_provider/path_provider_android/CONTRIBUTING.md new file mode 100644 index 000000000000..9f764f87c640 --- /dev/null +++ b/packages/path_provider/path_provider_android/CONTRIBUTING.md @@ -0,0 +1,11 @@ +# Contributing + +## `jnigen` + +This package uses [jnigen](https://pub.dev/packages/jnigen) to call Android +methods, rather than using the standard Flutter plugin structure. To add new +functionality to the JNI interface, update `tool/jnigen.dart`, then run: + +```bash +dart run tool/jnigen.dart +``` diff --git a/packages/path_provider/path_provider_android/android/build.gradle.kts b/packages/path_provider/path_provider_android/android/build.gradle.kts deleted file mode 100644 index 3114e6c6385e..000000000000 --- a/packages/path_provider/path_provider_android/android/build.gradle.kts +++ /dev/null @@ -1,64 +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") - } -} - -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.kts b/packages/path_provider/path_provider_android/android/settings.gradle.kts deleted file mode 100644 index 4fc5bb16d8aa..000000000000 --- a/packages/path_provider/path_provider_android/android/settings.gradle.kts +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = "path_provider_android" diff --git a/packages/path_provider/path_provider_android/android/src/main/AndroidManifest.xml b/packages/path_provider/path_provider_android/android/src/main/AndroidManifest.xml deleted file mode 100644 index ae9c21c963fd..000000000000 --- a/packages/path_provider/path_provider_android/android/src/main/AndroidManifest.xml +++ /dev/null @@ -1,3 +0,0 @@ - - diff --git a/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/Messages.java b/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/Messages.java deleted file mode 100644 index 923a8a28e8d2..000000000000 --- a/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/Messages.java +++ /dev/null @@ -1,320 +0,0 @@ -// Copyright 2013 The Flutter Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// Autogenerated from Pigeon (v26.1.0), do not edit directly. -// See also: https://pub.dev/packages/pigeon - -package io.flutter.plugins.pathprovider; - -import android.util.Log; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import io.flutter.plugin.common.BasicMessageChannel; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugin.common.MessageCodec; -import io.flutter.plugin.common.StandardMessageCodec; -import java.io.ByteArrayOutputStream; -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.List; - -/** Generated class from Pigeon. */ -@SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression", "serial"}) -public class Messages { - - /** Error class for passing custom error details to Flutter via a thrown PlatformException. */ - public static class FlutterError extends RuntimeException { - - /** The error code. */ - public final String code; - - /** The error details. Must be a datatype supported by the api codec. */ - public final Object details; - - public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) { - super(message); - this.code = code; - this.details = details; - } - } - - @NonNull - protected static ArrayList wrapError(@NonNull Throwable exception) { - ArrayList errorList = new ArrayList<>(3); - if (exception instanceof FlutterError) { - FlutterError error = (FlutterError) exception; - errorList.add(error.code); - errorList.add(error.getMessage()); - errorList.add(error.details); - } else { - errorList.add(exception.toString()); - errorList.add(exception.getClass().getSimpleName()); - errorList.add( - "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); - } - return errorList; - } - - public enum StorageDirectory { - ROOT(0), - MUSIC(1), - PODCASTS(2), - RINGTONES(3), - ALARMS(4), - NOTIFICATIONS(5), - PICTURES(6), - MOVIES(7), - DOWNLOADS(8), - DCIM(9), - DOCUMENTS(10); - - final int index; - - StorageDirectory(final int index) { - this.index = index; - } - } - - private static class PigeonCodec extends StandardMessageCodec { - public static final PigeonCodec INSTANCE = new PigeonCodec(); - - private PigeonCodec() {} - - @Override - protected Object readValueOfType(byte type, @NonNull ByteBuffer buffer) { - switch (type) { - case (byte) 129: - { - Object value = readValue(buffer); - return value == null ? null : StorageDirectory.values()[((Long) value).intValue()]; - } - default: - return super.readValueOfType(type, buffer); - } - } - - @Override - protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { - if (value instanceof StorageDirectory) { - stream.write(129); - writeValue(stream, value == null ? null : ((StorageDirectory) value).index); - } else { - super.writeValue(stream, value); - } - } - } - - /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ - public interface PathProviderApi { - - @Nullable - String getTemporaryPath(); - - @Nullable - String getApplicationSupportPath(); - - @Nullable - String getApplicationDocumentsPath(); - - @Nullable - String getApplicationCachePath(); - - @Nullable - String getExternalStoragePath(); - - @NonNull - List getExternalCachePaths(); - - @NonNull - List getExternalStoragePaths(@NonNull StorageDirectory directory); - - /** The codec used by PathProviderApi. */ - static @NonNull MessageCodec getCodec() { - return PigeonCodec.INSTANCE; - } - /** - * Sets up an instance of `PathProviderApi` to handle messages through the `binaryMessenger`. - */ - static void setUp(@NonNull BinaryMessenger binaryMessenger, @Nullable PathProviderApi api) { - setUp(binaryMessenger, "", api); - } - - static void setUp( - @NonNull BinaryMessenger binaryMessenger, - @NonNull String messageChannelSuffix, - @Nullable PathProviderApi api) { - messageChannelSuffix = messageChannelSuffix.isEmpty() ? "" : "." + messageChannelSuffix; - BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue(); - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.path_provider_android.PathProviderApi.getTemporaryPath" - + messageChannelSuffix, - getCodec(), - taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - String output = api.getTemporaryPath(); - wrapped.add(0, output); - } catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.path_provider_android.PathProviderApi.getApplicationSupportPath" - + messageChannelSuffix, - getCodec(), - taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - String output = api.getApplicationSupportPath(); - wrapped.add(0, output); - } catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.path_provider_android.PathProviderApi.getApplicationDocumentsPath" - + messageChannelSuffix, - getCodec(), - taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - String output = api.getApplicationDocumentsPath(); - wrapped.add(0, output); - } catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.path_provider_android.PathProviderApi.getApplicationCachePath" - + messageChannelSuffix, - getCodec(), - taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - String output = api.getApplicationCachePath(); - wrapped.add(0, output); - } catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.path_provider_android.PathProviderApi.getExternalStoragePath" - + messageChannelSuffix, - getCodec(), - taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - String output = api.getExternalStoragePath(); - wrapped.add(0, output); - } catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.path_provider_android.PathProviderApi.getExternalCachePaths" - + messageChannelSuffix, - getCodec(), - taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - try { - List output = api.getExternalCachePaths(); - wrapped.add(0, output); - } catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.path_provider_android.PathProviderApi.getExternalStoragePaths" - + messageChannelSuffix, - getCodec(), - taskQueue); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); - ArrayList args = (ArrayList) message; - StorageDirectory directoryArg = (StorageDirectory) args.get(0); - try { - List output = api.getExternalStoragePaths(directoryArg); - wrapped.add(0, output); - } catch (Throwable exception) { - wrapped = wrapError(exception); - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - } - } -} diff --git a/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java b/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java deleted file mode 100644 index 0484d38832ca..000000000000 --- a/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2013 The Flutter Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.pathprovider; - -import android.content.Context; -import android.util.Log; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import io.flutter.embedding.engine.plugins.FlutterPlugin; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.pathprovider.Messages.PathProviderApi; -import io.flutter.util.PathUtils; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -public class PathProviderPlugin implements FlutterPlugin, PathProviderApi { - static final String TAG = "PathProviderPlugin"; - private Context context; - - public PathProviderPlugin() {} - - private void setUp(BinaryMessenger messenger, Context context) { - try { - PathProviderApi.setUp(messenger, this); - } catch (Exception ex) { - Log.e(TAG, "Received exception while setting up PathProviderPlugin", ex); - } - - this.context = context; - } - - @Override - public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { - setUp(binding.getBinaryMessenger(), binding.getApplicationContext()); - } - - @Override - public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { - PathProviderApi.setUp(binding.getBinaryMessenger(), null); - } - - @Override - public @Nullable String getTemporaryPath() { - return context.getCacheDir().getPath(); - } - - @Override - public @Nullable String getApplicationSupportPath() { - return PathUtils.getFilesDir(context); - } - - @Override - public @Nullable String getApplicationDocumentsPath() { - return PathUtils.getDataDirectory(context); - } - - @Override - public @Nullable String getApplicationCachePath() { - return context.getCacheDir().getPath(); - } - - @Override - public @Nullable String getExternalStoragePath() { - final File dir = context.getExternalFilesDir(null); - if (dir == null) { - return null; - } - return dir.getAbsolutePath(); - } - - @Override - public @NonNull List getExternalCachePaths() { - final List paths = new ArrayList<>(); - for (File dir : context.getExternalCacheDirs()) { - if (dir != null) { - paths.add(dir.getAbsolutePath()); - } - } - return paths; - } - - @Override - public @NonNull List getExternalStoragePaths( - @NonNull Messages.StorageDirectory directory) { - final List paths = new ArrayList<>(); - for (File dir : context.getExternalFilesDirs(getStorageDirectoryString(directory))) { - if (dir != null) { - paths.add(dir.getAbsolutePath()); - } - } - return paths; - } - - @VisibleForTesting - String getStorageDirectoryString(@NonNull Messages.StorageDirectory directory) { - switch (directory) { - case ROOT: - return null; - case MUSIC: - return "music"; - case PODCASTS: - return "podcasts"; - case RINGTONES: - return "ringtones"; - case ALARMS: - return "alarms"; - case NOTIFICATIONS: - return "notifications"; - case PICTURES: - return "pictures"; - case MOVIES: - return "movies"; - case DOWNLOADS: - return "downloads"; - case DCIM: - return "dcim"; - case DOCUMENTS: - return "documents"; - default: - throw new RuntimeException("Unrecognized directory: " + directory); - } - } -} diff --git a/packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/PathProviderPluginTest.java b/packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/PathProviderPluginTest.java deleted file mode 100644 index ff4bc053c559..000000000000 --- a/packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/PathProviderPluginTest.java +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2013 The Flutter Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.pathprovider; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -public class PathProviderPluginTest { - @org.junit.Test - public void testStorageDirectoryTypeTranslation() { - final PathProviderPlugin plugin = new PathProviderPlugin(); - assertNull(plugin.getStorageDirectoryString(Messages.StorageDirectory.ROOT)); - assertEquals("music", plugin.getStorageDirectoryString(Messages.StorageDirectory.MUSIC)); - assertEquals("podcasts", plugin.getStorageDirectoryString(Messages.StorageDirectory.PODCASTS)); - assertEquals( - "ringtones", plugin.getStorageDirectoryString(Messages.StorageDirectory.RINGTONES)); - assertEquals("alarms", plugin.getStorageDirectoryString(Messages.StorageDirectory.ALARMS)); - assertEquals( - "notifications", plugin.getStorageDirectoryString(Messages.StorageDirectory.NOTIFICATIONS)); - assertEquals("pictures", plugin.getStorageDirectoryString(Messages.StorageDirectory.PICTURES)); - assertEquals("movies", plugin.getStorageDirectoryString(Messages.StorageDirectory.MOVIES)); - assertEquals( - "downloads", plugin.getStorageDirectoryString(Messages.StorageDirectory.DOWNLOADS)); - assertEquals("dcim", plugin.getStorageDirectoryString(Messages.StorageDirectory.DCIM)); - } -} diff --git a/packages/path_provider/path_provider_android/example/android/build.gradle.kts b/packages/path_provider/path_provider_android/example/android/build.gradle.kts index 6b1647312231..a8bde37d0c72 100644 --- a/packages/path_provider/path_provider_android/example/android/build.gradle.kts +++ b/packages/path_provider/path_provider_android/example/android/build.gradle.kts @@ -31,15 +31,3 @@ subprojects { tasks.register("clean") { delete(rootProject.layout.buildDirectory) } - -// Build the plugin project with warnings enabled. This is here rather than -// in the plugin itself to avoid breaking clients that have different -// warnings (e.g., deprecation warnings from a newer SDK than this project -// builds with). -gradle.projectsEvaluated { - project(":path_provider_android") { - tasks.withType { - options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) - } - } -} diff --git a/packages/path_provider/path_provider_android/lib/messages.g.dart b/packages/path_provider/path_provider_android/lib/messages.g.dart deleted file mode 100644 index 29b133c5dab5..000000000000 --- a/packages/path_provider/path_provider_android/lib/messages.g.dart +++ /dev/null @@ -1,267 +0,0 @@ -// Copyright 2013 The Flutter Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// Autogenerated from Pigeon (v26.1.0), do not edit directly. -// See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers - -import 'dart:async'; -import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; - -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; -import 'package:flutter/services.dart'; - -PlatformException _createConnectionError(String channelName) { - return PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel: "$channelName".', - ); -} - -enum StorageDirectory { - root, - music, - podcasts, - ringtones, - alarms, - notifications, - pictures, - movies, - downloads, - dcim, - documents, -} - -class _PigeonCodec extends StandardMessageCodec { - const _PigeonCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is int) { - buffer.putUint8(4); - buffer.putInt64(value); - } else if (value is StorageDirectory) { - buffer.putUint8(129); - writeValue(buffer, value.index); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 129: - final int? value = readValue(buffer) as int?; - return value == null ? null : StorageDirectory.values[value]; - default: - return super.readValueOfType(type, buffer); - } - } -} - -class PathProviderApi { - /// Constructor for [PathProviderApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - PathProviderApi({ - BinaryMessenger? binaryMessenger, - String messageChannelSuffix = '', - }) : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty - ? '.$messageChannelSuffix' - : ''; - final BinaryMessenger? pigeonVar_binaryMessenger; - - static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - - final String pigeonVar_messageChannelSuffix; - - Future getTemporaryPath() async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.path_provider_android.PathProviderApi.getTemporaryPath$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return (pigeonVar_replyList[0] as String?); - } - } - - Future getApplicationSupportPath() async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.path_provider_android.PathProviderApi.getApplicationSupportPath$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return (pigeonVar_replyList[0] as String?); - } - } - - Future getApplicationDocumentsPath() async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.path_provider_android.PathProviderApi.getApplicationDocumentsPath$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return (pigeonVar_replyList[0] as String?); - } - } - - Future getApplicationCachePath() async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.path_provider_android.PathProviderApi.getApplicationCachePath$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return (pigeonVar_replyList[0] as String?); - } - } - - Future getExternalStoragePath() async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.path_provider_android.PathProviderApi.getExternalStoragePath$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return (pigeonVar_replyList[0] as String?); - } - } - - Future> getExternalCachePaths() async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.path_provider_android.PathProviderApi.getExternalCachePaths$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as List?)!.cast(); - } - } - - Future> getExternalStoragePaths( - StorageDirectory directory, - ) async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.path_provider_android.PathProviderApi.getExternalStoragePaths$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [directory], - ); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as List?)!.cast(); - } - } -} diff --git a/packages/path_provider/path_provider_android/lib/path_provider_android.dart b/packages/path_provider/path_provider_android/lib/path_provider_android.dart index 8931ef4bd7ee..0ad2784305b0 100644 --- a/packages/path_provider/path_provider_android/lib/path_provider_android.dart +++ b/packages/path_provider/path_provider_android/lib/path_provider_android.dart @@ -2,105 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:flutter/foundation.dart' show visibleForTesting; -import 'package:path_provider_platform_interface/path_provider_platform_interface.dart'; -import 'messages.g.dart' as messages; - -messages.StorageDirectory _convertStorageDirectory( - StorageDirectory? directory, -) { - switch (directory) { - case null: - return messages.StorageDirectory.root; - case StorageDirectory.music: - return messages.StorageDirectory.music; - case StorageDirectory.podcasts: - return messages.StorageDirectory.podcasts; - case StorageDirectory.ringtones: - return messages.StorageDirectory.ringtones; - case StorageDirectory.alarms: - return messages.StorageDirectory.alarms; - case StorageDirectory.notifications: - return messages.StorageDirectory.notifications; - case StorageDirectory.pictures: - return messages.StorageDirectory.pictures; - case StorageDirectory.movies: - return messages.StorageDirectory.movies; - case StorageDirectory.downloads: - return messages.StorageDirectory.downloads; - case StorageDirectory.dcim: - return messages.StorageDirectory.dcim; - case StorageDirectory.documents: - return messages.StorageDirectory.documents; - } -} - -/// The Android implementation of [PathProviderPlatform]. -class PathProviderAndroid extends PathProviderPlatform { - /// Creates an instance of [PathProviderAndroid]. - PathProviderAndroid({@visibleForTesting messages.PathProviderApi? api}) - : _api = api ?? messages.PathProviderApi(); - - final messages.PathProviderApi _api; - - /// Registers this class as the default instance of [PathProviderPlatform]. - static void registerWith() { - PathProviderPlatform.instance = PathProviderAndroid(); - } - - @override - Future getTemporaryPath() { - return _api.getTemporaryPath(); - } - - @override - Future getApplicationSupportPath() { - return _api.getApplicationSupportPath(); - } - - @override - Future getLibraryPath() { - throw UnsupportedError('getLibraryPath is not supported on Android'); - } - - @override - Future getApplicationDocumentsPath() { - return _api.getApplicationDocumentsPath(); - } - - @override - Future getApplicationCachePath() { - return _api.getApplicationCachePath(); - } - - @override - Future getExternalStoragePath() { - return _api.getExternalStoragePath(); - } - - @override - Future?> getExternalCachePaths() async { - return _api.getExternalCachePaths(); - } - - @override - Future?> getExternalStoragePaths({ - StorageDirectory? type, - }) async { - return _getExternalStoragePaths(type: type); - } - - @override - Future getDownloadsPath() async { - final List paths = await _getExternalStoragePaths( - type: StorageDirectory.downloads, - ); - return paths.isEmpty ? null : paths.first; - } - - Future> _getExternalStoragePaths({ - StorageDirectory? type, - }) async { - return _api.getExternalStoragePaths(_convertStorageDirectory(type)); - } -} +// path_provider_android is implemented using FFI; export a stub for +// platforms that don't support FFI (e.g., web) to avoid having transitive +// dependencies break web compilation. +export 'src/path_provider_android_stub.dart' + if (dart.library.ffi) 'src/path_provider_android_real.dart'; diff --git a/packages/path_provider/path_provider_android/lib/src/path_provider.g.dart b/packages/path_provider/path_provider_android/lib/src/path_provider.g.dart new file mode 100644 index 000000000000..bfba6c09d873 --- /dev/null +++ b/packages/path_provider/path_provider_android/lib/src/path_provider.g.dart @@ -0,0 +1,10009 @@ +// AUTO GENERATED BY JNIGEN 0.16.0. DO NOT EDIT! + +// ignore_for_file: annotate_overrides +// ignore_for_file: argument_type_not_assignable +// ignore_for_file: camel_case_extensions +// ignore_for_file: camel_case_types +// ignore_for_file: constant_identifier_names +// ignore_for_file: comment_references +// ignore_for_file: doc_directive_unknown +// ignore_for_file: file_names +// ignore_for_file: inference_failure_on_untyped_parameter +// ignore_for_file: invalid_internal_annotation +// ignore_for_file: invalid_use_of_internal_member +// ignore_for_file: library_prefixes +// ignore_for_file: lines_longer_than_80_chars +// ignore_for_file: no_leading_underscores_for_library_prefixes +// ignore_for_file: no_leading_underscores_for_local_identifiers +// ignore_for_file: non_constant_identifier_names +// ignore_for_file: only_throw_errors +// ignore_for_file: overridden_fields +// ignore_for_file: prefer_double_quotes +// ignore_for_file: unintended_html_in_doc_comment +// ignore_for_file: unnecessary_cast +// ignore_for_file: unnecessary_non_null_assertion +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: unused_element +// ignore_for_file: unused_field +// ignore_for_file: unused_import +// ignore_for_file: unused_local_variable +// ignore_for_file: unused_shown_name +// ignore_for_file: use_super_parameters + +import 'dart:core' as core$_; +import 'dart:core' show Object, String; + +import 'package:jni/_internal.dart' as jni$_; +import 'package:jni/jni.dart' as jni$_; + +const _$jniVersionCheck = jni$_.JniVersionCheck(1, 0); + +/// from: `android.content.Context$BindServiceFlags` +extension type Context$BindServiceFlags._(jni$_.JObject _$this) + implements jni$_.JObject { + static final _class = jni$_.JClass.forName( + r'android/content/Context$BindServiceFlags', + ); + + /// The type which includes information such as the signature of this class. + static const jni$_.JType type = + $Context$BindServiceFlags$Type$(); + static final _id_of = _class.staticMethodId( + r'of', + r'(J)Landroid/content/Context$BindServiceFlags;', + ); + + static final _of = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int64,)>, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `static public android.content.Context$BindServiceFlags of(long j)` + /// The returned object must be released after use, by calling the [release] method. + static Context$BindServiceFlags? of(core$_.int j) { + return _of( + _class.reference.pointer, + _id_of.pointer, + j, + ).object(); + } +} + +final class $Context$BindServiceFlags$Type$ + extends jni$_.JType { + @jni$_.internal + const $Context$BindServiceFlags$Type$(); + + @jni$_.internal + @core$_.override + String get signature => r'Landroid/content/Context$BindServiceFlags;'; +} + +/// from: `android.content.Context` +extension type Context._(jni$_.JObject _$this) implements jni$_.JObject { + static final _class = jni$_.JClass.forName(r'android/content/Context'); + + /// The type which includes information such as the signature of this class. + static const jni$_.JType type = $Context$Type$(); + static final _id_ACCESSIBILITY_SERVICE = _class.staticFieldId( + r'ACCESSIBILITY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String ACCESSIBILITY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get ACCESSIBILITY_SERVICE => + _id_ACCESSIBILITY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_ACCOUNT_SERVICE = _class.staticFieldId( + r'ACCOUNT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String ACCOUNT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get ACCOUNT_SERVICE => + _id_ACCOUNT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_ACTIVITY_SERVICE = _class.staticFieldId( + r'ACTIVITY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String ACTIVITY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get ACTIVITY_SERVICE => + _id_ACTIVITY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_ADVANCED_PROTECTION_SERVICE = _class.staticFieldId( + r'ADVANCED_PROTECTION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String ADVANCED_PROTECTION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get ADVANCED_PROTECTION_SERVICE => + _id_ADVANCED_PROTECTION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_ALARM_SERVICE = _class.staticFieldId( + r'ALARM_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String ALARM_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get ALARM_SERVICE => + _id_ALARM_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_APPWIDGET_SERVICE = _class.staticFieldId( + r'APPWIDGET_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String APPWIDGET_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get APPWIDGET_SERVICE => + _id_APPWIDGET_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_APP_FUNCTION_SERVICE = _class.staticFieldId( + r'APP_FUNCTION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String APP_FUNCTION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get APP_FUNCTION_SERVICE => + _id_APP_FUNCTION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_APP_OPS_SERVICE = _class.staticFieldId( + r'APP_OPS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String APP_OPS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get APP_OPS_SERVICE => + _id_APP_OPS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_APP_SEARCH_SERVICE = _class.staticFieldId( + r'APP_SEARCH_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String APP_SEARCH_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get APP_SEARCH_SERVICE => + _id_APP_SEARCH_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_AUDIO_SERVICE = _class.staticFieldId( + r'AUDIO_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String AUDIO_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get AUDIO_SERVICE => + _id_AUDIO_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_BATTERY_SERVICE = _class.staticFieldId( + r'BATTERY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String BATTERY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get BATTERY_SERVICE => + _id_BATTERY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public final int BIND_ABOVE_CLIENT` + static const BIND_ABOVE_CLIENT = 8; + + /// from: `static public final int BIND_ADJUST_WITH_ACTIVITY` + static const BIND_ADJUST_WITH_ACTIVITY = 128; + + /// from: `static public final int BIND_ALLOW_ACTIVITY_STARTS` + static const BIND_ALLOW_ACTIVITY_STARTS = 512; + + /// from: `static public final int BIND_ALLOW_OOM_MANAGEMENT` + static const BIND_ALLOW_OOM_MANAGEMENT = 16; + + /// from: `static public final int BIND_AUTO_CREATE` + static const BIND_AUTO_CREATE = 1; + + /// from: `static public final int BIND_DEBUG_UNBIND` + static const BIND_DEBUG_UNBIND = 2; + + /// from: `static public final int BIND_EXTERNAL_SERVICE` + static const BIND_EXTERNAL_SERVICE = -2147483648; + + /// from: `static public final long BIND_EXTERNAL_SERVICE_LONG` + static const BIND_EXTERNAL_SERVICE_LONG = 4611686018427387904; + + /// from: `static public final int BIND_IMPORTANT` + static const BIND_IMPORTANT = 64; + + /// from: `static public final int BIND_INCLUDE_CAPABILITIES` + static const BIND_INCLUDE_CAPABILITIES = 4096; + + /// from: `static public final int BIND_NOT_FOREGROUND` + static const BIND_NOT_FOREGROUND = 4; + + /// from: `static public final int BIND_NOT_PERCEPTIBLE` + static const BIND_NOT_PERCEPTIBLE = 256; + + /// from: `static public final int BIND_PACKAGE_ISOLATED_PROCESS` + static const BIND_PACKAGE_ISOLATED_PROCESS = 16384; + + /// from: `static public final int BIND_SHARED_ISOLATED_PROCESS` + static const BIND_SHARED_ISOLATED_PROCESS = 8192; + + /// from: `static public final int BIND_WAIVE_PRIORITY` + static const BIND_WAIVE_PRIORITY = 32; + static final _id_BIOMETRIC_SERVICE = _class.staticFieldId( + r'BIOMETRIC_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String BIOMETRIC_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get BIOMETRIC_SERVICE => + _id_BIOMETRIC_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_BLOB_STORE_SERVICE = _class.staticFieldId( + r'BLOB_STORE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String BLOB_STORE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get BLOB_STORE_SERVICE => + _id_BLOB_STORE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_BLUETOOTH_SERVICE = _class.staticFieldId( + r'BLUETOOTH_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String BLUETOOTH_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get BLUETOOTH_SERVICE => + _id_BLUETOOTH_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_BUGREPORT_SERVICE = _class.staticFieldId( + r'BUGREPORT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String BUGREPORT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get BUGREPORT_SERVICE => + _id_BUGREPORT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_CAMERA_SERVICE = _class.staticFieldId( + r'CAMERA_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CAMERA_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CAMERA_SERVICE => + _id_CAMERA_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_CAPTIONING_SERVICE = _class.staticFieldId( + r'CAPTIONING_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CAPTIONING_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CAPTIONING_SERVICE => + _id_CAPTIONING_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_CARRIER_CONFIG_SERVICE = _class.staticFieldId( + r'CARRIER_CONFIG_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CARRIER_CONFIG_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CARRIER_CONFIG_SERVICE => + _id_CARRIER_CONFIG_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_CLIPBOARD_SERVICE = _class.staticFieldId( + r'CLIPBOARD_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CLIPBOARD_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CLIPBOARD_SERVICE => + _id_CLIPBOARD_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_COMPANION_DEVICE_SERVICE = _class.staticFieldId( + r'COMPANION_DEVICE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String COMPANION_DEVICE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get COMPANION_DEVICE_SERVICE => + _id_COMPANION_DEVICE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_CONNECTIVITY_DIAGNOSTICS_SERVICE = _class.staticFieldId( + r'CONNECTIVITY_DIAGNOSTICS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CONNECTIVITY_DIAGNOSTICS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CONNECTIVITY_DIAGNOSTICS_SERVICE => + _id_CONNECTIVITY_DIAGNOSTICS_SERVICE.getNullable( + _class, + jni$_.JString.type, + ) + as jni$_.JString?; + + static final _id_CONNECTIVITY_SERVICE = _class.staticFieldId( + r'CONNECTIVITY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CONNECTIVITY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CONNECTIVITY_SERVICE => + _id_CONNECTIVITY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_CONSUMER_IR_SERVICE = _class.staticFieldId( + r'CONSUMER_IR_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CONSUMER_IR_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CONSUMER_IR_SERVICE => + _id_CONSUMER_IR_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_CONTACT_KEYS_SERVICE = _class.staticFieldId( + r'CONTACT_KEYS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CONTACT_KEYS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CONTACT_KEYS_SERVICE => + _id_CONTACT_KEYS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public final int CONTEXT_IGNORE_SECURITY` + static const CONTEXT_IGNORE_SECURITY = 2; + + /// from: `static public final int CONTEXT_INCLUDE_CODE` + static const CONTEXT_INCLUDE_CODE = 1; + + /// from: `static public final int CONTEXT_RESTRICTED` + static const CONTEXT_RESTRICTED = 4; + static final _id_CREDENTIAL_SERVICE = _class.staticFieldId( + r'CREDENTIAL_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CREDENTIAL_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CREDENTIAL_SERVICE => + _id_CREDENTIAL_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_CROSS_PROFILE_APPS_SERVICE = _class.staticFieldId( + r'CROSS_PROFILE_APPS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String CROSS_PROFILE_APPS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get CROSS_PROFILE_APPS_SERVICE => + _id_CROSS_PROFILE_APPS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public final int DEVICE_ID_DEFAULT` + static const DEVICE_ID_DEFAULT = 0; + + /// from: `static public final int DEVICE_ID_INVALID` + static const DEVICE_ID_INVALID = -1; + static final _id_DEVICE_LOCK_SERVICE = _class.staticFieldId( + r'DEVICE_LOCK_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String DEVICE_LOCK_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DEVICE_LOCK_SERVICE => + _id_DEVICE_LOCK_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_DEVICE_POLICY_SERVICE = _class.staticFieldId( + r'DEVICE_POLICY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String DEVICE_POLICY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DEVICE_POLICY_SERVICE => + _id_DEVICE_POLICY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_DISPLAY_HASH_SERVICE = _class.staticFieldId( + r'DISPLAY_HASH_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String DISPLAY_HASH_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DISPLAY_HASH_SERVICE => + _id_DISPLAY_HASH_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_DISPLAY_SERVICE = _class.staticFieldId( + r'DISPLAY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String DISPLAY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DISPLAY_SERVICE => + _id_DISPLAY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_DOMAIN_VERIFICATION_SERVICE = _class.staticFieldId( + r'DOMAIN_VERIFICATION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String DOMAIN_VERIFICATION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DOMAIN_VERIFICATION_SERVICE => + _id_DOMAIN_VERIFICATION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_DOWNLOAD_SERVICE = _class.staticFieldId( + r'DOWNLOAD_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String DOWNLOAD_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DOWNLOAD_SERVICE => + _id_DOWNLOAD_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_DROPBOX_SERVICE = _class.staticFieldId( + r'DROPBOX_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String DROPBOX_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DROPBOX_SERVICE => + _id_DROPBOX_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_EUICC_SERVICE = _class.staticFieldId( + r'EUICC_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String EUICC_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get EUICC_SERVICE => + _id_EUICC_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_FILE_INTEGRITY_SERVICE = _class.staticFieldId( + r'FILE_INTEGRITY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String FILE_INTEGRITY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get FILE_INTEGRITY_SERVICE => + _id_FILE_INTEGRITY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_FINGERPRINT_SERVICE = _class.staticFieldId( + r'FINGERPRINT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String FINGERPRINT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get FINGERPRINT_SERVICE => + _id_FINGERPRINT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_GAME_SERVICE = _class.staticFieldId( + r'GAME_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String GAME_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get GAME_SERVICE => + _id_GAME_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_GRAMMATICAL_INFLECTION_SERVICE = _class.staticFieldId( + r'GRAMMATICAL_INFLECTION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String GRAMMATICAL_INFLECTION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get GRAMMATICAL_INFLECTION_SERVICE => + _id_GRAMMATICAL_INFLECTION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_HARDWARE_PROPERTIES_SERVICE = _class.staticFieldId( + r'HARDWARE_PROPERTIES_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String HARDWARE_PROPERTIES_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get HARDWARE_PROPERTIES_SERVICE => + _id_HARDWARE_PROPERTIES_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_HEALTHCONNECT_SERVICE = _class.staticFieldId( + r'HEALTHCONNECT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String HEALTHCONNECT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get HEALTHCONNECT_SERVICE => + _id_HEALTHCONNECT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_INPUT_METHOD_SERVICE = _class.staticFieldId( + r'INPUT_METHOD_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String INPUT_METHOD_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get INPUT_METHOD_SERVICE => + _id_INPUT_METHOD_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_INPUT_SERVICE = _class.staticFieldId( + r'INPUT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String INPUT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get INPUT_SERVICE => + _id_INPUT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_IPSEC_SERVICE = _class.staticFieldId( + r'IPSEC_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String IPSEC_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get IPSEC_SERVICE => + _id_IPSEC_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_JOB_SCHEDULER_SERVICE = _class.staticFieldId( + r'JOB_SCHEDULER_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String JOB_SCHEDULER_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get JOB_SCHEDULER_SERVICE => + _id_JOB_SCHEDULER_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_KEYGUARD_SERVICE = _class.staticFieldId( + r'KEYGUARD_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String KEYGUARD_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get KEYGUARD_SERVICE => + _id_KEYGUARD_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_KEYSTORE_SERVICE = _class.staticFieldId( + r'KEYSTORE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String KEYSTORE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get KEYSTORE_SERVICE => + _id_KEYSTORE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_LAUNCHER_APPS_SERVICE = _class.staticFieldId( + r'LAUNCHER_APPS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String LAUNCHER_APPS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get LAUNCHER_APPS_SERVICE => + _id_LAUNCHER_APPS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_LAYOUT_INFLATER_SERVICE = _class.staticFieldId( + r'LAYOUT_INFLATER_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String LAYOUT_INFLATER_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get LAYOUT_INFLATER_SERVICE => + _id_LAYOUT_INFLATER_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_LOCALE_SERVICE = _class.staticFieldId( + r'LOCALE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String LOCALE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get LOCALE_SERVICE => + _id_LOCALE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_LOCATION_SERVICE = _class.staticFieldId( + r'LOCATION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String LOCATION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get LOCATION_SERVICE => + _id_LOCATION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_COMMUNICATION_SERVICE = _class.staticFieldId( + r'MEDIA_COMMUNICATION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_COMMUNICATION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_COMMUNICATION_SERVICE => + _id_MEDIA_COMMUNICATION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_METRICS_SERVICE = _class.staticFieldId( + r'MEDIA_METRICS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_METRICS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_METRICS_SERVICE => + _id_MEDIA_METRICS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_PROJECTION_SERVICE = _class.staticFieldId( + r'MEDIA_PROJECTION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_PROJECTION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_PROJECTION_SERVICE => + _id_MEDIA_PROJECTION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_QUALITY_SERVICE = _class.staticFieldId( + r'MEDIA_QUALITY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_QUALITY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_QUALITY_SERVICE => + _id_MEDIA_QUALITY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_ROUTER_SERVICE = _class.staticFieldId( + r'MEDIA_ROUTER_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_ROUTER_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_ROUTER_SERVICE => + _id_MEDIA_ROUTER_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_SESSION_SERVICE = _class.staticFieldId( + r'MEDIA_SESSION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_SESSION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_SESSION_SERVICE => + _id_MEDIA_SESSION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MIDI_SERVICE = _class.staticFieldId( + r'MIDI_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MIDI_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MIDI_SERVICE => + _id_MIDI_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public final int MODE_APPEND` + static const MODE_APPEND = 32768; + + /// from: `static public final int MODE_ENABLE_WRITE_AHEAD_LOGGING` + static const MODE_ENABLE_WRITE_AHEAD_LOGGING = 8; + + /// from: `static public final int MODE_MULTI_PROCESS` + static const MODE_MULTI_PROCESS = 4; + + /// from: `static public final int MODE_NO_LOCALIZED_COLLATORS` + static const MODE_NO_LOCALIZED_COLLATORS = 16; + + /// from: `static public final int MODE_PRIVATE` + static const MODE_PRIVATE = 0; + + /// from: `static public final int MODE_WORLD_READABLE` + static const MODE_WORLD_READABLE = 1; + + /// from: `static public final int MODE_WORLD_WRITEABLE` + static const MODE_WORLD_WRITEABLE = 2; + static final _id_NETWORK_STATS_SERVICE = _class.staticFieldId( + r'NETWORK_STATS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String NETWORK_STATS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get NETWORK_STATS_SERVICE => + _id_NETWORK_STATS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_NFC_SERVICE = _class.staticFieldId( + r'NFC_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String NFC_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get NFC_SERVICE => + _id_NFC_SERVICE.getNullable(_class, jni$_.JString.type) as jni$_.JString?; + + static final _id_NOTIFICATION_SERVICE = _class.staticFieldId( + r'NOTIFICATION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String NOTIFICATION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get NOTIFICATION_SERVICE => + _id_NOTIFICATION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_NSD_SERVICE = _class.staticFieldId( + r'NSD_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String NSD_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get NSD_SERVICE => + _id_NSD_SERVICE.getNullable(_class, jni$_.JString.type) as jni$_.JString?; + + static final _id_OVERLAY_SERVICE = _class.staticFieldId( + r'OVERLAY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String OVERLAY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get OVERLAY_SERVICE => + _id_OVERLAY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_PEOPLE_SERVICE = _class.staticFieldId( + r'PEOPLE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String PEOPLE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get PEOPLE_SERVICE => + _id_PEOPLE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_PERFORMANCE_HINT_SERVICE = _class.staticFieldId( + r'PERFORMANCE_HINT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String PERFORMANCE_HINT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get PERFORMANCE_HINT_SERVICE => + _id_PERFORMANCE_HINT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_PERSISTENT_DATA_BLOCK_SERVICE = _class.staticFieldId( + r'PERSISTENT_DATA_BLOCK_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String PERSISTENT_DATA_BLOCK_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get PERSISTENT_DATA_BLOCK_SERVICE => + _id_PERSISTENT_DATA_BLOCK_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_POWER_SERVICE = _class.staticFieldId( + r'POWER_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String POWER_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get POWER_SERVICE => + _id_POWER_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_PRINT_SERVICE = _class.staticFieldId( + r'PRINT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String PRINT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get PRINT_SERVICE => + _id_PRINT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_PROFILING_SERVICE = _class.staticFieldId( + r'PROFILING_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String PROFILING_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get PROFILING_SERVICE => + _id_PROFILING_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public final int RECEIVER_EXPORTED` + static const RECEIVER_EXPORTED = 2; + + /// from: `static public final int RECEIVER_NOT_EXPORTED` + static const RECEIVER_NOT_EXPORTED = 4; + + /// from: `static public final int RECEIVER_VISIBLE_TO_INSTANT_APPS` + static const RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; + static final _id_RESTRICTIONS_SERVICE = _class.staticFieldId( + r'RESTRICTIONS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String RESTRICTIONS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get RESTRICTIONS_SERVICE => + _id_RESTRICTIONS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_ROLE_SERVICE = _class.staticFieldId( + r'ROLE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String ROLE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get ROLE_SERVICE => + _id_ROLE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_SATELLITE_SERVICE = _class.staticFieldId( + r'SATELLITE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String SATELLITE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get SATELLITE_SERVICE => + _id_SATELLITE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_SEARCH_SERVICE = _class.staticFieldId( + r'SEARCH_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String SEARCH_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get SEARCH_SERVICE => + _id_SEARCH_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_SECURITY_STATE_SERVICE = _class.staticFieldId( + r'SECURITY_STATE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String SECURITY_STATE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get SECURITY_STATE_SERVICE => + _id_SECURITY_STATE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_SENSOR_SERVICE = _class.staticFieldId( + r'SENSOR_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String SENSOR_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get SENSOR_SERVICE => + _id_SENSOR_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_SHORTCUT_SERVICE = _class.staticFieldId( + r'SHORTCUT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String SHORTCUT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get SHORTCUT_SERVICE => + _id_SHORTCUT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_STATUS_BAR_SERVICE = _class.staticFieldId( + r'STATUS_BAR_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String STATUS_BAR_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get STATUS_BAR_SERVICE => + _id_STATUS_BAR_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_STORAGE_SERVICE = _class.staticFieldId( + r'STORAGE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String STORAGE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get STORAGE_SERVICE => + _id_STORAGE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_STORAGE_STATS_SERVICE = _class.staticFieldId( + r'STORAGE_STATS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String STORAGE_STATS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get STORAGE_STATS_SERVICE => + _id_STORAGE_STATS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_SYSTEM_HEALTH_SERVICE = _class.staticFieldId( + r'SYSTEM_HEALTH_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String SYSTEM_HEALTH_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get SYSTEM_HEALTH_SERVICE => + _id_SYSTEM_HEALTH_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TELECOM_SERVICE = _class.staticFieldId( + r'TELECOM_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TELECOM_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TELECOM_SERVICE => + _id_TELECOM_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TELEPHONY_IMS_SERVICE = _class.staticFieldId( + r'TELEPHONY_IMS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TELEPHONY_IMS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TELEPHONY_IMS_SERVICE => + _id_TELEPHONY_IMS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TELEPHONY_SERVICE = _class.staticFieldId( + r'TELEPHONY_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TELEPHONY_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TELEPHONY_SERVICE => + _id_TELEPHONY_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TELEPHONY_SUBSCRIPTION_SERVICE = _class.staticFieldId( + r'TELEPHONY_SUBSCRIPTION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TELEPHONY_SUBSCRIPTION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TELEPHONY_SUBSCRIPTION_SERVICE => + _id_TELEPHONY_SUBSCRIPTION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TETHERING_SERVICE = _class.staticFieldId( + r'TETHERING_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TETHERING_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TETHERING_SERVICE => + _id_TETHERING_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TEXT_CLASSIFICATION_SERVICE = _class.staticFieldId( + r'TEXT_CLASSIFICATION_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TEXT_CLASSIFICATION_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TEXT_CLASSIFICATION_SERVICE => + _id_TEXT_CLASSIFICATION_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TEXT_SERVICES_MANAGER_SERVICE = _class.staticFieldId( + r'TEXT_SERVICES_MANAGER_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TEXT_SERVICES_MANAGER_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TEXT_SERVICES_MANAGER_SERVICE => + _id_TEXT_SERVICES_MANAGER_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TV_AD_SERVICE = _class.staticFieldId( + r'TV_AD_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TV_AD_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TV_AD_SERVICE => + _id_TV_AD_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TV_INPUT_SERVICE = _class.staticFieldId( + r'TV_INPUT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TV_INPUT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TV_INPUT_SERVICE => + _id_TV_INPUT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_TV_INTERACTIVE_APP_SERVICE = _class.staticFieldId( + r'TV_INTERACTIVE_APP_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String TV_INTERACTIVE_APP_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get TV_INTERACTIVE_APP_SERVICE => + _id_TV_INTERACTIVE_APP_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_UI_MODE_SERVICE = _class.staticFieldId( + r'UI_MODE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String UI_MODE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get UI_MODE_SERVICE => + _id_UI_MODE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_USAGE_STATS_SERVICE = _class.staticFieldId( + r'USAGE_STATS_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String USAGE_STATS_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get USAGE_STATS_SERVICE => + _id_USAGE_STATS_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_USB_SERVICE = _class.staticFieldId( + r'USB_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String USB_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get USB_SERVICE => + _id_USB_SERVICE.getNullable(_class, jni$_.JString.type) as jni$_.JString?; + + static final _id_USER_SERVICE = _class.staticFieldId( + r'USER_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String USER_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get USER_SERVICE => + _id_USER_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_VIBRATOR_MANAGER_SERVICE = _class.staticFieldId( + r'VIBRATOR_MANAGER_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String VIBRATOR_MANAGER_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get VIBRATOR_MANAGER_SERVICE => + _id_VIBRATOR_MANAGER_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_VIBRATOR_SERVICE = _class.staticFieldId( + r'VIBRATOR_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String VIBRATOR_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get VIBRATOR_SERVICE => + _id_VIBRATOR_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_VIRTUAL_DEVICE_SERVICE = _class.staticFieldId( + r'VIRTUAL_DEVICE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String VIRTUAL_DEVICE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get VIRTUAL_DEVICE_SERVICE => + _id_VIRTUAL_DEVICE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_VPN_MANAGEMENT_SERVICE = _class.staticFieldId( + r'VPN_MANAGEMENT_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String VPN_MANAGEMENT_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get VPN_MANAGEMENT_SERVICE => + _id_VPN_MANAGEMENT_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_WALLPAPER_SERVICE = _class.staticFieldId( + r'WALLPAPER_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String WALLPAPER_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get WALLPAPER_SERVICE => + _id_WALLPAPER_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_WIFI_AWARE_SERVICE = _class.staticFieldId( + r'WIFI_AWARE_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String WIFI_AWARE_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get WIFI_AWARE_SERVICE => + _id_WIFI_AWARE_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_WIFI_P2P_SERVICE = _class.staticFieldId( + r'WIFI_P2P_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String WIFI_P2P_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get WIFI_P2P_SERVICE => + _id_WIFI_P2P_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_WIFI_RTT_RANGING_SERVICE = _class.staticFieldId( + r'WIFI_RTT_RANGING_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String WIFI_RTT_RANGING_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get WIFI_RTT_RANGING_SERVICE => + _id_WIFI_RTT_RANGING_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_WIFI_SERVICE = _class.staticFieldId( + r'WIFI_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String WIFI_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get WIFI_SERVICE => + _id_WIFI_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_WINDOW_SERVICE = _class.staticFieldId( + r'WINDOW_SERVICE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String WINDOW_SERVICE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get WINDOW_SERVICE => + _id_WINDOW_SERVICE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; +} + +extension Context$$Methods on Context { + static final _id_bindIsolatedService = Context._class.instanceMethodId( + r'bindIsolatedService', + r'(Landroid/content/Intent;Landroid/content/Context$BindServiceFlags;Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z', + ); + + static final _bindIsolatedService = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public boolean bindIsolatedService(android.content.Intent intent, android.content.Context$BindServiceFlags bindServiceFlags, java.lang.String string, java.util.concurrent.Executor executor, android.content.ServiceConnection serviceConnection)` + core$_.bool bindIsolatedService( + jni$_.JObject? intent, + Context$BindServiceFlags? bindServiceFlags, + jni$_.JString? string, + jni$_.JObject? executor, + jni$_.JObject? serviceConnection, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$bindServiceFlags = + bindServiceFlags?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$executor = executor?.reference ?? jni$_.jNullReference; + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + return _bindIsolatedService( + reference.pointer, + _id_bindIsolatedService.pointer, + _$intent.pointer, + _$bindServiceFlags.pointer, + _$string.pointer, + _$executor.pointer, + _$serviceConnection.pointer, + ).boolean; + } + + static final _id_bindIsolatedService$1 = Context._class.instanceMethodId( + r'bindIsolatedService', + r'(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z', + ); + + static final _bindIsolatedService$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public boolean bindIsolatedService(android.content.Intent intent, int i, java.lang.String string, java.util.concurrent.Executor executor, android.content.ServiceConnection serviceConnection)` + core$_.bool bindIsolatedService$1( + jni$_.JObject? intent, + core$_.int i, + jni$_.JString? string, + jni$_.JObject? executor, + jni$_.JObject? serviceConnection, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$executor = executor?.reference ?? jni$_.jNullReference; + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + return _bindIsolatedService$1( + reference.pointer, + _id_bindIsolatedService$1.pointer, + _$intent.pointer, + i, + _$string.pointer, + _$executor.pointer, + _$serviceConnection.pointer, + ).boolean; + } + + static final _id_bindService = Context._class.instanceMethodId( + r'bindService', + r'(Landroid/content/Intent;Landroid/content/Context$BindServiceFlags;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z', + ); + + static final _bindService = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public boolean bindService(android.content.Intent intent, android.content.Context$BindServiceFlags bindServiceFlags, java.util.concurrent.Executor executor, android.content.ServiceConnection serviceConnection)` + core$_.bool bindService( + jni$_.JObject? intent, + Context$BindServiceFlags? bindServiceFlags, + jni$_.JObject? executor, + jni$_.JObject? serviceConnection, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$bindServiceFlags = + bindServiceFlags?.reference ?? jni$_.jNullReference; + final _$executor = executor?.reference ?? jni$_.jNullReference; + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + return _bindService( + reference.pointer, + _id_bindService.pointer, + _$intent.pointer, + _$bindServiceFlags.pointer, + _$executor.pointer, + _$serviceConnection.pointer, + ).boolean; + } + + static final _id_bindService$1 = Context._class.instanceMethodId( + r'bindService', + r'(Landroid/content/Intent;Landroid/content/ServiceConnection;Landroid/content/Context$BindServiceFlags;)Z', + ); + + static final _bindService$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public boolean bindService(android.content.Intent intent, android.content.ServiceConnection serviceConnection, android.content.Context$BindServiceFlags bindServiceFlags)` + core$_.bool bindService$1( + jni$_.JObject? intent, + jni$_.JObject? serviceConnection, + Context$BindServiceFlags? bindServiceFlags, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + final _$bindServiceFlags = + bindServiceFlags?.reference ?? jni$_.jNullReference; + return _bindService$1( + reference.pointer, + _id_bindService$1.pointer, + _$intent.pointer, + _$serviceConnection.pointer, + _$bindServiceFlags.pointer, + ).boolean; + } + + static final _id_bindService$2 = Context._class.instanceMethodId( + r'bindService', + r'(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z', + ); + + static final _bindService$2 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract boolean bindService(android.content.Intent intent, android.content.ServiceConnection serviceConnection, int i)` + core$_.bool bindService$2( + jni$_.JObject? intent, + jni$_.JObject? serviceConnection, + core$_.int i, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + return _bindService$2( + reference.pointer, + _id_bindService$2.pointer, + _$intent.pointer, + _$serviceConnection.pointer, + i, + ).boolean; + } + + static final _id_bindService$3 = Context._class.instanceMethodId( + r'bindService', + r'(Landroid/content/Intent;ILjava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z', + ); + + static final _bindService$3 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public boolean bindService(android.content.Intent intent, int i, java.util.concurrent.Executor executor, android.content.ServiceConnection serviceConnection)` + core$_.bool bindService$3( + jni$_.JObject? intent, + core$_.int i, + jni$_.JObject? executor, + jni$_.JObject? serviceConnection, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$executor = executor?.reference ?? jni$_.jNullReference; + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + return _bindService$3( + reference.pointer, + _id_bindService$3.pointer, + _$intent.pointer, + i, + _$executor.pointer, + _$serviceConnection.pointer, + ).boolean; + } + + static final _id_bindServiceAsUser = Context._class.instanceMethodId( + r'bindServiceAsUser', + r'(Landroid/content/Intent;Landroid/content/ServiceConnection;Landroid/content/Context$BindServiceFlags;Landroid/os/UserHandle;)Z', + ); + + static final _bindServiceAsUser = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public boolean bindServiceAsUser(android.content.Intent intent, android.content.ServiceConnection serviceConnection, android.content.Context$BindServiceFlags bindServiceFlags, android.os.UserHandle userHandle)` + core$_.bool bindServiceAsUser( + jni$_.JObject? intent, + jni$_.JObject? serviceConnection, + Context$BindServiceFlags? bindServiceFlags, + jni$_.JObject? userHandle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + final _$bindServiceFlags = + bindServiceFlags?.reference ?? jni$_.jNullReference; + final _$userHandle = userHandle?.reference ?? jni$_.jNullReference; + return _bindServiceAsUser( + reference.pointer, + _id_bindServiceAsUser.pointer, + _$intent.pointer, + _$serviceConnection.pointer, + _$bindServiceFlags.pointer, + _$userHandle.pointer, + ).boolean; + } + + static final _id_bindServiceAsUser$1 = Context._class.instanceMethodId( + r'bindServiceAsUser', + r'(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z', + ); + + static final _bindServiceAsUser$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public boolean bindServiceAsUser(android.content.Intent intent, android.content.ServiceConnection serviceConnection, int i, android.os.UserHandle userHandle)` + core$_.bool bindServiceAsUser$1( + jni$_.JObject? intent, + jni$_.JObject? serviceConnection, + core$_.int i, + jni$_.JObject? userHandle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + final _$userHandle = userHandle?.reference ?? jni$_.jNullReference; + return _bindServiceAsUser$1( + reference.pointer, + _id_bindServiceAsUser$1.pointer, + _$intent.pointer, + _$serviceConnection.pointer, + i, + _$userHandle.pointer, + ).boolean; + } + + static final _id_checkCallingOrSelfPermission = Context._class + .instanceMethodId( + r'checkCallingOrSelfPermission', + r'(Ljava/lang/String;)I', + ); + + static final _checkCallingOrSelfPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract int checkCallingOrSelfPermission(java.lang.String string)` + core$_.int checkCallingOrSelfPermission(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _checkCallingOrSelfPermission( + reference.pointer, + _id_checkCallingOrSelfPermission.pointer, + _$string.pointer, + ).integer; + } + + static final _id_checkCallingOrSelfUriPermission = Context._class + .instanceMethodId( + r'checkCallingOrSelfUriPermission', + r'(Landroid/net/Uri;I)I', + ); + + static final _checkCallingOrSelfUriPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer, jni$_.Int32)>, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract int checkCallingOrSelfUriPermission(android.net.Uri uri, int i)` + core$_.int checkCallingOrSelfUriPermission(jni$_.JObject? uri, core$_.int i) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + return _checkCallingOrSelfUriPermission( + reference.pointer, + _id_checkCallingOrSelfUriPermission.pointer, + _$uri.pointer, + i, + ).integer; + } + + static final _id_checkCallingOrSelfUriPermissions = Context._class + .instanceMethodId( + r'checkCallingOrSelfUriPermissions', + r'(Ljava/util/List;I)[I', + ); + + static final _checkCallingOrSelfUriPermissions = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer, jni$_.Int32)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public int[] checkCallingOrSelfUriPermissions(java.util.List list, int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JIntArray? checkCallingOrSelfUriPermissions( + jni$_.JList? list, + core$_.int i, + ) { + final _$list = list?.reference ?? jni$_.jNullReference; + return _checkCallingOrSelfUriPermissions( + reference.pointer, + _id_checkCallingOrSelfUriPermissions.pointer, + _$list.pointer, + i, + ).object(); + } + + static final _id_checkCallingPermission = Context._class.instanceMethodId( + r'checkCallingPermission', + r'(Ljava/lang/String;)I', + ); + + static final _checkCallingPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract int checkCallingPermission(java.lang.String string)` + core$_.int checkCallingPermission(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _checkCallingPermission( + reference.pointer, + _id_checkCallingPermission.pointer, + _$string.pointer, + ).integer; + } + + static final _id_checkCallingUriPermission = Context._class.instanceMethodId( + r'checkCallingUriPermission', + r'(Landroid/net/Uri;I)I', + ); + + static final _checkCallingUriPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer, jni$_.Int32)>, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract int checkCallingUriPermission(android.net.Uri uri, int i)` + core$_.int checkCallingUriPermission(jni$_.JObject? uri, core$_.int i) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + return _checkCallingUriPermission( + reference.pointer, + _id_checkCallingUriPermission.pointer, + _$uri.pointer, + i, + ).integer; + } + + static final _id_checkCallingUriPermissions = Context._class.instanceMethodId( + r'checkCallingUriPermissions', + r'(Ljava/util/List;I)[I', + ); + + static final _checkCallingUriPermissions = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer, jni$_.Int32)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public int[] checkCallingUriPermissions(java.util.List list, int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JIntArray? checkCallingUriPermissions( + jni$_.JList? list, + core$_.int i, + ) { + final _$list = list?.reference ?? jni$_.jNullReference; + return _checkCallingUriPermissions( + reference.pointer, + _id_checkCallingUriPermissions.pointer, + _$list.pointer, + i, + ).object(); + } + + static final _id_checkContentUriPermissionFull = Context._class + .instanceMethodId( + r'checkContentUriPermissionFull', + r'(Landroid/net/Uri;III)I', + ); + + static final _checkContentUriPermissionFull = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public int checkContentUriPermissionFull(android.net.Uri uri, int i, int i1, int i2)` + core$_.int checkContentUriPermissionFull( + jni$_.JObject? uri, + core$_.int i, + core$_.int i1, + core$_.int i2, + ) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + return _checkContentUriPermissionFull( + reference.pointer, + _id_checkContentUriPermissionFull.pointer, + _$uri.pointer, + i, + i1, + i2, + ).integer; + } + + static final _id_checkPermission = Context._class.instanceMethodId( + r'checkPermission', + r'(Ljava/lang/String;II)I', + ); + + static final _checkPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Int32, jni$_.Int32) + >, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public abstract int checkPermission(java.lang.String string, int i, int i1)` + core$_.int checkPermission( + jni$_.JString? string, + core$_.int i, + core$_.int i1, + ) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _checkPermission( + reference.pointer, + _id_checkPermission.pointer, + _$string.pointer, + i, + i1, + ).integer; + } + + static final _id_checkSelfPermission = Context._class.instanceMethodId( + r'checkSelfPermission', + r'(Ljava/lang/String;)I', + ); + + static final _checkSelfPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract int checkSelfPermission(java.lang.String string)` + core$_.int checkSelfPermission(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _checkSelfPermission( + reference.pointer, + _id_checkSelfPermission.pointer, + _$string.pointer, + ).integer; + } + + static final _id_checkUriPermission = Context._class.instanceMethodId( + r'checkUriPermission', + r'(Landroid/net/Uri;III)I', + ); + + static final _checkUriPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public abstract int checkUriPermission(android.net.Uri uri, int i, int i1, int i2)` + core$_.int checkUriPermission( + jni$_.JObject? uri, + core$_.int i, + core$_.int i1, + core$_.int i2, + ) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + return _checkUriPermission( + reference.pointer, + _id_checkUriPermission.pointer, + _$uri.pointer, + i, + i1, + i2, + ).integer; + } + + static final _id_checkUriPermission$1 = Context._class.instanceMethodId( + r'checkUriPermission', + r'(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;III)I', + ); + + static final _checkUriPermission$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public abstract int checkUriPermission(android.net.Uri uri, java.lang.String string, java.lang.String string1, int i, int i1, int i2)` + core$_.int checkUriPermission$1( + jni$_.JObject? uri, + jni$_.JString? string, + jni$_.JString? string1, + core$_.int i, + core$_.int i1, + core$_.int i2, + ) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + return _checkUriPermission$1( + reference.pointer, + _id_checkUriPermission$1.pointer, + _$uri.pointer, + _$string.pointer, + _$string1.pointer, + i, + i1, + i2, + ).integer; + } + + static final _id_checkUriPermissions = Context._class.instanceMethodId( + r'checkUriPermissions', + r'(Ljava/util/List;III)[I', + ); + + static final _checkUriPermissions = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public int[] checkUriPermissions(java.util.List list, int i, int i1, int i2)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JIntArray? checkUriPermissions( + jni$_.JList? list, + core$_.int i, + core$_.int i1, + core$_.int i2, + ) { + final _$list = list?.reference ?? jni$_.jNullReference; + return _checkUriPermissions( + reference.pointer, + _id_checkUriPermissions.pointer, + _$list.pointer, + i, + i1, + i2, + ).object(); + } + + static final _id_clearWallpaper = Context._class.instanceMethodId( + r'clearWallpaper', + r'()V', + ); + + static final _clearWallpaper = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract void clearWallpaper()` + void clearWallpaper() { + _clearWallpaper(reference.pointer, _id_clearWallpaper.pointer).check(); + } + + static final _id_createAttributionContext = Context._class.instanceMethodId( + r'createAttributionContext', + r'(Ljava/lang/String;)Landroid/content/Context;', + ); + + static final _createAttributionContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public android.content.Context createAttributionContext(java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + Context? createAttributionContext(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _createAttributionContext( + reference.pointer, + _id_createAttributionContext.pointer, + _$string.pointer, + ).object(); + } + + static final _id_createConfigurationContext = Context._class.instanceMethodId( + r'createConfigurationContext', + r'(Landroid/content/res/Configuration;)Landroid/content/Context;', + ); + + static final _createConfigurationContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract android.content.Context createConfigurationContext(android.content.res.Configuration configuration)` + /// The returned object must be released after use, by calling the [release] method. + Context? createConfigurationContext(jni$_.JObject? configuration) { + final _$configuration = configuration?.reference ?? jni$_.jNullReference; + return _createConfigurationContext( + reference.pointer, + _id_createConfigurationContext.pointer, + _$configuration.pointer, + ).object(); + } + + static final _id_createContext = Context._class.instanceMethodId( + r'createContext', + r'(Landroid/content/ContextParams;)Landroid/content/Context;', + ); + + static final _createContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public android.content.Context createContext(android.content.ContextParams contextParams)` + /// The returned object must be released after use, by calling the [release] method. + Context? createContext(jni$_.JObject? contextParams) { + final _$contextParams = contextParams?.reference ?? jni$_.jNullReference; + return _createContext( + reference.pointer, + _id_createContext.pointer, + _$contextParams.pointer, + ).object(); + } + + static final _id_createContextForSplit = Context._class.instanceMethodId( + r'createContextForSplit', + r'(Ljava/lang/String;)Landroid/content/Context;', + ); + + static final _createContextForSplit = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract android.content.Context createContextForSplit(java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + Context? createContextForSplit(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _createContextForSplit( + reference.pointer, + _id_createContextForSplit.pointer, + _$string.pointer, + ).object(); + } + + static final _id_createDeviceContext = Context._class.instanceMethodId( + r'createDeviceContext', + r'(I)Landroid/content/Context;', + ); + + static final _createDeviceContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public android.content.Context createDeviceContext(int i)` + /// The returned object must be released after use, by calling the [release] method. + Context? createDeviceContext(core$_.int i) { + return _createDeviceContext( + reference.pointer, + _id_createDeviceContext.pointer, + i, + ).object(); + } + + static final _id_createDeviceProtectedStorageContext = Context._class + .instanceMethodId( + r'createDeviceProtectedStorageContext', + r'()Landroid/content/Context;', + ); + + static final _createDeviceProtectedStorageContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.content.Context createDeviceProtectedStorageContext()` + /// The returned object must be released after use, by calling the [release] method. + Context? createDeviceProtectedStorageContext() { + return _createDeviceProtectedStorageContext( + reference.pointer, + _id_createDeviceProtectedStorageContext.pointer, + ).object(); + } + + static final _id_createDisplayContext = Context._class.instanceMethodId( + r'createDisplayContext', + r'(Landroid/view/Display;)Landroid/content/Context;', + ); + + static final _createDisplayContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract android.content.Context createDisplayContext(android.view.Display display)` + /// The returned object must be released after use, by calling the [release] method. + Context? createDisplayContext(jni$_.JObject? display) { + final _$display = display?.reference ?? jni$_.jNullReference; + return _createDisplayContext( + reference.pointer, + _id_createDisplayContext.pointer, + _$display.pointer, + ).object(); + } + + static final _id_createPackageContext = Context._class.instanceMethodId( + r'createPackageContext', + r'(Ljava/lang/String;I)Landroid/content/Context;', + ); + + static final _createPackageContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer, jni$_.Int32)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract android.content.Context createPackageContext(java.lang.String string, int i)` + /// The returned object must be released after use, by calling the [release] method. + Context? createPackageContext(jni$_.JString? string, core$_.int i) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _createPackageContext( + reference.pointer, + _id_createPackageContext.pointer, + _$string.pointer, + i, + ).object(); + } + + static final _id_createWindowContext = Context._class.instanceMethodId( + r'createWindowContext', + r'(Landroid/view/Display;ILandroid/os/Bundle;)Landroid/content/Context;', + ); + + static final _createWindowContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public android.content.Context createWindowContext(android.view.Display display, int i, android.os.Bundle bundle)` + /// The returned object must be released after use, by calling the [release] method. + Context? createWindowContext( + jni$_.JObject? display, + core$_.int i, + jni$_.JObject? bundle, + ) { + final _$display = display?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + return _createWindowContext( + reference.pointer, + _id_createWindowContext.pointer, + _$display.pointer, + i, + _$bundle.pointer, + ).object(); + } + + static final _id_createWindowContext$1 = Context._class.instanceMethodId( + r'createWindowContext', + r'(ILandroid/os/Bundle;)Landroid/content/Context;', + ); + + static final _createWindowContext$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32, jni$_.Pointer)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public android.content.Context createWindowContext(int i, android.os.Bundle bundle)` + /// The returned object must be released after use, by calling the [release] method. + Context? createWindowContext$1(core$_.int i, jni$_.JObject? bundle) { + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + return _createWindowContext$1( + reference.pointer, + _id_createWindowContext$1.pointer, + i, + _$bundle.pointer, + ).object(); + } + + static final _id_databaseList = Context._class.instanceMethodId( + r'databaseList', + r'()[Ljava/lang/String;', + ); + + static final _databaseList = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.lang.String[] databaseList()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? databaseList() { + return _databaseList( + reference.pointer, + _id_databaseList.pointer, + ).object?>(); + } + + static final _id_deleteDatabase = Context._class.instanceMethodId( + r'deleteDatabase', + r'(Ljava/lang/String;)Z', + ); + + static final _deleteDatabase = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract boolean deleteDatabase(java.lang.String string)` + core$_.bool deleteDatabase(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _deleteDatabase( + reference.pointer, + _id_deleteDatabase.pointer, + _$string.pointer, + ).boolean; + } + + static final _id_deleteFile = Context._class.instanceMethodId( + r'deleteFile', + r'(Ljava/lang/String;)Z', + ); + + static final _deleteFile = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract boolean deleteFile(java.lang.String string)` + core$_.bool deleteFile(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _deleteFile( + reference.pointer, + _id_deleteFile.pointer, + _$string.pointer, + ).boolean; + } + + static final _id_deleteSharedPreferences = Context._class.instanceMethodId( + r'deleteSharedPreferences', + r'(Ljava/lang/String;)Z', + ); + + static final _deleteSharedPreferences = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract boolean deleteSharedPreferences(java.lang.String string)` + core$_.bool deleteSharedPreferences(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _deleteSharedPreferences( + reference.pointer, + _id_deleteSharedPreferences.pointer, + _$string.pointer, + ).boolean; + } + + static final _id_enforceCallingOrSelfPermission = Context._class + .instanceMethodId( + r'enforceCallingOrSelfPermission', + r'(Ljava/lang/String;Ljava/lang/String;)V', + ); + + static final _enforceCallingOrSelfPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void enforceCallingOrSelfPermission(java.lang.String string, java.lang.String string1)` + void enforceCallingOrSelfPermission( + jni$_.JString? string, + jni$_.JString? string1, + ) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + _enforceCallingOrSelfPermission( + reference.pointer, + _id_enforceCallingOrSelfPermission.pointer, + _$string.pointer, + _$string1.pointer, + ).check(); + } + + static final _id_enforceCallingOrSelfUriPermission = Context._class + .instanceMethodId( + r'enforceCallingOrSelfUriPermission', + r'(Landroid/net/Uri;ILjava/lang/String;)V', + ); + + static final _enforceCallingOrSelfUriPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void enforceCallingOrSelfUriPermission(android.net.Uri uri, int i, java.lang.String string)` + void enforceCallingOrSelfUriPermission( + jni$_.JObject? uri, + core$_.int i, + jni$_.JString? string, + ) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + _enforceCallingOrSelfUriPermission( + reference.pointer, + _id_enforceCallingOrSelfUriPermission.pointer, + _$uri.pointer, + i, + _$string.pointer, + ).check(); + } + + static final _id_enforceCallingPermission = Context._class.instanceMethodId( + r'enforceCallingPermission', + r'(Ljava/lang/String;Ljava/lang/String;)V', + ); + + static final _enforceCallingPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void enforceCallingPermission(java.lang.String string, java.lang.String string1)` + void enforceCallingPermission(jni$_.JString? string, jni$_.JString? string1) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + _enforceCallingPermission( + reference.pointer, + _id_enforceCallingPermission.pointer, + _$string.pointer, + _$string1.pointer, + ).check(); + } + + static final _id_enforceCallingUriPermission = Context._class + .instanceMethodId( + r'enforceCallingUriPermission', + r'(Landroid/net/Uri;ILjava/lang/String;)V', + ); + + static final _enforceCallingUriPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void enforceCallingUriPermission(android.net.Uri uri, int i, java.lang.String string)` + void enforceCallingUriPermission( + jni$_.JObject? uri, + core$_.int i, + jni$_.JString? string, + ) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + _enforceCallingUriPermission( + reference.pointer, + _id_enforceCallingUriPermission.pointer, + _$uri.pointer, + i, + _$string.pointer, + ).check(); + } + + static final _id_enforcePermission = Context._class.instanceMethodId( + r'enforcePermission', + r'(Ljava/lang/String;IILjava/lang/String;)V', + ); + + static final _enforcePermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void enforcePermission(java.lang.String string, int i, int i1, java.lang.String string1)` + void enforcePermission( + jni$_.JString? string, + core$_.int i, + core$_.int i1, + jni$_.JString? string1, + ) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + _enforcePermission( + reference.pointer, + _id_enforcePermission.pointer, + _$string.pointer, + i, + i1, + _$string1.pointer, + ).check(); + } + + static final _id_enforceUriPermission = Context._class.instanceMethodId( + r'enforceUriPermission', + r'(Landroid/net/Uri;IIILjava/lang/String;)V', + ); + + static final _enforceUriPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + jni$_.Int32, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + core$_.int, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void enforceUriPermission(android.net.Uri uri, int i, int i1, int i2, java.lang.String string)` + void enforceUriPermission( + jni$_.JObject? uri, + core$_.int i, + core$_.int i1, + core$_.int i2, + jni$_.JString? string, + ) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + _enforceUriPermission( + reference.pointer, + _id_enforceUriPermission.pointer, + _$uri.pointer, + i, + i1, + i2, + _$string.pointer, + ).check(); + } + + static final _id_enforceUriPermission$1 = Context._class.instanceMethodId( + r'enforceUriPermission', + r'(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V', + ); + + static final _enforceUriPermission$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + jni$_.Int32, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + core$_.int, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void enforceUriPermission(android.net.Uri uri, java.lang.String string, java.lang.String string1, int i, int i1, int i2, java.lang.String string2)` + void enforceUriPermission$1( + jni$_.JObject? uri, + jni$_.JString? string, + jni$_.JString? string1, + core$_.int i, + core$_.int i1, + core$_.int i2, + jni$_.JString? string2, + ) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + final _$string2 = string2?.reference ?? jni$_.jNullReference; + _enforceUriPermission$1( + reference.pointer, + _id_enforceUriPermission$1.pointer, + _$uri.pointer, + _$string.pointer, + _$string1.pointer, + i, + i1, + i2, + _$string2.pointer, + ).check(); + } + + static final _id_fileList = Context._class.instanceMethodId( + r'fileList', + r'()[Ljava/lang/String;', + ); + + static final _fileList = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.lang.String[] fileList()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? fileList() { + return _fileList( + reference.pointer, + _id_fileList.pointer, + ).object?>(); + } + + static final _id_get$applicationContext = Context._class.instanceMethodId( + r'getApplicationContext', + r'()Landroid/content/Context;', + ); + + static final _get$applicationContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.content.Context getApplicationContext()` + /// The returned object must be released after use, by calling the [release] method. + Context? get applicationContext { + return _get$applicationContext( + reference.pointer, + _id_get$applicationContext.pointer, + ).object(); + } + + static final _id_get$applicationInfo = Context._class.instanceMethodId( + r'getApplicationInfo', + r'()Landroid/content/pm/ApplicationInfo;', + ); + + static final _get$applicationInfo = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.content.pm.ApplicationInfo getApplicationInfo()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get applicationInfo { + return _get$applicationInfo( + reference.pointer, + _id_get$applicationInfo.pointer, + ).object(); + } + + static final _id_get$assets = Context._class.instanceMethodId( + r'getAssets', + r'()Landroid/content/res/AssetManager;', + ); + + static final _get$assets = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.content.res.AssetManager getAssets()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get assets { + return _get$assets( + reference.pointer, + _id_get$assets.pointer, + ).object(); + } + + static final _id_get$attributionSource = Context._class.instanceMethodId( + r'getAttributionSource', + r'()Landroid/content/AttributionSource;', + ); + + static final _get$attributionSource = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public android.content.AttributionSource getAttributionSource()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get attributionSource { + return _get$attributionSource( + reference.pointer, + _id_get$attributionSource.pointer, + ).object(); + } + + static final _id_get$attributionTag = Context._class.instanceMethodId( + r'getAttributionTag', + r'()Ljava/lang/String;', + ); + + static final _get$attributionTag = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.lang.String getAttributionTag()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get attributionTag { + return _get$attributionTag( + reference.pointer, + _id_get$attributionTag.pointer, + ).object(); + } + + static final _id_get$cacheDir = Context._class.instanceMethodId( + r'getCacheDir', + r'()Ljava/io/File;', + ); + + static final _get$cacheDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File getCacheDir()` + /// The returned object must be released after use, by calling the [release] method. + File? get cacheDir { + return _get$cacheDir( + reference.pointer, + _id_get$cacheDir.pointer, + ).object(); + } + + static final _id_get$classLoader = Context._class.instanceMethodId( + r'getClassLoader', + r'()Ljava/lang/ClassLoader;', + ); + + static final _get$classLoader = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.lang.ClassLoader getClassLoader()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get classLoader { + return _get$classLoader( + reference.pointer, + _id_get$classLoader.pointer, + ).object(); + } + + static final _id_get$codeCacheDir = Context._class.instanceMethodId( + r'getCodeCacheDir', + r'()Ljava/io/File;', + ); + + static final _get$codeCacheDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File getCodeCacheDir()` + /// The returned object must be released after use, by calling the [release] method. + File? get codeCacheDir { + return _get$codeCacheDir( + reference.pointer, + _id_get$codeCacheDir.pointer, + ).object(); + } + + static final _id_getColor = Context._class.instanceMethodId( + r'getColor', + r'(I)I', + ); + + static final _getColor = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public final int getColor(int i)` + core$_.int getColor(core$_.int i) { + return _getColor(reference.pointer, _id_getColor.pointer, i).integer; + } + + static final _id_getColorStateList = Context._class.instanceMethodId( + r'getColorStateList', + r'(I)Landroid/content/res/ColorStateList;', + ); + + static final _getColorStateList = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public final android.content.res.ColorStateList getColorStateList(int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? getColorStateList(core$_.int i) { + return _getColorStateList( + reference.pointer, + _id_getColorStateList.pointer, + i, + ).object(); + } + + static final _id_get$contentResolver = Context._class.instanceMethodId( + r'getContentResolver', + r'()Landroid/content/ContentResolver;', + ); + + static final _get$contentResolver = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.content.ContentResolver getContentResolver()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get contentResolver { + return _get$contentResolver( + reference.pointer, + _id_get$contentResolver.pointer, + ).object(); + } + + static final _id_get$dataDir = Context._class.instanceMethodId( + r'getDataDir', + r'()Ljava/io/File;', + ); + + static final _get$dataDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File getDataDir()` + /// The returned object must be released after use, by calling the [release] method. + File? get dataDir { + return _get$dataDir( + reference.pointer, + _id_get$dataDir.pointer, + ).object(); + } + + static final _id_getDatabasePath = Context._class.instanceMethodId( + r'getDatabasePath', + r'(Ljava/lang/String;)Ljava/io/File;', + ); + + static final _getDatabasePath = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract java.io.File getDatabasePath(java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + File? getDatabasePath(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _getDatabasePath( + reference.pointer, + _id_getDatabasePath.pointer, + _$string.pointer, + ).object(); + } + + static final _id_get$deviceId = Context._class.instanceMethodId( + r'getDeviceId', + r'()I', + ); + + static final _get$deviceId = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public int getDeviceId()` + core$_.int get deviceId { + return _get$deviceId(reference.pointer, _id_get$deviceId.pointer).integer; + } + + static final _id_getDir = Context._class.instanceMethodId( + r'getDir', + r'(Ljava/lang/String;I)Ljava/io/File;', + ); + + static final _getDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer, jni$_.Int32)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract java.io.File getDir(java.lang.String string, int i)` + /// The returned object must be released after use, by calling the [release] method. + File? getDir(jni$_.JString? string, core$_.int i) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _getDir( + reference.pointer, + _id_getDir.pointer, + _$string.pointer, + i, + ).object(); + } + + static final _id_get$display = Context._class.instanceMethodId( + r'getDisplay', + r'()Landroid/view/Display;', + ); + + static final _get$display = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public android.view.Display getDisplay()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get display { + return _get$display( + reference.pointer, + _id_get$display.pointer, + ).object(); + } + + static final _id_getDrawable = Context._class.instanceMethodId( + r'getDrawable', + r'(I)Landroid/graphics/drawable/Drawable;', + ); + + static final _getDrawable = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public final android.graphics.drawable.Drawable getDrawable(int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? getDrawable(core$_.int i) { + return _getDrawable( + reference.pointer, + _id_getDrawable.pointer, + i, + ).object(); + } + + static final _id_get$externalCacheDir = Context._class.instanceMethodId( + r'getExternalCacheDir', + r'()Ljava/io/File;', + ); + + static final _get$externalCacheDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File getExternalCacheDir()` + /// The returned object must be released after use, by calling the [release] method. + File? get externalCacheDir { + return _get$externalCacheDir( + reference.pointer, + _id_get$externalCacheDir.pointer, + ).object(); + } + + static final _id_get$externalCacheDirs = Context._class.instanceMethodId( + r'getExternalCacheDirs', + r'()[Ljava/io/File;', + ); + + static final _get$externalCacheDirs = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File[] getExternalCacheDirs()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? get externalCacheDirs { + return _get$externalCacheDirs( + reference.pointer, + _id_get$externalCacheDirs.pointer, + ).object?>(); + } + + static final _id_getExternalFilesDir = Context._class.instanceMethodId( + r'getExternalFilesDir', + r'(Ljava/lang/String;)Ljava/io/File;', + ); + + static final _getExternalFilesDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract java.io.File getExternalFilesDir(java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + File? getExternalFilesDir(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _getExternalFilesDir( + reference.pointer, + _id_getExternalFilesDir.pointer, + _$string.pointer, + ).object(); + } + + static final _id_getExternalFilesDirs = Context._class.instanceMethodId( + r'getExternalFilesDirs', + r'(Ljava/lang/String;)[Ljava/io/File;', + ); + + static final _getExternalFilesDirs = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract java.io.File[] getExternalFilesDirs(java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? getExternalFilesDirs(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _getExternalFilesDirs( + reference.pointer, + _id_getExternalFilesDirs.pointer, + _$string.pointer, + ).object?>(); + } + + static final _id_get$externalMediaDirs = Context._class.instanceMethodId( + r'getExternalMediaDirs', + r'()[Ljava/io/File;', + ); + + static final _get$externalMediaDirs = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File[] getExternalMediaDirs()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? get externalMediaDirs { + return _get$externalMediaDirs( + reference.pointer, + _id_get$externalMediaDirs.pointer, + ).object?>(); + } + + static final _id_getFileStreamPath = Context._class.instanceMethodId( + r'getFileStreamPath', + r'(Ljava/lang/String;)Ljava/io/File;', + ); + + static final _getFileStreamPath = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract java.io.File getFileStreamPath(java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + File? getFileStreamPath(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _getFileStreamPath( + reference.pointer, + _id_getFileStreamPath.pointer, + _$string.pointer, + ).object(); + } + + static final _id_get$filesDir = Context._class.instanceMethodId( + r'getFilesDir', + r'()Ljava/io/File;', + ); + + static final _get$filesDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File getFilesDir()` + /// The returned object must be released after use, by calling the [release] method. + File? get filesDir { + return _get$filesDir( + reference.pointer, + _id_get$filesDir.pointer, + ).object(); + } + + static final _id_get$mainExecutor = Context._class.instanceMethodId( + r'getMainExecutor', + r'()Ljava/util/concurrent/Executor;', + ); + + static final _get$mainExecutor = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.util.concurrent.Executor getMainExecutor()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get mainExecutor { + return _get$mainExecutor( + reference.pointer, + _id_get$mainExecutor.pointer, + ).object(); + } + + static final _id_get$mainLooper = Context._class.instanceMethodId( + r'getMainLooper', + r'()Landroid/os/Looper;', + ); + + static final _get$mainLooper = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.os.Looper getMainLooper()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get mainLooper { + return _get$mainLooper( + reference.pointer, + _id_get$mainLooper.pointer, + ).object(); + } + + static final _id_get$noBackupFilesDir = Context._class.instanceMethodId( + r'getNoBackupFilesDir', + r'()Ljava/io/File;', + ); + + static final _get$noBackupFilesDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File getNoBackupFilesDir()` + /// The returned object must be released after use, by calling the [release] method. + File? get noBackupFilesDir { + return _get$noBackupFilesDir( + reference.pointer, + _id_get$noBackupFilesDir.pointer, + ).object(); + } + + static final _id_get$obbDir = Context._class.instanceMethodId( + r'getObbDir', + r'()Ljava/io/File;', + ); + + static final _get$obbDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File getObbDir()` + /// The returned object must be released after use, by calling the [release] method. + File? get obbDir { + return _get$obbDir( + reference.pointer, + _id_get$obbDir.pointer, + ).object(); + } + + static final _id_get$obbDirs = Context._class.instanceMethodId( + r'getObbDirs', + r'()[Ljava/io/File;', + ); + + static final _get$obbDirs = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.io.File[] getObbDirs()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? get obbDirs { + return _get$obbDirs( + reference.pointer, + _id_get$obbDirs.pointer, + ).object?>(); + } + + static final _id_get$opPackageName = Context._class.instanceMethodId( + r'getOpPackageName', + r'()Ljava/lang/String;', + ); + + static final _get$opPackageName = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.lang.String getOpPackageName()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get opPackageName { + return _get$opPackageName( + reference.pointer, + _id_get$opPackageName.pointer, + ).object(); + } + + static final _id_get$packageCodePath = Context._class.instanceMethodId( + r'getPackageCodePath', + r'()Ljava/lang/String;', + ); + + static final _get$packageCodePath = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.lang.String getPackageCodePath()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get packageCodePath { + return _get$packageCodePath( + reference.pointer, + _id_get$packageCodePath.pointer, + ).object(); + } + + static final _id_get$packageManager = Context._class.instanceMethodId( + r'getPackageManager', + r'()Landroid/content/pm/PackageManager;', + ); + + static final _get$packageManager = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.content.pm.PackageManager getPackageManager()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get packageManager { + return _get$packageManager( + reference.pointer, + _id_get$packageManager.pointer, + ).object(); + } + + static final _id_get$packageName = Context._class.instanceMethodId( + r'getPackageName', + r'()Ljava/lang/String;', + ); + + static final _get$packageName = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.lang.String getPackageName()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get packageName { + return _get$packageName( + reference.pointer, + _id_get$packageName.pointer, + ).object(); + } + + static final _id_get$packageResourcePath = Context._class.instanceMethodId( + r'getPackageResourcePath', + r'()Ljava/lang/String;', + ); + + static final _get$packageResourcePath = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract java.lang.String getPackageResourcePath()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get packageResourcePath { + return _get$packageResourcePath( + reference.pointer, + _id_get$packageResourcePath.pointer, + ).object(); + } + + static final _id_get$params = Context._class.instanceMethodId( + r'getParams', + r'()Landroid/content/ContextParams;', + ); + + static final _get$params = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public android.content.ContextParams getParams()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get params { + return _get$params( + reference.pointer, + _id_get$params.pointer, + ).object(); + } + + static final _id_get$resources = Context._class.instanceMethodId( + r'getResources', + r'()Landroid/content/res/Resources;', + ); + + static final _get$resources = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.content.res.Resources getResources()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get resources { + return _get$resources( + reference.pointer, + _id_get$resources.pointer, + ).object(); + } + + static final _id_getSharedPreferences = Context._class.instanceMethodId( + r'getSharedPreferences', + r'(Ljava/lang/String;I)Landroid/content/SharedPreferences;', + ); + + static final _getSharedPreferences = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer, jni$_.Int32)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract android.content.SharedPreferences getSharedPreferences(java.lang.String string, int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? getSharedPreferences(jni$_.JString? string, core$_.int i) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _getSharedPreferences( + reference.pointer, + _id_getSharedPreferences.pointer, + _$string.pointer, + i, + ).object(); + } + + static final _id_getString = Context._class.instanceMethodId( + r'getString', + r'(I)Ljava/lang/String;', + ); + + static final _getString = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public final java.lang.String getString(int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? getString(core$_.int i) { + return _getString( + reference.pointer, + _id_getString.pointer, + i, + ).object(); + } + + static final _id_getString$1 = Context._class.instanceMethodId( + r'getString', + r'(I[Ljava/lang/Object;)Ljava/lang/String;', + ); + + static final _getString$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32, jni$_.Pointer)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public final java.lang.String getString(int i, java.lang.Object[] objects)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? getString$1( + core$_.int i, + jni$_.JArray? objects, + ) { + final _$objects = objects?.reference ?? jni$_.jNullReference; + return _getString$1( + reference.pointer, + _id_getString$1.pointer, + i, + _$objects.pointer, + ).object(); + } + + static final _id_getSystemService = Context._class.instanceMethodId( + r'getSystemService', + r'(Ljava/lang/Class;)Ljava/lang/Object;', + ); + + static final _getSystemService = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public final T getSystemService(java.lang.Class class)` + /// The returned object must be released after use, by calling the [release] method. + $T? getSystemService<$T extends jni$_.JObject?>(jni$_.JObject? class$) { + final _$class$ = class$?.reference ?? jni$_.jNullReference; + return _getSystemService( + reference.pointer, + _id_getSystemService.pointer, + _$class$.pointer, + ).object<$T?>(); + } + + static final _id_getSystemService$1 = Context._class.instanceMethodId( + r'getSystemService', + r'(Ljava/lang/String;)Ljava/lang/Object;', + ); + + static final _getSystemService$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract java.lang.Object getSystemService(java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? getSystemService$1(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _getSystemService$1( + reference.pointer, + _id_getSystemService$1.pointer, + _$string.pointer, + ).object(); + } + + static final _id_getSystemServiceName = Context._class.instanceMethodId( + r'getSystemServiceName', + r'(Ljava/lang/Class;)Ljava/lang/String;', + ); + + static final _getSystemServiceName = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract java.lang.String getSystemServiceName(java.lang.Class class)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? getSystemServiceName(jni$_.JObject? class$) { + final _$class$ = class$?.reference ?? jni$_.jNullReference; + return _getSystemServiceName( + reference.pointer, + _id_getSystemServiceName.pointer, + _$class$.pointer, + ).object(); + } + + static final _id_getText = Context._class.instanceMethodId( + r'getText', + r'(I)Ljava/lang/CharSequence;', + ); + + static final _getText = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public final java.lang.CharSequence getText(int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? getText(core$_.int i) { + return _getText( + reference.pointer, + _id_getText.pointer, + i, + ).object(); + } + + static final _id_get$theme = Context._class.instanceMethodId( + r'getTheme', + r'()Landroid/content/res/Resources$Theme;', + ); + + static final _get$theme = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.content.res.Resources$Theme getTheme()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get theme { + return _get$theme( + reference.pointer, + _id_get$theme.pointer, + ).object(); + } + + static final _id_get$wallpaper = Context._class.instanceMethodId( + r'getWallpaper', + r'()Landroid/graphics/drawable/Drawable;', + ); + + static final _get$wallpaper = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.graphics.drawable.Drawable getWallpaper()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? get wallpaper { + return _get$wallpaper( + reference.pointer, + _id_get$wallpaper.pointer, + ).object(); + } + + static final _id_get$wallpaperDesiredMinimumHeight = Context._class + .instanceMethodId(r'getWallpaperDesiredMinimumHeight', r'()I'); + + static final _get$wallpaperDesiredMinimumHeight = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract int getWallpaperDesiredMinimumHeight()` + core$_.int get wallpaperDesiredMinimumHeight { + return _get$wallpaperDesiredMinimumHeight( + reference.pointer, + _id_get$wallpaperDesiredMinimumHeight.pointer, + ).integer; + } + + static final _id_get$wallpaperDesiredMinimumWidth = Context._class + .instanceMethodId(r'getWallpaperDesiredMinimumWidth', r'()I'); + + static final _get$wallpaperDesiredMinimumWidth = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract int getWallpaperDesiredMinimumWidth()` + core$_.int get wallpaperDesiredMinimumWidth { + return _get$wallpaperDesiredMinimumWidth( + reference.pointer, + _id_get$wallpaperDesiredMinimumWidth.pointer, + ).integer; + } + + static final _id_grantUriPermission = Context._class.instanceMethodId( + r'grantUriPermission', + r'(Ljava/lang/String;Landroid/net/Uri;I)V', + ); + + static final _grantUriPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract void grantUriPermission(java.lang.String string, android.net.Uri uri, int i)` + void grantUriPermission( + jni$_.JString? string, + jni$_.JObject? uri, + core$_.int i, + ) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$uri = uri?.reference ?? jni$_.jNullReference; + _grantUriPermission( + reference.pointer, + _id_grantUriPermission.pointer, + _$string.pointer, + _$uri.pointer, + i, + ).check(); + } + + static final _id_get$isDeviceProtectedStorage = Context._class + .instanceMethodId(r'isDeviceProtectedStorage', r'()Z'); + + static final _get$isDeviceProtectedStorage = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract boolean isDeviceProtectedStorage()` + core$_.bool get isDeviceProtectedStorage { + return _get$isDeviceProtectedStorage( + reference.pointer, + _id_get$isDeviceProtectedStorage.pointer, + ).boolean; + } + + static final _id_get$isRestricted = Context._class.instanceMethodId( + r'isRestricted', + r'()Z', + ); + + static final _get$isRestricted = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean isRestricted()` + core$_.bool get isRestricted { + return _get$isRestricted( + reference.pointer, + _id_get$isRestricted.pointer, + ).boolean; + } + + static final _id_get$isUiContext = Context._class.instanceMethodId( + r'isUiContext', + r'()Z', + ); + + static final _get$isUiContext = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean isUiContext()` + core$_.bool get isUiContext { + return _get$isUiContext( + reference.pointer, + _id_get$isUiContext.pointer, + ).boolean; + } + + static final _id_moveDatabaseFrom = Context._class.instanceMethodId( + r'moveDatabaseFrom', + r'(Landroid/content/Context;Ljava/lang/String;)Z', + ); + + static final _moveDatabaseFrom = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract boolean moveDatabaseFrom(android.content.Context context, java.lang.String string)` + core$_.bool moveDatabaseFrom(Context? context, jni$_.JString? string) { + final _$context = context?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + return _moveDatabaseFrom( + reference.pointer, + _id_moveDatabaseFrom.pointer, + _$context.pointer, + _$string.pointer, + ).boolean; + } + + static final _id_moveSharedPreferencesFrom = Context._class.instanceMethodId( + r'moveSharedPreferencesFrom', + r'(Landroid/content/Context;Ljava/lang/String;)Z', + ); + + static final _moveSharedPreferencesFrom = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract boolean moveSharedPreferencesFrom(android.content.Context context, java.lang.String string)` + core$_.bool moveSharedPreferencesFrom( + Context? context, + jni$_.JString? string, + ) { + final _$context = context?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + return _moveSharedPreferencesFrom( + reference.pointer, + _id_moveSharedPreferencesFrom.pointer, + _$context.pointer, + _$string.pointer, + ).boolean; + } + + static final _id_obtainStyledAttributes = Context._class.instanceMethodId( + r'obtainStyledAttributes', + r'(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;', + ); + + static final _obtainStyledAttributes = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public final android.content.res.TypedArray obtainStyledAttributes(android.util.AttributeSet attributeSet, int[] is)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? obtainStyledAttributes( + jni$_.JObject? attributeSet, + jni$_.JIntArray? is$, + ) { + final _$attributeSet = attributeSet?.reference ?? jni$_.jNullReference; + final _$is$ = is$?.reference ?? jni$_.jNullReference; + return _obtainStyledAttributes( + reference.pointer, + _id_obtainStyledAttributes.pointer, + _$attributeSet.pointer, + _$is$.pointer, + ).object(); + } + + static final _id_obtainStyledAttributes$1 = Context._class.instanceMethodId( + r'obtainStyledAttributes', + r'(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;', + ); + + static final _obtainStyledAttributes$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public final android.content.res.TypedArray obtainStyledAttributes(android.util.AttributeSet attributeSet, int[] is, int i, int i1)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? obtainStyledAttributes$1( + jni$_.JObject? attributeSet, + jni$_.JIntArray? is$, + core$_.int i, + core$_.int i1, + ) { + final _$attributeSet = attributeSet?.reference ?? jni$_.jNullReference; + final _$is$ = is$?.reference ?? jni$_.jNullReference; + return _obtainStyledAttributes$1( + reference.pointer, + _id_obtainStyledAttributes$1.pointer, + _$attributeSet.pointer, + _$is$.pointer, + i, + i1, + ).object(); + } + + static final _id_obtainStyledAttributes$2 = Context._class.instanceMethodId( + r'obtainStyledAttributes', + r'(I[I)Landroid/content/res/TypedArray;', + ); + + static final _obtainStyledAttributes$2 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32, jni$_.Pointer)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public final android.content.res.TypedArray obtainStyledAttributes(int i, int[] is)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? obtainStyledAttributes$2(core$_.int i, jni$_.JIntArray? is$) { + final _$is$ = is$?.reference ?? jni$_.jNullReference; + return _obtainStyledAttributes$2( + reference.pointer, + _id_obtainStyledAttributes$2.pointer, + i, + _$is$.pointer, + ).object(); + } + + static final _id_obtainStyledAttributes$3 = Context._class.instanceMethodId( + r'obtainStyledAttributes', + r'([I)Landroid/content/res/TypedArray;', + ); + + static final _obtainStyledAttributes$3 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public final android.content.res.TypedArray obtainStyledAttributes(int[] is)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? obtainStyledAttributes$3(jni$_.JIntArray? is$) { + final _$is$ = is$?.reference ?? jni$_.jNullReference; + return _obtainStyledAttributes$3( + reference.pointer, + _id_obtainStyledAttributes$3.pointer, + _$is$.pointer, + ).object(); + } + + static final _id_openFileInput = Context._class.instanceMethodId( + r'openFileInput', + r'(Ljava/lang/String;)Ljava/io/FileInputStream;', + ); + + static final _openFileInput = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract java.io.FileInputStream openFileInput(java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? openFileInput(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _openFileInput( + reference.pointer, + _id_openFileInput.pointer, + _$string.pointer, + ).object(); + } + + static final _id_openFileOutput = Context._class.instanceMethodId( + r'openFileOutput', + r'(Ljava/lang/String;I)Ljava/io/FileOutputStream;', + ); + + static final _openFileOutput = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer, jni$_.Int32)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract java.io.FileOutputStream openFileOutput(java.lang.String string, int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? openFileOutput(jni$_.JString? string, core$_.int i) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _openFileOutput( + reference.pointer, + _id_openFileOutput.pointer, + _$string.pointer, + i, + ).object(); + } + + static final _id_openOrCreateDatabase = Context._class.instanceMethodId( + r'openOrCreateDatabase', + r'(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;', + ); + + static final _openOrCreateDatabase = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String string, int i, android.database.sqlite.SQLiteDatabase$CursorFactory cursorFactory)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? openOrCreateDatabase( + jni$_.JString? string, + core$_.int i, + jni$_.JObject? cursorFactory, + ) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$cursorFactory = cursorFactory?.reference ?? jni$_.jNullReference; + return _openOrCreateDatabase( + reference.pointer, + _id_openOrCreateDatabase.pointer, + _$string.pointer, + i, + _$cursorFactory.pointer, + ).object(); + } + + static final _id_openOrCreateDatabase$1 = Context._class.instanceMethodId( + r'openOrCreateDatabase', + r'(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;', + ); + + static final _openOrCreateDatabase$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String string, int i, android.database.sqlite.SQLiteDatabase$CursorFactory cursorFactory, android.database.DatabaseErrorHandler databaseErrorHandler)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? openOrCreateDatabase$1( + jni$_.JString? string, + core$_.int i, + jni$_.JObject? cursorFactory, + jni$_.JObject? databaseErrorHandler, + ) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$cursorFactory = cursorFactory?.reference ?? jni$_.jNullReference; + final _$databaseErrorHandler = + databaseErrorHandler?.reference ?? jni$_.jNullReference; + return _openOrCreateDatabase$1( + reference.pointer, + _id_openOrCreateDatabase$1.pointer, + _$string.pointer, + i, + _$cursorFactory.pointer, + _$databaseErrorHandler.pointer, + ).object(); + } + + static final _id_peekWallpaper = Context._class.instanceMethodId( + r'peekWallpaper', + r'()Landroid/graphics/drawable/Drawable;', + ); + + static final _peekWallpaper = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public abstract android.graphics.drawable.Drawable peekWallpaper()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? peekWallpaper() { + return _peekWallpaper( + reference.pointer, + _id_peekWallpaper.pointer, + ).object(); + } + + static final _id_registerComponentCallbacks = Context._class.instanceMethodId( + r'registerComponentCallbacks', + r'(Landroid/content/ComponentCallbacks;)V', + ); + + static final _registerComponentCallbacks = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public void registerComponentCallbacks(android.content.ComponentCallbacks componentCallbacks)` + void registerComponentCallbacks(jni$_.JObject? componentCallbacks) { + final _$componentCallbacks = + componentCallbacks?.reference ?? jni$_.jNullReference; + _registerComponentCallbacks( + reference.pointer, + _id_registerComponentCallbacks.pointer, + _$componentCallbacks.pointer, + ).check(); + } + + static final _id_registerDeviceIdChangeListener = Context._class + .instanceMethodId( + r'registerDeviceIdChangeListener', + r'(Ljava/util/concurrent/Executor;Ljava/util/function/IntConsumer;)V', + ); + + static final _registerDeviceIdChangeListener = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public void registerDeviceIdChangeListener(java.util.concurrent.Executor executor, java.util.function.IntConsumer intConsumer)` + void registerDeviceIdChangeListener( + jni$_.JObject? executor, + jni$_.JObject? intConsumer, + ) { + final _$executor = executor?.reference ?? jni$_.jNullReference; + final _$intConsumer = intConsumer?.reference ?? jni$_.jNullReference; + _registerDeviceIdChangeListener( + reference.pointer, + _id_registerDeviceIdChangeListener.pointer, + _$executor.pointer, + _$intConsumer.pointer, + ).check(); + } + + static final _id_registerReceiver = Context._class.instanceMethodId( + r'registerReceiver', + r'(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;', + ); + + static final _registerReceiver = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver broadcastReceiver, android.content.IntentFilter intentFilter)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? registerReceiver( + jni$_.JObject? broadcastReceiver, + jni$_.JObject? intentFilter, + ) { + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$intentFilter = intentFilter?.reference ?? jni$_.jNullReference; + return _registerReceiver( + reference.pointer, + _id_registerReceiver.pointer, + _$broadcastReceiver.pointer, + _$intentFilter.pointer, + ).object(); + } + + static final _id_registerReceiver$1 = Context._class.instanceMethodId( + r'registerReceiver', + r'(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent;', + ); + + static final _registerReceiver$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver broadcastReceiver, android.content.IntentFilter intentFilter, int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? registerReceiver$1( + jni$_.JObject? broadcastReceiver, + jni$_.JObject? intentFilter, + core$_.int i, + ) { + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$intentFilter = intentFilter?.reference ?? jni$_.jNullReference; + return _registerReceiver$1( + reference.pointer, + _id_registerReceiver$1.pointer, + _$broadcastReceiver.pointer, + _$intentFilter.pointer, + i, + ).object(); + } + + static final _id_registerReceiver$2 = Context._class.instanceMethodId( + r'registerReceiver', + r'(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;', + ); + + static final _registerReceiver$2 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver broadcastReceiver, android.content.IntentFilter intentFilter, java.lang.String string, android.os.Handler handler)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? registerReceiver$2( + jni$_.JObject? broadcastReceiver, + jni$_.JObject? intentFilter, + jni$_.JString? string, + jni$_.JObject? handler, + ) { + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$intentFilter = intentFilter?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$handler = handler?.reference ?? jni$_.jNullReference; + return _registerReceiver$2( + reference.pointer, + _id_registerReceiver$2.pointer, + _$broadcastReceiver.pointer, + _$intentFilter.pointer, + _$string.pointer, + _$handler.pointer, + ).object(); + } + + static final _id_registerReceiver$3 = Context._class.instanceMethodId( + r'registerReceiver', + r'(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent;', + ); + + static final _registerReceiver$3 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver broadcastReceiver, android.content.IntentFilter intentFilter, java.lang.String string, android.os.Handler handler, int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? registerReceiver$3( + jni$_.JObject? broadcastReceiver, + jni$_.JObject? intentFilter, + jni$_.JString? string, + jni$_.JObject? handler, + core$_.int i, + ) { + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$intentFilter = intentFilter?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$handler = handler?.reference ?? jni$_.jNullReference; + return _registerReceiver$3( + reference.pointer, + _id_registerReceiver$3.pointer, + _$broadcastReceiver.pointer, + _$intentFilter.pointer, + _$string.pointer, + _$handler.pointer, + i, + ).object(); + } + + static final _id_removeStickyBroadcast = Context._class.instanceMethodId( + r'removeStickyBroadcast', + r'(Landroid/content/Intent;)V', + ); + + static final _removeStickyBroadcast = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void removeStickyBroadcast(android.content.Intent intent)` + void removeStickyBroadcast(jni$_.JObject? intent) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + _removeStickyBroadcast( + reference.pointer, + _id_removeStickyBroadcast.pointer, + _$intent.pointer, + ).check(); + } + + static final _id_removeStickyBroadcastAsUser = Context._class + .instanceMethodId( + r'removeStickyBroadcastAsUser', + r'(Landroid/content/Intent;Landroid/os/UserHandle;)V', + ); + + static final _removeStickyBroadcastAsUser = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void removeStickyBroadcastAsUser(android.content.Intent intent, android.os.UserHandle userHandle)` + void removeStickyBroadcastAsUser( + jni$_.JObject? intent, + jni$_.JObject? userHandle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$userHandle = userHandle?.reference ?? jni$_.jNullReference; + _removeStickyBroadcastAsUser( + reference.pointer, + _id_removeStickyBroadcastAsUser.pointer, + _$intent.pointer, + _$userHandle.pointer, + ).check(); + } + + static final _id_revokeSelfPermissionOnKill = Context._class.instanceMethodId( + r'revokeSelfPermissionOnKill', + r'(Ljava/lang/String;)V', + ); + + static final _revokeSelfPermissionOnKill = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public void revokeSelfPermissionOnKill(java.lang.String string)` + void revokeSelfPermissionOnKill(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + _revokeSelfPermissionOnKill( + reference.pointer, + _id_revokeSelfPermissionOnKill.pointer, + _$string.pointer, + ).check(); + } + + static final _id_revokeSelfPermissionsOnKill = Context._class + .instanceMethodId( + r'revokeSelfPermissionsOnKill', + r'(Ljava/util/Collection;)V', + ); + + static final _revokeSelfPermissionsOnKill = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public void revokeSelfPermissionsOnKill(java.util.Collection collection)` + void revokeSelfPermissionsOnKill(jni$_.JObject? collection) { + final _$collection = collection?.reference ?? jni$_.jNullReference; + _revokeSelfPermissionsOnKill( + reference.pointer, + _id_revokeSelfPermissionsOnKill.pointer, + _$collection.pointer, + ).check(); + } + + static final _id_revokeUriPermission = Context._class.instanceMethodId( + r'revokeUriPermission', + r'(Landroid/net/Uri;I)V', + ); + + static final _revokeUriPermission = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer, jni$_.Int32)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract void revokeUriPermission(android.net.Uri uri, int i)` + void revokeUriPermission(jni$_.JObject? uri, core$_.int i) { + final _$uri = uri?.reference ?? jni$_.jNullReference; + _revokeUriPermission( + reference.pointer, + _id_revokeUriPermission.pointer, + _$uri.pointer, + i, + ).check(); + } + + static final _id_revokeUriPermission$1 = Context._class.instanceMethodId( + r'revokeUriPermission', + r'(Ljava/lang/String;Landroid/net/Uri;I)V', + ); + + static final _revokeUriPermission$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + ) + >(); + + /// from: `public abstract void revokeUriPermission(java.lang.String string, android.net.Uri uri, int i)` + void revokeUriPermission$1( + jni$_.JString? string, + jni$_.JObject? uri, + core$_.int i, + ) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$uri = uri?.reference ?? jni$_.jNullReference; + _revokeUriPermission$1( + reference.pointer, + _id_revokeUriPermission$1.pointer, + _$string.pointer, + _$uri.pointer, + i, + ).check(); + } + + static final _id_sendBroadcast = Context._class.instanceMethodId( + r'sendBroadcast', + r'(Landroid/content/Intent;)V', + ); + + static final _sendBroadcast = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendBroadcast(android.content.Intent intent)` + void sendBroadcast(jni$_.JObject? intent) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + _sendBroadcast( + reference.pointer, + _id_sendBroadcast.pointer, + _$intent.pointer, + ).check(); + } + + static final _id_sendBroadcast$1 = Context._class.instanceMethodId( + r'sendBroadcast', + r'(Landroid/content/Intent;Ljava/lang/String;)V', + ); + + static final _sendBroadcast$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendBroadcast(android.content.Intent intent, java.lang.String string)` + void sendBroadcast$1(jni$_.JObject? intent, jni$_.JString? string) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + _sendBroadcast$1( + reference.pointer, + _id_sendBroadcast$1.pointer, + _$intent.pointer, + _$string.pointer, + ).check(); + } + + static final _id_sendBroadcast$2 = Context._class.instanceMethodId( + r'sendBroadcast', + r'(Landroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;)V', + ); + + static final _sendBroadcast$2 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public void sendBroadcast(android.content.Intent intent, java.lang.String string, android.os.Bundle bundle)` + void sendBroadcast$2( + jni$_.JObject? intent, + jni$_.JString? string, + jni$_.JObject? bundle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _sendBroadcast$2( + reference.pointer, + _id_sendBroadcast$2.pointer, + _$intent.pointer, + _$string.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_sendBroadcastAsUser = Context._class.instanceMethodId( + r'sendBroadcastAsUser', + r'(Landroid/content/Intent;Landroid/os/UserHandle;)V', + ); + + static final _sendBroadcastAsUser = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendBroadcastAsUser(android.content.Intent intent, android.os.UserHandle userHandle)` + void sendBroadcastAsUser(jni$_.JObject? intent, jni$_.JObject? userHandle) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$userHandle = userHandle?.reference ?? jni$_.jNullReference; + _sendBroadcastAsUser( + reference.pointer, + _id_sendBroadcastAsUser.pointer, + _$intent.pointer, + _$userHandle.pointer, + ).check(); + } + + static final _id_sendBroadcastAsUser$1 = Context._class.instanceMethodId( + r'sendBroadcastAsUser', + r'(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V', + ); + + static final _sendBroadcastAsUser$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendBroadcastAsUser(android.content.Intent intent, android.os.UserHandle userHandle, java.lang.String string)` + void sendBroadcastAsUser$1( + jni$_.JObject? intent, + jni$_.JObject? userHandle, + jni$_.JString? string, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$userHandle = userHandle?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + _sendBroadcastAsUser$1( + reference.pointer, + _id_sendBroadcastAsUser$1.pointer, + _$intent.pointer, + _$userHandle.pointer, + _$string.pointer, + ).check(); + } + + static final _id_sendBroadcastWithMultiplePermissions = Context._class + .instanceMethodId( + r'sendBroadcastWithMultiplePermissions', + r'(Landroid/content/Intent;[Ljava/lang/String;)V', + ); + + static final _sendBroadcastWithMultiplePermissions = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public void sendBroadcastWithMultiplePermissions(android.content.Intent intent, java.lang.String[] strings)` + void sendBroadcastWithMultiplePermissions( + jni$_.JObject? intent, + jni$_.JArray? strings, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$strings = strings?.reference ?? jni$_.jNullReference; + _sendBroadcastWithMultiplePermissions( + reference.pointer, + _id_sendBroadcastWithMultiplePermissions.pointer, + _$intent.pointer, + _$strings.pointer, + ).check(); + } + + static final _id_sendOrderedBroadcast = Context._class.instanceMethodId( + r'sendOrderedBroadcast', + r'(Landroid/content/Intent;Ljava/lang/String;)V', + ); + + static final _sendOrderedBroadcast = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendOrderedBroadcast(android.content.Intent intent, java.lang.String string)` + void sendOrderedBroadcast(jni$_.JObject? intent, jni$_.JString? string) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + _sendOrderedBroadcast( + reference.pointer, + _id_sendOrderedBroadcast.pointer, + _$intent.pointer, + _$string.pointer, + ).check(); + } + + static final _id_sendOrderedBroadcast$1 = Context._class.instanceMethodId( + r'sendOrderedBroadcast', + r'(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V', + ); + + static final _sendOrderedBroadcast$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendOrderedBroadcast(android.content.Intent intent, java.lang.String string, android.content.BroadcastReceiver broadcastReceiver, android.os.Handler handler, int i, java.lang.String string1, android.os.Bundle bundle)` + void sendOrderedBroadcast$1( + jni$_.JObject? intent, + jni$_.JString? string, + jni$_.JObject? broadcastReceiver, + jni$_.JObject? handler, + core$_.int i, + jni$_.JString? string1, + jni$_.JObject? bundle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$handler = handler?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _sendOrderedBroadcast$1( + reference.pointer, + _id_sendOrderedBroadcast$1.pointer, + _$intent.pointer, + _$string.pointer, + _$broadcastReceiver.pointer, + _$handler.pointer, + i, + _$string1.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_sendOrderedBroadcast$2 = Context._class.instanceMethodId( + r'sendOrderedBroadcast', + r'(Landroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;)V', + ); + + static final _sendOrderedBroadcast$2 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public void sendOrderedBroadcast(android.content.Intent intent, java.lang.String string, android.os.Bundle bundle)` + void sendOrderedBroadcast$2( + jni$_.JObject? intent, + jni$_.JString? string, + jni$_.JObject? bundle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _sendOrderedBroadcast$2( + reference.pointer, + _id_sendOrderedBroadcast$2.pointer, + _$intent.pointer, + _$string.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_sendOrderedBroadcast$3 = Context._class.instanceMethodId( + r'sendOrderedBroadcast', + r'(Landroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V', + ); + + static final _sendOrderedBroadcast$3 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public void sendOrderedBroadcast(android.content.Intent intent, java.lang.String string, android.os.Bundle bundle, android.content.BroadcastReceiver broadcastReceiver, android.os.Handler handler, int i, java.lang.String string1, android.os.Bundle bundle1)` + void sendOrderedBroadcast$3( + jni$_.JObject? intent, + jni$_.JString? string, + jni$_.JObject? bundle, + jni$_.JObject? broadcastReceiver, + jni$_.JObject? handler, + core$_.int i, + jni$_.JString? string1, + jni$_.JObject? bundle1, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$handler = handler?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + final _$bundle1 = bundle1?.reference ?? jni$_.jNullReference; + _sendOrderedBroadcast$3( + reference.pointer, + _id_sendOrderedBroadcast$3.pointer, + _$intent.pointer, + _$string.pointer, + _$bundle.pointer, + _$broadcastReceiver.pointer, + _$handler.pointer, + i, + _$string1.pointer, + _$bundle1.pointer, + ).check(); + } + + static final _id_sendOrderedBroadcast$4 = Context._class.instanceMethodId( + r'sendOrderedBroadcast', + r'(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V', + ); + + static final _sendOrderedBroadcast$4 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public void sendOrderedBroadcast(android.content.Intent intent, java.lang.String string, java.lang.String string1, android.content.BroadcastReceiver broadcastReceiver, android.os.Handler handler, int i, java.lang.String string2, android.os.Bundle bundle)` + void sendOrderedBroadcast$4( + jni$_.JObject? intent, + jni$_.JString? string, + jni$_.JString? string1, + jni$_.JObject? broadcastReceiver, + jni$_.JObject? handler, + core$_.int i, + jni$_.JString? string2, + jni$_.JObject? bundle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$handler = handler?.reference ?? jni$_.jNullReference; + final _$string2 = string2?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _sendOrderedBroadcast$4( + reference.pointer, + _id_sendOrderedBroadcast$4.pointer, + _$intent.pointer, + _$string.pointer, + _$string1.pointer, + _$broadcastReceiver.pointer, + _$handler.pointer, + i, + _$string2.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_sendOrderedBroadcastAsUser = Context._class.instanceMethodId( + r'sendOrderedBroadcastAsUser', + r'(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V', + ); + + static final _sendOrderedBroadcastAsUser = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendOrderedBroadcastAsUser(android.content.Intent intent, android.os.UserHandle userHandle, java.lang.String string, android.content.BroadcastReceiver broadcastReceiver, android.os.Handler handler, int i, java.lang.String string1, android.os.Bundle bundle)` + void sendOrderedBroadcastAsUser( + jni$_.JObject? intent, + jni$_.JObject? userHandle, + jni$_.JString? string, + jni$_.JObject? broadcastReceiver, + jni$_.JObject? handler, + core$_.int i, + jni$_.JString? string1, + jni$_.JObject? bundle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$userHandle = userHandle?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$handler = handler?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _sendOrderedBroadcastAsUser( + reference.pointer, + _id_sendOrderedBroadcastAsUser.pointer, + _$intent.pointer, + _$userHandle.pointer, + _$string.pointer, + _$broadcastReceiver.pointer, + _$handler.pointer, + i, + _$string1.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_sendStickyBroadcast = Context._class.instanceMethodId( + r'sendStickyBroadcast', + r'(Landroid/content/Intent;)V', + ); + + static final _sendStickyBroadcast = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendStickyBroadcast(android.content.Intent intent)` + void sendStickyBroadcast(jni$_.JObject? intent) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + _sendStickyBroadcast( + reference.pointer, + _id_sendStickyBroadcast.pointer, + _$intent.pointer, + ).check(); + } + + static final _id_sendStickyBroadcast$1 = Context._class.instanceMethodId( + r'sendStickyBroadcast', + r'(Landroid/content/Intent;Landroid/os/Bundle;)V', + ); + + static final _sendStickyBroadcast$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public void sendStickyBroadcast(android.content.Intent intent, android.os.Bundle bundle)` + void sendStickyBroadcast$1(jni$_.JObject? intent, jni$_.JObject? bundle) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _sendStickyBroadcast$1( + reference.pointer, + _id_sendStickyBroadcast$1.pointer, + _$intent.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_sendStickyBroadcastAsUser = Context._class.instanceMethodId( + r'sendStickyBroadcastAsUser', + r'(Landroid/content/Intent;Landroid/os/UserHandle;)V', + ); + + static final _sendStickyBroadcastAsUser = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendStickyBroadcastAsUser(android.content.Intent intent, android.os.UserHandle userHandle)` + void sendStickyBroadcastAsUser( + jni$_.JObject? intent, + jni$_.JObject? userHandle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$userHandle = userHandle?.reference ?? jni$_.jNullReference; + _sendStickyBroadcastAsUser( + reference.pointer, + _id_sendStickyBroadcastAsUser.pointer, + _$intent.pointer, + _$userHandle.pointer, + ).check(); + } + + static final _id_sendStickyOrderedBroadcast = Context._class.instanceMethodId( + r'sendStickyOrderedBroadcast', + r'(Landroid/content/Intent;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V', + ); + + static final _sendStickyOrderedBroadcast = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendStickyOrderedBroadcast(android.content.Intent intent, android.content.BroadcastReceiver broadcastReceiver, android.os.Handler handler, int i, java.lang.String string, android.os.Bundle bundle)` + void sendStickyOrderedBroadcast( + jni$_.JObject? intent, + jni$_.JObject? broadcastReceiver, + jni$_.JObject? handler, + core$_.int i, + jni$_.JString? string, + jni$_.JObject? bundle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$handler = handler?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _sendStickyOrderedBroadcast( + reference.pointer, + _id_sendStickyOrderedBroadcast.pointer, + _$intent.pointer, + _$broadcastReceiver.pointer, + _$handler.pointer, + i, + _$string.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_sendStickyOrderedBroadcastAsUser = Context._class + .instanceMethodId( + r'sendStickyOrderedBroadcastAsUser', + r'(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V', + ); + + static final _sendStickyOrderedBroadcastAsUser = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void sendStickyOrderedBroadcastAsUser(android.content.Intent intent, android.os.UserHandle userHandle, android.content.BroadcastReceiver broadcastReceiver, android.os.Handler handler, int i, java.lang.String string, android.os.Bundle bundle)` + void sendStickyOrderedBroadcastAsUser( + jni$_.JObject? intent, + jni$_.JObject? userHandle, + jni$_.JObject? broadcastReceiver, + jni$_.JObject? handler, + core$_.int i, + jni$_.JString? string, + jni$_.JObject? bundle, + ) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$userHandle = userHandle?.reference ?? jni$_.jNullReference; + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + final _$handler = handler?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _sendStickyOrderedBroadcastAsUser( + reference.pointer, + _id_sendStickyOrderedBroadcastAsUser.pointer, + _$intent.pointer, + _$userHandle.pointer, + _$broadcastReceiver.pointer, + _$handler.pointer, + i, + _$string.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_set$theme$1 = Context._class.instanceMethodId( + r'setTheme', + r'(I)V', + ); + + static final _set$theme$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public abstract void setTheme(int i)` + set theme$1(core$_.int i) { + _set$theme$1(reference.pointer, _id_set$theme$1.pointer, i).check(); + } + + static final _id_set$wallpaper$1 = Context._class.instanceMethodId( + r'setWallpaper', + r'(Landroid/graphics/Bitmap;)V', + ); + + static final _set$wallpaper$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void setWallpaper(android.graphics.Bitmap bitmap)` + set wallpaper$1(jni$_.JObject? bitmap) { + final _$bitmap = bitmap?.reference ?? jni$_.jNullReference; + _set$wallpaper$1( + reference.pointer, + _id_set$wallpaper$1.pointer, + _$bitmap.pointer, + ).check(); + } + + static final _id_set$wallpaper$2 = Context._class.instanceMethodId( + r'setWallpaper', + r'(Ljava/io/InputStream;)V', + ); + + static final _set$wallpaper$2 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void setWallpaper(java.io.InputStream inputStream)` + set wallpaper$2(jni$_.JObject? inputStream) { + final _$inputStream = inputStream?.reference ?? jni$_.jNullReference; + _set$wallpaper$2( + reference.pointer, + _id_set$wallpaper$2.pointer, + _$inputStream.pointer, + ).check(); + } + + static final _id_startActivities = Context._class.instanceMethodId( + r'startActivities', + r'([Landroid/content/Intent;)V', + ); + + static final _startActivities = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void startActivities(android.content.Intent[] intents)` + void startActivities(jni$_.JArray? intents) { + final _$intents = intents?.reference ?? jni$_.jNullReference; + _startActivities( + reference.pointer, + _id_startActivities.pointer, + _$intents.pointer, + ).check(); + } + + static final _id_startActivities$1 = Context._class.instanceMethodId( + r'startActivities', + r'([Landroid/content/Intent;Landroid/os/Bundle;)V', + ); + + static final _startActivities$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void startActivities(android.content.Intent[] intents, android.os.Bundle bundle)` + void startActivities$1( + jni$_.JArray? intents, + jni$_.JObject? bundle, + ) { + final _$intents = intents?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _startActivities$1( + reference.pointer, + _id_startActivities$1.pointer, + _$intents.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_startActivity = Context._class.instanceMethodId( + r'startActivity', + r'(Landroid/content/Intent;)V', + ); + + static final _startActivity = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void startActivity(android.content.Intent intent)` + void startActivity(jni$_.JObject? intent) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + _startActivity( + reference.pointer, + _id_startActivity.pointer, + _$intent.pointer, + ).check(); + } + + static final _id_startActivity$1 = Context._class.instanceMethodId( + r'startActivity', + r'(Landroid/content/Intent;Landroid/os/Bundle;)V', + ); + + static final _startActivity$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void startActivity(android.content.Intent intent, android.os.Bundle bundle)` + void startActivity$1(jni$_.JObject? intent, jni$_.JObject? bundle) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _startActivity$1( + reference.pointer, + _id_startActivity$1.pointer, + _$intent.pointer, + _$bundle.pointer, + ).check(); + } + + static final _id_startForegroundService = Context._class.instanceMethodId( + r'startForegroundService', + r'(Landroid/content/Intent;)Landroid/content/ComponentName;', + ); + + static final _startForegroundService = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract android.content.ComponentName startForegroundService(android.content.Intent intent)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? startForegroundService(jni$_.JObject? intent) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + return _startForegroundService( + reference.pointer, + _id_startForegroundService.pointer, + _$intent.pointer, + ).object(); + } + + static final _id_startInstrumentation = Context._class.instanceMethodId( + r'startInstrumentation', + r'(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/Bundle;)Z', + ); + + static final _startInstrumentation = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract boolean startInstrumentation(android.content.ComponentName componentName, java.lang.String string, android.os.Bundle bundle)` + core$_.bool startInstrumentation( + jni$_.JObject? componentName, + jni$_.JString? string, + jni$_.JObject? bundle, + ) { + final _$componentName = componentName?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + return _startInstrumentation( + reference.pointer, + _id_startInstrumentation.pointer, + _$componentName.pointer, + _$string.pointer, + _$bundle.pointer, + ).boolean; + } + + static final _id_startIntentSender = Context._class.instanceMethodId( + r'startIntentSender', + r'(Landroid/content/IntentSender;Landroid/content/Intent;III)V', + ); + + static final _startIntentSender = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + jni$_.Int32, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public abstract void startIntentSender(android.content.IntentSender intentSender, android.content.Intent intent, int i, int i1, int i2)` + void startIntentSender( + jni$_.JObject? intentSender, + jni$_.JObject? intent, + core$_.int i, + core$_.int i1, + core$_.int i2, + ) { + final _$intentSender = intentSender?.reference ?? jni$_.jNullReference; + final _$intent = intent?.reference ?? jni$_.jNullReference; + _startIntentSender( + reference.pointer, + _id_startIntentSender.pointer, + _$intentSender.pointer, + _$intent.pointer, + i, + i1, + i2, + ).check(); + } + + static final _id_startIntentSender$1 = Context._class.instanceMethodId( + r'startIntentSender', + r'(Landroid/content/IntentSender;Landroid/content/Intent;IIILandroid/os/Bundle;)V', + ); + + static final _startIntentSender$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Int32, + jni$_.Int32, + jni$_.Int32, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + core$_.int, + core$_.int, + core$_.int, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void startIntentSender(android.content.IntentSender intentSender, android.content.Intent intent, int i, int i1, int i2, android.os.Bundle bundle)` + void startIntentSender$1( + jni$_.JObject? intentSender, + jni$_.JObject? intent, + core$_.int i, + core$_.int i1, + core$_.int i2, + jni$_.JObject? bundle, + ) { + final _$intentSender = intentSender?.reference ?? jni$_.jNullReference; + final _$intent = intent?.reference ?? jni$_.jNullReference; + final _$bundle = bundle?.reference ?? jni$_.jNullReference; + _startIntentSender$1( + reference.pointer, + _id_startIntentSender$1.pointer, + _$intentSender.pointer, + _$intent.pointer, + i, + i1, + i2, + _$bundle.pointer, + ).check(); + } + + static final _id_startService = Context._class.instanceMethodId( + r'startService', + r'(Landroid/content/Intent;)Landroid/content/ComponentName;', + ); + + static final _startService = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract android.content.ComponentName startService(android.content.Intent intent)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? startService(jni$_.JObject? intent) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + return _startService( + reference.pointer, + _id_startService.pointer, + _$intent.pointer, + ).object(); + } + + static final _id_stopService = Context._class.instanceMethodId( + r'stopService', + r'(Landroid/content/Intent;)Z', + ); + + static final _stopService = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract boolean stopService(android.content.Intent intent)` + core$_.bool stopService(jni$_.JObject? intent) { + final _$intent = intent?.reference ?? jni$_.jNullReference; + return _stopService( + reference.pointer, + _id_stopService.pointer, + _$intent.pointer, + ).boolean; + } + + static final _id_unbindService = Context._class.instanceMethodId( + r'unbindService', + r'(Landroid/content/ServiceConnection;)V', + ); + + static final _unbindService = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void unbindService(android.content.ServiceConnection serviceConnection)` + void unbindService(jni$_.JObject? serviceConnection) { + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + _unbindService( + reference.pointer, + _id_unbindService.pointer, + _$serviceConnection.pointer, + ).check(); + } + + static final _id_unregisterComponentCallbacks = Context._class + .instanceMethodId( + r'unregisterComponentCallbacks', + r'(Landroid/content/ComponentCallbacks;)V', + ); + + static final _unregisterComponentCallbacks = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public void unregisterComponentCallbacks(android.content.ComponentCallbacks componentCallbacks)` + void unregisterComponentCallbacks(jni$_.JObject? componentCallbacks) { + final _$componentCallbacks = + componentCallbacks?.reference ?? jni$_.jNullReference; + _unregisterComponentCallbacks( + reference.pointer, + _id_unregisterComponentCallbacks.pointer, + _$componentCallbacks.pointer, + ).check(); + } + + static final _id_unregisterDeviceIdChangeListener = Context._class + .instanceMethodId( + r'unregisterDeviceIdChangeListener', + r'(Ljava/util/function/IntConsumer;)V', + ); + + static final _unregisterDeviceIdChangeListener = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public void unregisterDeviceIdChangeListener(java.util.function.IntConsumer intConsumer)` + void unregisterDeviceIdChangeListener(jni$_.JObject? intConsumer) { + final _$intConsumer = intConsumer?.reference ?? jni$_.jNullReference; + _unregisterDeviceIdChangeListener( + reference.pointer, + _id_unregisterDeviceIdChangeListener.pointer, + _$intConsumer.pointer, + ).check(); + } + + static final _id_unregisterReceiver = Context._class.instanceMethodId( + r'unregisterReceiver', + r'(Landroid/content/BroadcastReceiver;)V', + ); + + static final _unregisterReceiver = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public abstract void unregisterReceiver(android.content.BroadcastReceiver broadcastReceiver)` + void unregisterReceiver(jni$_.JObject? broadcastReceiver) { + final _$broadcastReceiver = + broadcastReceiver?.reference ?? jni$_.jNullReference; + _unregisterReceiver( + reference.pointer, + _id_unregisterReceiver.pointer, + _$broadcastReceiver.pointer, + ).check(); + } + + static final _id_updateServiceGroup = Context._class.instanceMethodId( + r'updateServiceGroup', + r'(Landroid/content/ServiceConnection;II)V', + ); + + static final _updateServiceGroup = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Int32, jni$_.Int32) + >, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public void updateServiceGroup(android.content.ServiceConnection serviceConnection, int i, int i1)` + void updateServiceGroup( + jni$_.JObject? serviceConnection, + core$_.int i, + core$_.int i1, + ) { + final _$serviceConnection = + serviceConnection?.reference ?? jni$_.jNullReference; + _updateServiceGroup( + reference.pointer, + _id_updateServiceGroup.pointer, + _$serviceConnection.pointer, + i, + i1, + ).check(); + } +} + +final class $Context$Type$ extends jni$_.JType { + @jni$_.internal + const $Context$Type$(); + + @jni$_.internal + @core$_.override + String get signature => r'Landroid/content/Context;'; +} + +/// from: `io.flutter.util.PathUtils` +extension type PathUtils._(jni$_.JObject _$this) implements jni$_.JObject { + static final _class = jni$_.JClass.forName(r'io/flutter/util/PathUtils'); + + /// The type which includes information such as the signature of this class. + static const jni$_.JType type = $PathUtils$Type$(); + static final _id_new$ = _class.constructorId(r'()V'); + + static final _new$ = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_NewObject') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public void ()` + /// The returned object must be released after use, by calling the [release] method. + factory PathUtils() { + return _new$( + _class.reference.pointer, + _id_new$.pointer, + ).object(); + } + + static final _id_getFilesDir = _class.staticMethodId( + r'getFilesDir', + r'(Landroid/content/Context;)Ljava/lang/String;', + ); + + static final _getFilesDir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public java.lang.String getFilesDir(android.content.Context context)` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString getFilesDir(Context context) { + final _$context = context.reference; + return _getFilesDir( + _class.reference.pointer, + _id_getFilesDir.pointer, + _$context.pointer, + ).object(); + } + + static final _id_getDataDirectory = _class.staticMethodId( + r'getDataDirectory', + r'(Landroid/content/Context;)Ljava/lang/String;', + ); + + static final _getDataDirectory = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public java.lang.String getDataDirectory(android.content.Context context)` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString getDataDirectory(Context context) { + final _$context = context.reference; + return _getDataDirectory( + _class.reference.pointer, + _id_getDataDirectory.pointer, + _$context.pointer, + ).object(); + } + + static final _id_getCacheDirectory = _class.staticMethodId( + r'getCacheDirectory', + r'(Landroid/content/Context;)Ljava/lang/String;', + ); + + static final _getCacheDirectory = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public java.lang.String getCacheDirectory(android.content.Context context)` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString getCacheDirectory(Context context) { + final _$context = context.reference; + return _getCacheDirectory( + _class.reference.pointer, + _id_getCacheDirectory.pointer, + _$context.pointer, + ).object(); + } +} + +final class $PathUtils$Type$ extends jni$_.JType { + @jni$_.internal + const $PathUtils$Type$(); + + @jni$_.internal + @core$_.override + String get signature => r'Lio/flutter/util/PathUtils;'; +} + +/// from: `java.io.File` +extension type File._(jni$_.JObject _$this) implements jni$_.JObject { + static final _class = jni$_.JClass.forName(r'java/io/File'); + + /// The type which includes information such as the signature of this class. + static const jni$_.JType type = $File$Type$(); + static final _id_pathSeparator = _class.staticFieldId( + r'pathSeparator', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String pathSeparator` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get pathSeparator => + _id_pathSeparator.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_pathSeparatorChar = _class.staticFieldId( + r'pathSeparatorChar', + r'C', + ); + + /// from: `static public final char pathSeparatorChar` + static core$_.int get pathSeparatorChar => + _id_pathSeparatorChar.getNullable(_class, jni$_.jchar.type) as core$_.int; + + static final _id_separator = _class.staticFieldId( + r'separator', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String separator` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get separator => + _id_separator.getNullable(_class, jni$_.JString.type) as jni$_.JString?; + + static final _id_separatorChar = _class.staticFieldId(r'separatorChar', r'C'); + + /// from: `static public final char separatorChar` + static core$_.int get separatorChar => + _id_separatorChar.getNullable(_class, jni$_.jchar.type) as core$_.int; + + static final _id_new$ = _class.constructorId( + r'(Ljava/io/File;Ljava/lang/String;)V', + ); + + static final _new$ = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_NewObject') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public void (java.io.File file, java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + factory File(File? file, jni$_.JString? string) { + final _$file = file?.reference ?? jni$_.jNullReference; + final _$string = string?.reference ?? jni$_.jNullReference; + return _new$( + _class.reference.pointer, + _id_new$.pointer, + _$file.pointer, + _$string.pointer, + ).object(); + } + + static final _id_new$1 = _class.constructorId(r'(Ljava/lang/String;)V'); + + static final _new$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_NewObject') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public void (java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + factory File.new$1(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _new$1( + _class.reference.pointer, + _id_new$1.pointer, + _$string.pointer, + ).object(); + } + + static final _id_new$2 = _class.constructorId( + r'(Ljava/lang/String;Ljava/lang/String;)V', + ); + + static final _new$2 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_NewObject') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `public void (java.lang.String string, java.lang.String string1)` + /// The returned object must be released after use, by calling the [release] method. + factory File.new$2(jni$_.JString? string, jni$_.JString? string1) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + return _new$2( + _class.reference.pointer, + _id_new$2.pointer, + _$string.pointer, + _$string1.pointer, + ).object(); + } + + static final _id_new$3 = _class.constructorId(r'(Ljava/net/URI;)V'); + + static final _new$3 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_NewObject') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public void (java.net.URI uRI)` + /// The returned object must be released after use, by calling the [release] method. + factory File.new$3(jni$_.JObject? uRI) { + final _$uRI = uRI?.reference ?? jni$_.jNullReference; + return _new$3( + _class.reference.pointer, + _id_new$3.pointer, + _$uRI.pointer, + ).object(); + } + + static final _id_createTempFile = _class.staticMethodId( + r'createTempFile', + r'(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;', + ); + + static final _createTempFile = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + (jni$_.Pointer, jni$_.Pointer) + >, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `static public java.io.File createTempFile(java.lang.String string, java.lang.String string1)` + /// The returned object must be released after use, by calling the [release] method. + static File? createTempFile(jni$_.JString? string, jni$_.JString? string1) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + return _createTempFile( + _class.reference.pointer, + _id_createTempFile.pointer, + _$string.pointer, + _$string1.pointer, + ).object(); + } + + static final _id_createTempFile$1 = _class.staticMethodId( + r'createTempFile', + r'(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;', + ); + + static final _createTempFile$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + ) + >(); + + /// from: `static public java.io.File createTempFile(java.lang.String string, java.lang.String string1, java.io.File file)` + /// The returned object must be released after use, by calling the [release] method. + static File? createTempFile$1( + jni$_.JString? string, + jni$_.JString? string1, + File? file, + ) { + final _$string = string?.reference ?? jni$_.jNullReference; + final _$string1 = string1?.reference ?? jni$_.jNullReference; + final _$file = file?.reference ?? jni$_.jNullReference; + return _createTempFile$1( + _class.reference.pointer, + _id_createTempFile$1.pointer, + _$string.pointer, + _$string1.pointer, + _$file.pointer, + ).object(); + } + + static final _id_listRoots = _class.staticMethodId( + r'listRoots', + r'()[Ljava/io/File;', + ); + + static final _listRoots = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public java.io.File[] listRoots()` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JArray? listRoots() { + return _listRoots( + _class.reference.pointer, + _id_listRoots.pointer, + ).object?>(); + } +} + +extension File$$Methods on File { + static final _id_canExecute = File._class.instanceMethodId( + r'canExecute', + r'()Z', + ); + + static final _canExecute = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean canExecute()` + core$_.bool canExecute() { + return _canExecute(reference.pointer, _id_canExecute.pointer).boolean; + } + + static final _id_canRead = File._class.instanceMethodId(r'canRead', r'()Z'); + + static final _canRead = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean canRead()` + core$_.bool canRead() { + return _canRead(reference.pointer, _id_canRead.pointer).boolean; + } + + static final _id_canWrite = File._class.instanceMethodId(r'canWrite', r'()Z'); + + static final _canWrite = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean canWrite()` + core$_.bool canWrite() { + return _canWrite(reference.pointer, _id_canWrite.pointer).boolean; + } + + static final _id_compareTo = File._class.instanceMethodId( + r'compareTo', + r'(Ljava/io/File;)I', + ); + + static final _compareTo = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public int compareTo(java.io.File file)` + core$_.int compareTo(File? file) { + final _$file = file?.reference ?? jni$_.jNullReference; + return _compareTo( + reference.pointer, + _id_compareTo.pointer, + _$file.pointer, + ).integer; + } + + static final _id_createNewFile = File._class.instanceMethodId( + r'createNewFile', + r'()Z', + ); + + static final _createNewFile = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean createNewFile()` + core$_.bool createNewFile() { + return _createNewFile(reference.pointer, _id_createNewFile.pointer).boolean; + } + + static final _id_delete = File._class.instanceMethodId(r'delete', r'()Z'); + + static final _delete = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean delete()` + core$_.bool delete() { + return _delete(reference.pointer, _id_delete.pointer).boolean; + } + + static final _id_deleteOnExit = File._class.instanceMethodId( + r'deleteOnExit', + r'()V', + ); + + static final _deleteOnExit = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public void deleteOnExit()` + void deleteOnExit() { + _deleteOnExit(reference.pointer, _id_deleteOnExit.pointer).check(); + } + + static final _id_equals = File._class.instanceMethodId( + r'equals', + r'(Ljava/lang/Object;)Z', + ); + + static final _equals = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public boolean equals(java.lang.Object object)` + core$_.bool equals(jni$_.JObject? object) { + final _$object = object?.reference ?? jni$_.jNullReference; + return _equals( + reference.pointer, + _id_equals.pointer, + _$object.pointer, + ).boolean; + } + + static final _id_exists = File._class.instanceMethodId(r'exists', r'()Z'); + + static final _exists = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean exists()` + core$_.bool exists() { + return _exists(reference.pointer, _id_exists.pointer).boolean; + } + + static final _id_get$absoluteFile = File._class.instanceMethodId( + r'getAbsoluteFile', + r'()Ljava/io/File;', + ); + + static final _get$absoluteFile = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.io.File getAbsoluteFile()` + /// The returned object must be released after use, by calling the [release] method. + File? get absoluteFile { + return _get$absoluteFile( + reference.pointer, + _id_get$absoluteFile.pointer, + ).object(); + } + + static final _id_get$absolutePath = File._class.instanceMethodId( + r'getAbsolutePath', + r'()Ljava/lang/String;', + ); + + static final _get$absolutePath = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.lang.String getAbsolutePath()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get absolutePath { + return _get$absolutePath( + reference.pointer, + _id_get$absolutePath.pointer, + ).object(); + } + + static final _id_get$canonicalFile = File._class.instanceMethodId( + r'getCanonicalFile', + r'()Ljava/io/File;', + ); + + static final _get$canonicalFile = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.io.File getCanonicalFile()` + /// The returned object must be released after use, by calling the [release] method. + File? get canonicalFile { + return _get$canonicalFile( + reference.pointer, + _id_get$canonicalFile.pointer, + ).object(); + } + + static final _id_get$canonicalPath = File._class.instanceMethodId( + r'getCanonicalPath', + r'()Ljava/lang/String;', + ); + + static final _get$canonicalPath = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.lang.String getCanonicalPath()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get canonicalPath { + return _get$canonicalPath( + reference.pointer, + _id_get$canonicalPath.pointer, + ).object(); + } + + static final _id_get$freeSpace = File._class.instanceMethodId( + r'getFreeSpace', + r'()J', + ); + + static final _get$freeSpace = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallLongMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public long getFreeSpace()` + core$_.int get freeSpace { + return _get$freeSpace(reference.pointer, _id_get$freeSpace.pointer).long; + } + + static final _id_get$name = File._class.instanceMethodId( + r'getName', + r'()Ljava/lang/String;', + ); + + static final _get$name = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.lang.String getName()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get name { + return _get$name( + reference.pointer, + _id_get$name.pointer, + ).object(); + } + + static final _id_get$parent = File._class.instanceMethodId( + r'getParent', + r'()Ljava/lang/String;', + ); + + static final _get$parent = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.lang.String getParent()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get parent { + return _get$parent( + reference.pointer, + _id_get$parent.pointer, + ).object(); + } + + static final _id_get$parentFile = File._class.instanceMethodId( + r'getParentFile', + r'()Ljava/io/File;', + ); + + static final _get$parentFile = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.io.File getParentFile()` + /// The returned object must be released after use, by calling the [release] method. + File? get parentFile { + return _get$parentFile( + reference.pointer, + _id_get$parentFile.pointer, + ).object(); + } + + static final _id_get$path = File._class.instanceMethodId( + r'getPath', + r'()Ljava/lang/String;', + ); + + static final _get$path = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.lang.String getPath()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? get path { + return _get$path( + reference.pointer, + _id_get$path.pointer, + ).object(); + } + + static final _id_get$totalSpace = File._class.instanceMethodId( + r'getTotalSpace', + r'()J', + ); + + static final _get$totalSpace = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallLongMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public long getTotalSpace()` + core$_.int get totalSpace { + return _get$totalSpace(reference.pointer, _id_get$totalSpace.pointer).long; + } + + static final _id_get$usableSpace = File._class.instanceMethodId( + r'getUsableSpace', + r'()J', + ); + + static final _get$usableSpace = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallLongMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public long getUsableSpace()` + core$_.int get usableSpace { + return _get$usableSpace( + reference.pointer, + _id_get$usableSpace.pointer, + ).long; + } + + static final _id_hashCode$1 = File._class.instanceMethodId( + r'hashCode', + r'()I', + ); + + static final _hashCode$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public int hashCode()` + core$_.int hashCode$1() { + return _hashCode$1(reference.pointer, _id_hashCode$1.pointer).integer; + } + + static final _id_get$isAbsolute = File._class.instanceMethodId( + r'isAbsolute', + r'()Z', + ); + + static final _get$isAbsolute = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean isAbsolute()` + core$_.bool get isAbsolute { + return _get$isAbsolute( + reference.pointer, + _id_get$isAbsolute.pointer, + ).boolean; + } + + static final _id_get$isDirectory = File._class.instanceMethodId( + r'isDirectory', + r'()Z', + ); + + static final _get$isDirectory = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean isDirectory()` + core$_.bool get isDirectory { + return _get$isDirectory( + reference.pointer, + _id_get$isDirectory.pointer, + ).boolean; + } + + static final _id_get$isFile = File._class.instanceMethodId(r'isFile', r'()Z'); + + static final _get$isFile = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean isFile()` + core$_.bool get isFile { + return _get$isFile(reference.pointer, _id_get$isFile.pointer).boolean; + } + + static final _id_get$isHidden = File._class.instanceMethodId( + r'isHidden', + r'()Z', + ); + + static final _get$isHidden = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean isHidden()` + core$_.bool get isHidden { + return _get$isHidden(reference.pointer, _id_get$isHidden.pointer).boolean; + } + + static final _id_lastModified = File._class.instanceMethodId( + r'lastModified', + r'()J', + ); + + static final _lastModified = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallLongMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public long lastModified()` + core$_.int lastModified() { + return _lastModified(reference.pointer, _id_lastModified.pointer).long; + } + + static final _id_length = File._class.instanceMethodId(r'length', r'()J'); + + static final _length = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallLongMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public long length()` + core$_.int length() { + return _length(reference.pointer, _id_length.pointer).long; + } + + static final _id_list = File._class.instanceMethodId( + r'list', + r'()[Ljava/lang/String;', + ); + + static final _list = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.lang.String[] list()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? list() { + return _list( + reference.pointer, + _id_list.pointer, + ).object?>(); + } + + static final _id_list$1 = File._class.instanceMethodId( + r'list', + r'(Ljava/io/FilenameFilter;)[Ljava/lang/String;', + ); + + static final _list$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public java.lang.String[] list(java.io.FilenameFilter filenameFilter)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? list$1(jni$_.JObject? filenameFilter) { + final _$filenameFilter = filenameFilter?.reference ?? jni$_.jNullReference; + return _list$1( + reference.pointer, + _id_list$1.pointer, + _$filenameFilter.pointer, + ).object?>(); + } + + static final _id_listFiles = File._class.instanceMethodId( + r'listFiles', + r'()[Ljava/io/File;', + ); + + static final _listFiles = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.io.File[] listFiles()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? listFiles() { + return _listFiles( + reference.pointer, + _id_listFiles.pointer, + ).object?>(); + } + + static final _id_listFiles$1 = File._class.instanceMethodId( + r'listFiles', + r'(Ljava/io/FileFilter;)[Ljava/io/File;', + ); + + static final _listFiles$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public java.io.File[] listFiles(java.io.FileFilter fileFilter)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? listFiles$1(jni$_.JObject? fileFilter) { + final _$fileFilter = fileFilter?.reference ?? jni$_.jNullReference; + return _listFiles$1( + reference.pointer, + _id_listFiles$1.pointer, + _$fileFilter.pointer, + ).object?>(); + } + + static final _id_listFiles$2 = File._class.instanceMethodId( + r'listFiles', + r'(Ljava/io/FilenameFilter;)[Ljava/io/File;', + ); + + static final _listFiles$2 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public java.io.File[] listFiles(java.io.FilenameFilter filenameFilter)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? listFiles$2(jni$_.JObject? filenameFilter) { + final _$filenameFilter = filenameFilter?.reference ?? jni$_.jNullReference; + return _listFiles$2( + reference.pointer, + _id_listFiles$2.pointer, + _$filenameFilter.pointer, + ).object?>(); + } + + static final _id_mkdir = File._class.instanceMethodId(r'mkdir', r'()Z'); + + static final _mkdir = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean mkdir()` + core$_.bool mkdir() { + return _mkdir(reference.pointer, _id_mkdir.pointer).boolean; + } + + static final _id_mkdirs = File._class.instanceMethodId(r'mkdirs', r'()Z'); + + static final _mkdirs = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean mkdirs()` + core$_.bool mkdirs() { + return _mkdirs(reference.pointer, _id_mkdirs.pointer).boolean; + } + + static final _id_renameTo = File._class.instanceMethodId( + r'renameTo', + r'(Ljava/io/File;)Z', + ); + + static final _renameTo = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `public boolean renameTo(java.io.File file)` + core$_.bool renameTo(File? file) { + final _$file = file?.reference ?? jni$_.jNullReference; + return _renameTo( + reference.pointer, + _id_renameTo.pointer, + _$file.pointer, + ).boolean; + } + + static final _id_setExecutable = File._class.instanceMethodId( + r'setExecutable', + r'(Z)Z', + ); + + static final _setExecutable = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public boolean setExecutable(boolean z)` + core$_.bool setExecutable(core$_.bool z) { + return _setExecutable( + reference.pointer, + _id_setExecutable.pointer, + z ? 1 : 0, + ).boolean; + } + + static final _id_setExecutable$1 = File._class.instanceMethodId( + r'setExecutable', + r'(ZZ)Z', + ); + + static final _setExecutable$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32, jni$_.Int32)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public boolean setExecutable(boolean z, boolean z1)` + core$_.bool setExecutable$1(core$_.bool z, core$_.bool z1) { + return _setExecutable$1( + reference.pointer, + _id_setExecutable$1.pointer, + z ? 1 : 0, + z1 ? 1 : 0, + ).boolean; + } + + static final _id_setLastModified = File._class.instanceMethodId( + r'setLastModified', + r'(J)Z', + ); + + static final _setLastModified = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int64,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public boolean setLastModified(long j)` + core$_.bool setLastModified(core$_.int j) { + return _setLastModified( + reference.pointer, + _id_setLastModified.pointer, + j, + ).boolean; + } + + static final _id_setReadOnly = File._class.instanceMethodId( + r'setReadOnly', + r'()Z', + ); + + static final _setReadOnly = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public boolean setReadOnly()` + core$_.bool setReadOnly() { + return _setReadOnly(reference.pointer, _id_setReadOnly.pointer).boolean; + } + + static final _id_setReadable = File._class.instanceMethodId( + r'setReadable', + r'(Z)Z', + ); + + static final _setReadable = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public boolean setReadable(boolean z)` + core$_.bool setReadable(core$_.bool z) { + return _setReadable( + reference.pointer, + _id_setReadable.pointer, + z ? 1 : 0, + ).boolean; + } + + static final _id_setReadable$1 = File._class.instanceMethodId( + r'setReadable', + r'(ZZ)Z', + ); + + static final _setReadable$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32, jni$_.Int32)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public boolean setReadable(boolean z, boolean z1)` + core$_.bool setReadable$1(core$_.bool z, core$_.bool z1) { + return _setReadable$1( + reference.pointer, + _id_setReadable$1.pointer, + z ? 1 : 0, + z1 ? 1 : 0, + ).boolean; + } + + static final _id_setWritable = File._class.instanceMethodId( + r'setWritable', + r'(Z)Z', + ); + + static final _setWritable = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + ) + >(); + + /// from: `public boolean setWritable(boolean z)` + core$_.bool setWritable(core$_.bool z) { + return _setWritable( + reference.pointer, + _id_setWritable.pointer, + z ? 1 : 0, + ).boolean; + } + + static final _id_setWritable$1 = File._class.instanceMethodId( + r'setWritable', + r'(ZZ)Z', + ); + + static final _setWritable$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32, jni$_.Int32)>, + ) + > + >('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + core$_.int, + core$_.int, + ) + >(); + + /// from: `public boolean setWritable(boolean z, boolean z1)` + core$_.bool setWritable$1(core$_.bool z, core$_.bool z1) { + return _setWritable$1( + reference.pointer, + _id_setWritable$1.pointer, + z ? 1 : 0, + z1 ? 1 : 0, + ).boolean; + } + + static final _id_toPath = File._class.instanceMethodId( + r'toPath', + r'()Ljava/nio/file/Path;', + ); + + static final _toPath = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.nio.file.Path toPath()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? toPath() { + return _toPath( + reference.pointer, + _id_toPath.pointer, + ).object(); + } + + static final _id_toString$1 = File._class.instanceMethodId( + r'toString', + r'()Ljava/lang/String;', + ); + + static final _toString$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.lang.String toString()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JString? toString$1() { + return _toString$1( + reference.pointer, + _id_toString$1.pointer, + ).object(); + } + + static final _id_toURI = File._class.instanceMethodId( + r'toURI', + r'()Ljava/net/URI;', + ); + + static final _toURI = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.net.URI toURI()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? toURI() { + return _toURI( + reference.pointer, + _id_toURI.pointer, + ).object(); + } + + static final _id_toURL = File._class.instanceMethodId( + r'toURL', + r'()Ljava/net/URL;', + ); + + static final _toURL = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public java.net.URL toURL()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? toURL() { + return _toURL( + reference.pointer, + _id_toURL.pointer, + ).object(); + } + + core$_.bool operator <(File? file) { + return compareTo(file) < 0; + } + + core$_.bool operator <=(File? file) { + return compareTo(file) <= 0; + } + + core$_.bool operator >(File? file) { + return compareTo(file) > 0; + } + + core$_.bool operator >=(File? file) { + return compareTo(file) >= 0; + } +} + +final class $File$Type$ extends jni$_.JType { + @jni$_.internal + const $File$Type$(); + + @jni$_.internal + @core$_.override + String get signature => r'Ljava/io/File;'; +} + +/// from: `android.os.Environment` +extension type Environment._(jni$_.JObject _$this) implements jni$_.JObject { + static final _class = jni$_.JClass.forName(r'android/os/Environment'); + + /// The type which includes information such as the signature of this class. + static const jni$_.JType type = $Environment$Type$(); + static final _id_DIRECTORY_ALARMS = _class.staticFieldId( + r'DIRECTORY_ALARMS', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_ALARMS` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_ALARMS => + _id_DIRECTORY_ALARMS.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_ALARMS` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_ALARMS(jni$_.JString? value) => + _id_DIRECTORY_ALARMS.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_AUDIOBOOKS = _class.staticFieldId( + r'DIRECTORY_AUDIOBOOKS', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_AUDIOBOOKS` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_AUDIOBOOKS => + _id_DIRECTORY_AUDIOBOOKS.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_AUDIOBOOKS` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_AUDIOBOOKS(jni$_.JString? value) => + _id_DIRECTORY_AUDIOBOOKS.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_DCIM = _class.staticFieldId( + r'DIRECTORY_DCIM', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_DCIM` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_DCIM => + _id_DIRECTORY_DCIM.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_DCIM` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_DCIM(jni$_.JString? value) => + _id_DIRECTORY_DCIM.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_DOCUMENTS = _class.staticFieldId( + r'DIRECTORY_DOCUMENTS', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_DOCUMENTS` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_DOCUMENTS => + _id_DIRECTORY_DOCUMENTS.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_DOCUMENTS` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_DOCUMENTS(jni$_.JString? value) => + _id_DIRECTORY_DOCUMENTS.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_DOWNLOADS = _class.staticFieldId( + r'DIRECTORY_DOWNLOADS', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_DOWNLOADS` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_DOWNLOADS => + _id_DIRECTORY_DOWNLOADS.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_DOWNLOADS` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_DOWNLOADS(jni$_.JString? value) => + _id_DIRECTORY_DOWNLOADS.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_MOVIES = _class.staticFieldId( + r'DIRECTORY_MOVIES', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_MOVIES` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_MOVIES => + _id_DIRECTORY_MOVIES.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_MOVIES` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_MOVIES(jni$_.JString? value) => + _id_DIRECTORY_MOVIES.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_MUSIC = _class.staticFieldId( + r'DIRECTORY_MUSIC', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_MUSIC` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_MUSIC => + _id_DIRECTORY_MUSIC.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_MUSIC` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_MUSIC(jni$_.JString? value) => + _id_DIRECTORY_MUSIC.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_NOTIFICATIONS = _class.staticFieldId( + r'DIRECTORY_NOTIFICATIONS', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_NOTIFICATIONS` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_NOTIFICATIONS => + _id_DIRECTORY_NOTIFICATIONS.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_NOTIFICATIONS` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_NOTIFICATIONS(jni$_.JString? value) => + _id_DIRECTORY_NOTIFICATIONS.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_PICTURES = _class.staticFieldId( + r'DIRECTORY_PICTURES', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_PICTURES` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_PICTURES => + _id_DIRECTORY_PICTURES.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_PICTURES` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_PICTURES(jni$_.JString? value) => + _id_DIRECTORY_PICTURES.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_PODCASTS = _class.staticFieldId( + r'DIRECTORY_PODCASTS', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_PODCASTS` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_PODCASTS => + _id_DIRECTORY_PODCASTS.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_PODCASTS` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_PODCASTS(jni$_.JString? value) => + _id_DIRECTORY_PODCASTS.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_RECORDINGS = _class.staticFieldId( + r'DIRECTORY_RECORDINGS', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_RECORDINGS` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_RECORDINGS => + _id_DIRECTORY_RECORDINGS.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_RECORDINGS` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_RECORDINGS(jni$_.JString? value) => + _id_DIRECTORY_RECORDINGS.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_RINGTONES = _class.staticFieldId( + r'DIRECTORY_RINGTONES', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_RINGTONES` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_RINGTONES => + _id_DIRECTORY_RINGTONES.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_RINGTONES` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_RINGTONES(jni$_.JString? value) => + _id_DIRECTORY_RINGTONES.set(_class, jni$_.JString.type, value); + + static final _id_DIRECTORY_SCREENSHOTS = _class.staticFieldId( + r'DIRECTORY_SCREENSHOTS', + r'Ljava/lang/String;', + ); + + /// from: `static public java.lang.String DIRECTORY_SCREENSHOTS` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get DIRECTORY_SCREENSHOTS => + _id_DIRECTORY_SCREENSHOTS.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + /// from: `static public java.lang.String DIRECTORY_SCREENSHOTS` + /// The returned object must be released after use, by calling the [release] method. + static set DIRECTORY_SCREENSHOTS(jni$_.JString? value) => + _id_DIRECTORY_SCREENSHOTS.set(_class, jni$_.JString.type, value); + + static final _id_MEDIA_BAD_REMOVAL = _class.staticFieldId( + r'MEDIA_BAD_REMOVAL', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_BAD_REMOVAL` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_BAD_REMOVAL => + _id_MEDIA_BAD_REMOVAL.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_CHECKING = _class.staticFieldId( + r'MEDIA_CHECKING', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_CHECKING` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_CHECKING => + _id_MEDIA_CHECKING.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_EJECTING = _class.staticFieldId( + r'MEDIA_EJECTING', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_EJECTING` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_EJECTING => + _id_MEDIA_EJECTING.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_MOUNTED = _class.staticFieldId( + r'MEDIA_MOUNTED', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_MOUNTED` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_MOUNTED => + _id_MEDIA_MOUNTED.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_MOUNTED_READ_ONLY = _class.staticFieldId( + r'MEDIA_MOUNTED_READ_ONLY', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_MOUNTED_READ_ONLY` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_MOUNTED_READ_ONLY => + _id_MEDIA_MOUNTED_READ_ONLY.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_NOFS = _class.staticFieldId( + r'MEDIA_NOFS', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_NOFS` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_NOFS => + _id_MEDIA_NOFS.getNullable(_class, jni$_.JString.type) as jni$_.JString?; + + static final _id_MEDIA_REMOVED = _class.staticFieldId( + r'MEDIA_REMOVED', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_REMOVED` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_REMOVED => + _id_MEDIA_REMOVED.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_SHARED = _class.staticFieldId( + r'MEDIA_SHARED', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_SHARED` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_SHARED => + _id_MEDIA_SHARED.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_UNKNOWN = _class.staticFieldId( + r'MEDIA_UNKNOWN', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_UNKNOWN` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_UNKNOWN => + _id_MEDIA_UNKNOWN.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_UNMOUNTABLE = _class.staticFieldId( + r'MEDIA_UNMOUNTABLE', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_UNMOUNTABLE` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_UNMOUNTABLE => + _id_MEDIA_UNMOUNTABLE.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_MEDIA_UNMOUNTED = _class.staticFieldId( + r'MEDIA_UNMOUNTED', + r'Ljava/lang/String;', + ); + + /// from: `static public final java.lang.String MEDIA_UNMOUNTED` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get MEDIA_UNMOUNTED => + _id_MEDIA_UNMOUNTED.getNullable(_class, jni$_.JString.type) + as jni$_.JString?; + + static final _id_new$ = _class.constructorId(r'()V'); + + static final _new$ = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_NewObject') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `public void ()` + /// The returned object must be released after use, by calling the [release] method. + factory Environment() { + return _new$( + _class.reference.pointer, + _id_new$.pointer, + ).object(); + } + + static final _id_get$dataDirectory = _class.staticMethodId( + r'getDataDirectory', + r'()Ljava/io/File;', + ); + + static final _get$dataDirectory = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public java.io.File getDataDirectory()` + /// The returned object must be released after use, by calling the [release] method. + static File? get dataDirectory { + return _get$dataDirectory( + _class.reference.pointer, + _id_get$dataDirectory.pointer, + ).object(); + } + + static final _id_get$downloadCacheDirectory = _class.staticMethodId( + r'getDownloadCacheDirectory', + r'()Ljava/io/File;', + ); + + static final _get$downloadCacheDirectory = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public java.io.File getDownloadCacheDirectory()` + /// The returned object must be released after use, by calling the [release] method. + static File? get downloadCacheDirectory { + return _get$downloadCacheDirectory( + _class.reference.pointer, + _id_get$downloadCacheDirectory.pointer, + ).object(); + } + + static final _id_get$externalStorageDirectory = _class.staticMethodId( + r'getExternalStorageDirectory', + r'()Ljava/io/File;', + ); + + static final _get$externalStorageDirectory = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public java.io.File getExternalStorageDirectory()` + /// The returned object must be released after use, by calling the [release] method. + static File? get externalStorageDirectory { + return _get$externalStorageDirectory( + _class.reference.pointer, + _id_get$externalStorageDirectory.pointer, + ).object(); + } + + static final _id_getExternalStoragePublicDirectory = _class.staticMethodId( + r'getExternalStoragePublicDirectory', + r'(Ljava/lang/String;)Ljava/io/File;', + ); + + static final _getExternalStoragePublicDirectory = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public java.io.File getExternalStoragePublicDirectory(java.lang.String string)` + /// The returned object must be released after use, by calling the [release] method. + static File? getExternalStoragePublicDirectory(jni$_.JString? string) { + final _$string = string?.reference ?? jni$_.jNullReference; + return _getExternalStoragePublicDirectory( + _class.reference.pointer, + _id_getExternalStoragePublicDirectory.pointer, + _$string.pointer, + ).object(); + } + + static final _id_get$externalStorageState = _class.staticMethodId( + r'getExternalStorageState', + r'()Ljava/lang/String;', + ); + + static final _get$externalStorageState = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public java.lang.String getExternalStorageState()` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? get externalStorageState { + return _get$externalStorageState( + _class.reference.pointer, + _id_get$externalStorageState.pointer, + ).object(); + } + + static final _id_getExternalStorageState = _class.staticMethodId( + r'getExternalStorageState', + r'(Ljava/io/File;)Ljava/lang/String;', + ); + + static final _getExternalStorageState = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public java.lang.String getExternalStorageState(java.io.File file)` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? getExternalStorageState(File? file) { + final _$file = file?.reference ?? jni$_.jNullReference; + return _getExternalStorageState( + _class.reference.pointer, + _id_getExternalStorageState.pointer, + _$file.pointer, + ).object(); + } + + static final _id_get$rootDirectory = _class.staticMethodId( + r'getRootDirectory', + r'()Ljava/io/File;', + ); + + static final _get$rootDirectory = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public java.io.File getRootDirectory()` + /// The returned object must be released after use, by calling the [release] method. + static File? get rootDirectory { + return _get$rootDirectory( + _class.reference.pointer, + _id_get$rootDirectory.pointer, + ).object(); + } + + static final _id_get$storageDirectory = _class.staticMethodId( + r'getStorageDirectory', + r'()Ljava/io/File;', + ); + + static final _get$storageDirectory = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public java.io.File getStorageDirectory()` + /// The returned object must be released after use, by calling the [release] method. + static File? get storageDirectory { + return _get$storageDirectory( + _class.reference.pointer, + _id_get$storageDirectory.pointer, + ).object(); + } + + static final _id_getStorageState = _class.staticMethodId( + r'getStorageState', + r'(Ljava/io/File;)Ljava/lang/String;', + ); + + static final _getStorageState = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public java.lang.String getStorageState(java.io.File file)` + /// The returned object must be released after use, by calling the [release] method. + static jni$_.JString? getStorageState(File? file) { + final _$file = file?.reference ?? jni$_.jNullReference; + return _getStorageState( + _class.reference.pointer, + _id_getStorageState.pointer, + _$file.pointer, + ).object(); + } + + static final _id_get$isExternalStorageEmulated = _class.staticMethodId( + r'isExternalStorageEmulated', + r'()Z', + ); + + static final _get$isExternalStorageEmulated = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public boolean isExternalStorageEmulated()` + static core$_.bool get isExternalStorageEmulated { + return _get$isExternalStorageEmulated( + _class.reference.pointer, + _id_get$isExternalStorageEmulated.pointer, + ).boolean; + } + + static final _id_isExternalStorageEmulated$1 = _class.staticMethodId( + r'isExternalStorageEmulated', + r'(Ljava/io/File;)Z', + ); + + static final _isExternalStorageEmulated$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public boolean isExternalStorageEmulated(java.io.File file)` + static core$_.bool isExternalStorageEmulated$1(File? file) { + final _$file = file?.reference ?? jni$_.jNullReference; + return _isExternalStorageEmulated$1( + _class.reference.pointer, + _id_isExternalStorageEmulated$1.pointer, + _$file.pointer, + ).boolean; + } + + static final _id_get$isExternalStorageLegacy = _class.staticMethodId( + r'isExternalStorageLegacy', + r'()Z', + ); + + static final _get$isExternalStorageLegacy = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public boolean isExternalStorageLegacy()` + static core$_.bool get isExternalStorageLegacy { + return _get$isExternalStorageLegacy( + _class.reference.pointer, + _id_get$isExternalStorageLegacy.pointer, + ).boolean; + } + + static final _id_isExternalStorageLegacy$1 = _class.staticMethodId( + r'isExternalStorageLegacy', + r'(Ljava/io/File;)Z', + ); + + static final _isExternalStorageLegacy$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public boolean isExternalStorageLegacy(java.io.File file)` + static core$_.bool isExternalStorageLegacy$1(File? file) { + final _$file = file?.reference ?? jni$_.jNullReference; + return _isExternalStorageLegacy$1( + _class.reference.pointer, + _id_isExternalStorageLegacy$1.pointer, + _$file.pointer, + ).boolean; + } + + static final _id_get$isExternalStorageManager = _class.staticMethodId( + r'isExternalStorageManager', + r'()Z', + ); + + static final _get$isExternalStorageManager = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public boolean isExternalStorageManager()` + static core$_.bool get isExternalStorageManager { + return _get$isExternalStorageManager( + _class.reference.pointer, + _id_get$isExternalStorageManager.pointer, + ).boolean; + } + + static final _id_isExternalStorageManager$1 = _class.staticMethodId( + r'isExternalStorageManager', + r'(Ljava/io/File;)Z', + ); + + static final _isExternalStorageManager$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public boolean isExternalStorageManager(java.io.File file)` + static core$_.bool isExternalStorageManager$1(File? file) { + final _$file = file?.reference ?? jni$_.jNullReference; + return _isExternalStorageManager$1( + _class.reference.pointer, + _id_isExternalStorageManager$1.pointer, + _$file.pointer, + ).boolean; + } + + static final _id_get$isExternalStorageRemovable = _class.staticMethodId( + r'isExternalStorageRemovable', + r'()Z', + ); + + static final _get$isExternalStorageRemovable = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + > + >('globalEnv_CallStaticBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + ) + >(); + + /// from: `static public boolean isExternalStorageRemovable()` + static core$_.bool get isExternalStorageRemovable { + return _get$isExternalStorageRemovable( + _class.reference.pointer, + _id_get$isExternalStorageRemovable.pointer, + ).boolean; + } + + static final _id_isExternalStorageRemovable$1 = _class.staticMethodId( + r'isExternalStorageRemovable', + r'(Ljava/io/File;)Z', + ); + + static final _isExternalStorageRemovable$1 = + jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>, + ) + > + >('globalEnv_CallStaticBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + ) + >(); + + /// from: `static public boolean isExternalStorageRemovable(java.io.File file)` + static core$_.bool isExternalStorageRemovable$1(File? file) { + final _$file = file?.reference ?? jni$_.jNullReference; + return _isExternalStorageRemovable$1( + _class.reference.pointer, + _id_isExternalStorageRemovable$1.pointer, + _$file.pointer, + ).boolean; + } +} + +final class $Environment$Type$ extends jni$_.JType { + @jni$_.internal + const $Environment$Type$(); + + @jni$_.internal + @core$_.override + String get signature => r'Landroid/os/Environment;'; +} diff --git a/packages/path_provider/path_provider_android/lib/src/path_provider_android_real.dart b/packages/path_provider/path_provider_android/lib/src/path_provider_android_real.dart new file mode 100644 index 000000000000..4055f9b33af3 --- /dev/null +++ b/packages/path_provider/path_provider_android/lib/src/path_provider_android_real.dart @@ -0,0 +1,145 @@ +// Copyright 2013 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:jni/jni.dart'; +import 'package:jni_flutter/jni_flutter.dart'; +import 'package:path_provider_platform_interface/path_provider_platform_interface.dart'; + +import 'path_provider.g.dart'; + +/// The Android implementation of [PathProviderPlatform]. +class PathProviderAndroid extends PathProviderPlatform { + late final Context _applicationContext = androidApplicationContext.as( + Context.type, + ); + + /// Registers this class as the default instance of [PathProviderPlatform]. + static void registerWith() { + PathProviderPlatform.instance = PathProviderAndroid(); + } + + @override + Future getTemporaryPath() { + return getApplicationCachePath(); + } + + @override + Future getApplicationSupportPath() async { + return PathUtils.getFilesDir( + _applicationContext, + ).toDartString(releaseOriginal: true); + } + + @override + Future getApplicationDocumentsPath() async { + return PathUtils.getDataDirectory( + _applicationContext, + ).toDartString(releaseOriginal: true); + } + + @override + Future getApplicationCachePath() async { + final File? file = _applicationContext.cacheDir; + final String? path = file?.path?.toDartString(releaseOriginal: true); + file?.release(); + return path; + } + + @override + Future getExternalStoragePath() async { + final File? dir = _applicationContext.getExternalFilesDir(null); + if (dir != null) { + final String? path = dir.absolutePath?.toDartString( + releaseOriginal: true, + ); + dir.release(); + return path; + } + + return null; + } + + @override + Future?> getExternalCachePaths() async { + final JArray? files = _applicationContext.externalCacheDirs; + if (files != null) { + final List paths = _toStringList(files); + files.release(); + return paths; + } + + return null; + } + + @override + Future?> getExternalStoragePaths({ + StorageDirectory? type, + }) async { + final JString? directory = type != null + ? _toNativeStorageDirectory(type) + : null; + final JArray? files = _applicationContext.getExternalFilesDirs( + directory, + ); + directory?.release(); + if (files != null) { + final List paths = _toStringList(files); + files.release(); + return paths; + } + + return null; + } + + @override + Future getDownloadsPath() async { + final List? paths = await getExternalStoragePaths( + type: StorageDirectory.downloads, + ); + return paths?.firstOrNull; + } +} + +JString _toNativeStorageDirectory(StorageDirectory directory) { + switch (directory) { + case StorageDirectory.music: + return Environment.DIRECTORY_MUSIC!; + case StorageDirectory.podcasts: + return Environment.DIRECTORY_PODCASTS!; + case StorageDirectory.ringtones: + return Environment.DIRECTORY_RINGTONES!; + case StorageDirectory.alarms: + return Environment.DIRECTORY_ALARMS!; + case StorageDirectory.notifications: + return Environment.DIRECTORY_NOTIFICATIONS!; + case StorageDirectory.pictures: + return Environment.DIRECTORY_PICTURES!; + case StorageDirectory.movies: + return Environment.DIRECTORY_MOVIES!; + case StorageDirectory.downloads: + return Environment.DIRECTORY_DOWNLOADS!; + case StorageDirectory.dcim: + return Environment.DIRECTORY_DCIM!; + case StorageDirectory.documents: + return Environment.DIRECTORY_DOCUMENTS!; + } +} + +List _toStringList(JArray files) { + final List dartList = files.asDart(); + final paths = []; + for (final file in dartList) { + if (file != null) { + final String? path = file.absolutePath?.toDartString( + releaseOriginal: true, + ); + if (path != null) { + paths.add(path); + } + file.release(); + } + } + + return paths; +} diff --git a/packages/path_provider/path_provider_android/lib/src/path_provider_android_stub.dart b/packages/path_provider/path_provider_android/lib/src/path_provider_android_stub.dart new file mode 100644 index 000000000000..5e24c93a8ffd --- /dev/null +++ b/packages/path_provider/path_provider_android/lib/src/path_provider_android_stub.dart @@ -0,0 +1,15 @@ +// Copyright 2013 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:path_provider_platform_interface/path_provider_platform_interface.dart'; + +// This file is a stub to satisfy the analyzer by matching the public API +// surface of the real implementation. This code should never actually be +// called. + +/// The Android implementation of [PathProviderPlatform]. +class PathProviderAndroid extends PathProviderPlatform { + /// Registers this class as the default instance of [PathProviderPlatform]. + static void registerWith() {} +} diff --git a/packages/path_provider/path_provider_android/pigeons/copyright.txt b/packages/path_provider/path_provider_android/pigeons/copyright.txt deleted file mode 100644 index 07e5f8598a80..000000000000 --- a/packages/path_provider/path_provider_android/pigeons/copyright.txt +++ /dev/null @@ -1,3 +0,0 @@ -Copyright 2013 The Flutter Authors -Use of this source code is governed by a BSD-style license that can be -found in the LICENSE file. diff --git a/packages/path_provider/path_provider_android/pigeons/messages.dart b/packages/path_provider/path_provider_android/pigeons/messages.dart deleted file mode 100644 index 848018cedd1c..000000000000 --- a/packages/path_provider/path_provider_android/pigeons/messages.dart +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2013 The Flutter Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -import 'package:pigeon/pigeon.dart'; - -@ConfigurePigeon( - PigeonOptions( - input: 'pigeons/messages.dart', - javaOut: - 'android/src/main/java/io/flutter/plugins/pathprovider/Messages.java', - javaOptions: JavaOptions( - className: 'Messages', - package: 'io.flutter.plugins.pathprovider', - ), - dartOut: 'lib/messages.g.dart', - copyrightHeader: 'pigeons/copyright.txt', - ), -) -enum StorageDirectory { - root, - music, - podcasts, - ringtones, - alarms, - notifications, - pictures, - movies, - downloads, - dcim, - documents, -} - -@HostApi() -abstract class PathProviderApi { - @TaskQueue(type: TaskQueueType.serialBackgroundThread) - String? getTemporaryPath(); - @TaskQueue(type: TaskQueueType.serialBackgroundThread) - String? getApplicationSupportPath(); - @TaskQueue(type: TaskQueueType.serialBackgroundThread) - String? getApplicationDocumentsPath(); - @TaskQueue(type: TaskQueueType.serialBackgroundThread) - String? getApplicationCachePath(); - @TaskQueue(type: TaskQueueType.serialBackgroundThread) - String? getExternalStoragePath(); - @TaskQueue(type: TaskQueueType.serialBackgroundThread) - List getExternalCachePaths(); - @TaskQueue(type: TaskQueueType.serialBackgroundThread) - List getExternalStoragePaths(StorageDirectory directory); -} diff --git a/packages/path_provider/path_provider_android/pubspec.yaml b/packages/path_provider/path_provider_android/pubspec.yaml index a5a6380aa24b..599b42abe9da 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.23 +version: 2.3.0 environment: sdk: ^3.9.0 @@ -13,19 +13,19 @@ flutter: implements: path_provider platforms: android: - package: io.flutter.plugins.pathprovider - pluginClass: PathProviderPlugin dartPluginClass: PathProviderAndroid dependencies: flutter: sdk: flutter + jni: ^1.0.0 + jni_flutter: ^1.0.1 path_provider_platform_interface: ^2.1.0 dev_dependencies: flutter_test: sdk: flutter - pigeon: ^26.1.0 + jnigen: ^0.16.0 test: ^1.16.0 topics: diff --git a/packages/path_provider/path_provider_android/test/path_provider_android_test.dart b/packages/path_provider/path_provider_android/test/path_provider_android_test.dart index 7b1f2d5d94ec..49763a37397f 100644 --- a/packages/path_provider/path_provider_android/test/path_provider_android_test.dart +++ b/packages/path_provider/path_provider_android/test/path_provider_android_test.dart @@ -2,127 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:flutter/src/services/binary_messenger.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:path_provider_android/messages.g.dart' as messages; import 'package:path_provider_android/path_provider_android.dart'; import 'package:path_provider_platform_interface/path_provider_platform_interface.dart'; -const String kTemporaryPath = 'temporaryPath'; -const String kApplicationSupportPath = 'applicationSupportPath'; -const String kApplicationDocumentsPath = 'applicationDocumentsPath'; -const String kApplicationCachePath = 'applicationCachePath'; -const String kExternalCachePaths = 'externalCachePaths'; -const String kExternalStoragePaths = 'externalStoragePaths'; - -class _Api implements messages.PathProviderApi { - bool returnsExternalStoragePaths = true; - - @override - Future getApplicationDocumentsPath() async => - kApplicationDocumentsPath; - - @override - Future getApplicationSupportPath() async => kApplicationSupportPath; - - @override - Future getApplicationCachePath() async => kApplicationCachePath; - - @override - Future> getExternalCachePaths() async => [ - kExternalCachePaths, - ]; - - @override - Future getExternalStoragePath() async => kExternalStoragePaths; - - @override - Future> getExternalStoragePaths( - messages.StorageDirectory directory, - ) async { - return [if (returnsExternalStoragePaths) kExternalStoragePaths]; - } - - @override - Future getTemporaryPath() async => kTemporaryPath; - - @override - // ignore: non_constant_identifier_names - BinaryMessenger? get pigeonVar_binaryMessenger => null; - - @override - // ignore: non_constant_identifier_names - String get pigeonVar_messageChannelSuffix => ''; -} +// Most tests are in integration_test rather than here, because anything that +// needs to create Java objects has to run in the real runtime. void main() { - late _Api api; - - group('PathProviderAndroid', () { - late PathProviderAndroid pathProvider; - - setUp(() async { - api = _Api(); - pathProvider = PathProviderAndroid(api: api); - }); - - test('getTemporaryPath', () async { - final String? path = await pathProvider.getTemporaryPath(); - expect(path, kTemporaryPath); - }); - - test('getApplicationSupportPath', () async { - final String? path = await pathProvider.getApplicationSupportPath(); - expect(path, kApplicationSupportPath); - }); - - test('getApplicationCachePath', () async { - final String? path = await pathProvider.getApplicationCachePath(); - expect(path, kApplicationCachePath); - }); - - test('getLibraryPath fails', () async { - try { - await pathProvider.getLibraryPath(); - fail('should throw UnsupportedError'); - } catch (e) { - expect(e, isUnsupportedError); - } - }); - - test('getApplicationDocumentsPath', () async { - final String? path = await pathProvider.getApplicationDocumentsPath(); - expect(path, kApplicationDocumentsPath); - }); - - test('getExternalCachePaths succeeds', () async { - final List? result = await pathProvider.getExternalCachePaths(); - expect(result!.length, 1); - expect(result.first, kExternalCachePaths); - }); - - for (final StorageDirectory? type in [ - ...StorageDirectory.values, - ]) { - test('getExternalStoragePaths (type: $type) android succeeds', () async { - final List? result = await pathProvider.getExternalStoragePaths( - type: type, - ); - expect(result!.length, 1); - expect(result.first, kExternalStoragePaths); - }); - } // end of for-loop - - test('getDownloadsPath succeeds', () async { - final String? path = await pathProvider.getDownloadsPath(); - expect(path, kExternalStoragePaths); - }); - - test('getDownloadsPath returns null, when getExternalStoragePaths returns ' - 'an empty list', () async { - api.returnsExternalStoragePaths = false; - final String? path = await pathProvider.getDownloadsPath(); - expect(path, null); - }); + test('registers instance', () { + PathProviderAndroid.registerWith(); + expect(PathProviderPlatform.instance, isA()); }); } diff --git a/packages/path_provider/path_provider_android/tool/jnigen.dart b/packages/path_provider/path_provider_android/tool/jnigen.dart new file mode 100644 index 000000000000..8584dea58b08 --- /dev/null +++ b/packages/path_provider/path_provider_android/tool/jnigen.dart @@ -0,0 +1,31 @@ +// Copyright 2013 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:io'; + +import 'package:jnigen/jnigen.dart'; + +void main() { + final Uri packageRoot = Platform.script.resolve('../'); + generateJniBindings( + Config( + outputConfig: OutputConfig( + dartConfig: DartCodeOutputConfig( + path: packageRoot.resolve('lib/src/path_provider.g.dart'), + structure: OutputStructure.singleFile, + ), + ), + androidSdkConfig: AndroidSdkConfig( + addGradleDeps: true, + androidExample: 'example/', + ), + classes: [ + 'android.content.Context', + 'io.flutter.util.PathUtils', + 'java.io.File', + 'android.os.Environment', + ], + ), + ); +} diff --git a/script/configs/allowed_unpinned_deps.yaml b/script/configs/allowed_unpinned_deps.yaml index f139fc20c341..d5384884c993 100644 --- a/script/configs/allowed_unpinned_deps.yaml +++ b/script/configs/allowed_unpinned_deps.yaml @@ -43,6 +43,9 @@ - intl - io - js +- jni +- jni_flutter +- jnigen - json_serializable - leak_tracker - leak_tracker_flutter_testing diff --git a/script/tool/lib/src/analyze_command.dart b/script/tool/lib/src/analyze_command.dart index 216f8c75811c..91f247eed2c2 100644 --- a/script/tool/lib/src/analyze_command.dart +++ b/script/tool/lib/src/analyze_command.dart @@ -371,10 +371,11 @@ class AnalyzeCommand extends PackageLoopingCommand { RepositoryPackage package, ) async { if (!pluginSupportsPlatform( - platformAndroid, - package, - requiredMode: PlatformSupport.inline, - )) { + platformAndroid, + package, + requiredMode: PlatformSupport.inline, + ) || + !package.platformDirectory(FlutterPlatform.android).existsSync()) { return PackageResult.skip( 'Package does not contain native Android plugin code', ); diff --git a/script/tool/lib/src/gradle_check_command.dart b/script/tool/lib/src/gradle_check_command.dart index 499b332177cd..af0b32bad6e2 100644 --- a/script/tool/lib/src/gradle_check_command.dart +++ b/script/tool/lib/src/gradle_check_command.dart @@ -9,10 +9,8 @@ import 'package:file/file.dart'; import 'package:meta/meta.dart'; import 'package:pub_semver/pub_semver.dart'; -import 'common/core.dart'; import 'common/output_utils.dart'; import 'common/package_looping_command.dart'; -import 'common/plugin_utils.dart'; import 'common/repository_package.dart'; /// The lowest `ext.kotlin_version` that example apps are allowed to use. @@ -788,11 +786,12 @@ Which is below the minimum required. Use at least "JavaVersion.VERSION_$_minimum List gradleLines, ) { final RepositoryPackage enclosingPackage = example.getEnclosingPackage()!; - if (!pluginSupportsPlatform( - platformAndroid, - enclosingPackage, - requiredMode: PlatformSupport.inline, - )) { + // This checks for android/ rather than using pluginSupportsPlatform because + // Dart-only implementations (e.g., usin jnigen) won't have this + // configuration since there's no native plugin code to check. + if (!enclosingPackage + .platformDirectory(FlutterPlatform.android) + .existsSync()) { return true; } final String enclosingPackageName = enclosingPackage.directory.basename; diff --git a/script/tool/test/analyze_command_test.dart b/script/tool/test/analyze_command_test.dart index ef2a609579ac..2cc4947e6d29 100644 --- a/script/tool/test/analyze_command_test.dart +++ b/script/tool/test/analyze_command_test.dart @@ -57,6 +57,9 @@ void main() { platformMacOS: const PlatformDetails(PlatformSupport.inline), }, ); + plugin + .platformDirectory(FlutterPlatform.android) + .createSync(recursive: true); // Simulate Android analysis failure only. final String gradlewPath = plugin @@ -793,6 +796,9 @@ packages/package_a/CHANGELOG.md platformAndroid: const PlatformDetails(PlatformSupport.inline), }, ); + plugin + .platformDirectory(FlutterPlatform.android) + .createSync(recursive: true); final Directory androidDir = plugin.getExamples().first.platformDirectory( FlutterPlatform.android, @@ -836,6 +842,9 @@ packages/package_a/CHANGELOG.md platformAndroid: const PlatformDetails(PlatformSupport.inline), }, ); + plugin + .platformDirectory(FlutterPlatform.android) + .createSync(recursive: true); final Iterable exampleAndroidDirs = plugin.getExamples().map( (RepositoryPackage example) => @@ -875,6 +884,9 @@ packages/package_a/CHANGELOG.md platformAndroid: const PlatformDetails(PlatformSupport.inline), }, ); + plugin + .platformDirectory(FlutterPlatform.android) + .createSync(recursive: true); final Directory androidDir = plugin.getExamples().first.platformDirectory( FlutterPlatform.android, @@ -910,13 +922,16 @@ packages/package_a/CHANGELOG.md }); test('fails if gradlew generation fails', () async { - createFakePlugin( + final RepositoryPackage plugin = createFakePlugin( 'plugin1', packagesDir, platformSupport: { platformAndroid: const PlatformDetails(PlatformSupport.inline), }, ); + plugin + .platformDirectory(FlutterPlatform.android) + .createSync(recursive: true); processRunner.mockProcessesForExecutable[getFlutterCommand( mockPlatform, @@ -951,6 +966,9 @@ packages/package_a/CHANGELOG.md platformAndroid: const PlatformDetails(PlatformSupport.inline), }, ); + plugin + .platformDirectory(FlutterPlatform.android) + .createSync(recursive: true); final String gradlewPath = plugin .getExamples() @@ -1024,6 +1042,31 @@ packages/package_a/CHANGELOG.md ); }); + test('skips Dart-only plugins', () async { + createFakePlugin( + 'plugin1', + packagesDir, + platformSupport: { + platformAndroid: const PlatformDetails(PlatformSupport.inline), + }, + ); + + final List output = await runCapturingPrint(runner, [ + 'analyze', + '--android', + '--no-dart', + ]); + + expect( + output, + containsAllInOrder([ + contains( + 'SKIPPING: Package does not contain native Android plugin code', + ), + ]), + ); + }); + group('file filtering', () { const files = ['foo.java', 'foo.kt']; for (final file in files) { diff --git a/script/tool/test/gradle_check_command_test.dart b/script/tool/test/gradle_check_command_test.dart index c4fe9345d007..238e7354f52b 100644 --- a/script/tool/test/gradle_check_command_test.dart +++ b/script/tool/test/gradle_check_command_test.dart @@ -881,9 +881,10 @@ flutter { test('does not require java version in examples - groovy', () async { const pluginName = 'a_plugin'; - final RepositoryPackage package = createFakePlugin(pluginName, packagesDir); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); - writeFakeManifest(package); + final RepositoryPackage package = createFakePackage( + pluginName, + packagesDir, + ); final RepositoryPackage example = package.getExamples().first; writeFakeGroovyExampleBuildGradles(example, pluginName: pluginName); writeFakeManifest(example, isApp: true); @@ -896,16 +897,17 @@ flutter { output, containsAllInOrder([ contains('Validating android/build.gradle'), - contains('Ran for 2 package(s)'), + contains('Ran for 1 package(s)'), ]), ); }); test('does not require java version in examples - kotlin', () async { const pluginName = 'a_plugin'; - final RepositoryPackage package = createFakePlugin(pluginName, packagesDir); - writeFakeKotlinPluginBuildGradle(package, includeLanguageVersion: true); - writeFakeManifest(package); + final RepositoryPackage package = createFakePackage( + pluginName, + packagesDir, + ); final RepositoryPackage example = package.getExamples().first; writeFakeKotlinExampleBuildGradles(example, pluginName: pluginName); writeFakeManifest(example, isApp: true); @@ -918,7 +920,7 @@ flutter { output, containsAllInOrder([ contains('Validating android/build.gradle.kts'), - contains('Ran for 2 package(s)'), + contains('Ran for 1 package(s)'), ]), ); }); From 53d1ee3ef77102bba69fca7c5a1801424f78d6b3 Mon Sep 17 00:00:00 2001 From: chunhtai <47866232+chunhtai@users.noreply.github.com> Date: Mon, 6 Apr 2026 12:30:13 -0700 Subject: [PATCH 06/14] [go_router] Manually Sync go_router release to main (#11449) manually because the current ci can't rerun checks in https://github.com/flutter/packages/pull/11447/checks ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. --- packages/go_router/CHANGELOG.md | 5 +++++ .../pending_changelogs/fix_block_then_reentrance.yaml | 3 --- .../go_router/pending_changelogs/support_custom_types.yaml | 3 --- packages/go_router/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 packages/go_router/pending_changelogs/fix_block_then_reentrance.yaml delete mode 100644 packages/go_router/pending_changelogs/support_custom_types.yaml diff --git a/packages/go_router/CHANGELOG.md b/packages/go_router/CHANGELOG.md index f1d95f90c9fc..d285020e0c71 100644 --- a/packages/go_router/CHANGELOG.md +++ b/packages/go_router/CHANGELOG.md @@ -1,3 +1,8 @@ +## 17.2.0 + +- Fixes `Block.then()` and `Allow.then()` navigation callbacks being silently lost when triggered by `refreshListenable` due to re-entrant route processing. +- Adds `encoder`, `decoder` and `compare` parameters to `TypedQueryParameter` annotation for custom encoding, decoding and comparison of query parameters in `TypedGoRoute` constructors. + ## 17.1.0 - Adds `TypedQueryParameter` annotation to override parameter names in `TypedGoRoute` constructors. diff --git a/packages/go_router/pending_changelogs/fix_block_then_reentrance.yaml b/packages/go_router/pending_changelogs/fix_block_then_reentrance.yaml deleted file mode 100644 index c0c0dcc6b0c2..000000000000 --- a/packages/go_router/pending_changelogs/fix_block_then_reentrance.yaml +++ /dev/null @@ -1,3 +0,0 @@ -changelog: | - - Fixes `Block.then()` and `Allow.then()` navigation callbacks being silently lost when triggered by `refreshListenable` due to re-entrant route processing. -version: patch diff --git a/packages/go_router/pending_changelogs/support_custom_types.yaml b/packages/go_router/pending_changelogs/support_custom_types.yaml deleted file mode 100644 index 40240bfcae31..000000000000 --- a/packages/go_router/pending_changelogs/support_custom_types.yaml +++ /dev/null @@ -1,3 +0,0 @@ -changelog: | - - Adds `encoder`, `decoder` and `compare` parameters to `TypedQueryParameter` annotation for custom encoding, decoding and comparison of query parameters in `TypedGoRoute` constructors. -version: minor diff --git a/packages/go_router/pubspec.yaml b/packages/go_router/pubspec.yaml index 55ad56b1058c..a397f17cf850 100644 --- a/packages/go_router/pubspec.yaml +++ b/packages/go_router/pubspec.yaml @@ -1,7 +1,7 @@ name: go_router description: A declarative router for Flutter based on Navigation 2 supporting deep linking, data-driven routes and more -version: 17.1.0 +version: 17.2.0 repository: https://github.com/flutter/packages/tree/main/packages/go_router issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router%22 From 722c8816d2b5bf30f2425c30076c830b6b6bf512 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Mon, 6 Apr 2026 15:35:40 -0400 Subject: [PATCH 07/14] Roll Flutter from 7245c3f71104 to 9cd60b512fbc (30 revisions) (#11452) https://github.com/flutter/flutter/compare/7245c3f71104...9cd60b512fbc 2026-04-06 97480502+b-luk@users.noreply.github.com Fix go/ links in rbe.mde (flutter/flutter#184672) 2026-04-06 engine-flutter-autoroll@skia.org Roll Packages from d31df6671d3f to 5299279b93ce (2 revisions) (flutter/flutter#184663) 2026-04-06 1063596+reidbaker@users.noreply.github.com Add suggestion for what types of skills are helpful (flutter/flutter#184661) 2026-04-06 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from hrLZV-ij47FXnv_m5... to 1rcChbOv4nSTVkUxs... (flutter/flutter#184657) 2026-04-06 1063596+reidbaker@users.noreply.github.com Skill to find dart or flutter revision from a hash (flutter/flutter#184589) 2026-04-06 engine-flutter-autoroll@skia.org Roll Skia from 207c6721c64b to 163dfdf500c7 (7 revisions) (flutter/flutter#184650) 2026-04-05 engine-flutter-autoroll@skia.org Roll Skia from 52b79372764c to 207c6721c64b (1 revision) (flutter/flutter#184636) 2026-04-05 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from D2z-jMnRVbcwcraY-... to hrLZV-ij47FXnv_m5... (flutter/flutter#184623) 2026-04-05 engine-flutter-autoroll@skia.org Roll Skia from 500bc1651c86 to 52b79372764c (1 revision) (flutter/flutter#184621) 2026-04-04 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from PpL3Bn2YMb2h9LbdK... to D2z-jMnRVbcwcraY-... (flutter/flutter#184611) 2026-04-04 engine-flutter-autoroll@skia.org Roll Dart SDK from 102a3d1c7fe5 to 79f728f5d66e (1 revision) (flutter/flutter#184610) 2026-04-04 engine-flutter-autoroll@skia.org Roll Skia from 5e5a7f252b5e to 500bc1651c86 (1 revision) (flutter/flutter#184609) 2026-04-04 engine-flutter-autoroll@skia.org Roll Skia from ec209c206aa5 to 5e5a7f252b5e (2 revisions) (flutter/flutter#184606) 2026-04-04 engine-flutter-autoroll@skia.org Roll Dart SDK from f7be88117622 to 102a3d1c7fe5 (2 revisions) (flutter/flutter#184604) 2026-04-04 34465683+rkishan516@users.noreply.github.com refactor: remove material from color and image filter test (flutter/flutter#183563) 2026-04-04 engine-flutter-autoroll@skia.org Roll Skia from 50f3a9aaa185 to ec209c206aa5 (1 revision) (flutter/flutter#184601) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 4ecb7b28459f to 50f3a9aaa185 (3 revisions) (flutter/flutter#184599) 2026-04-03 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll ICU from ee5f27adc28b to ff7995a708a1 (5 revisions) (#184566)" (flutter/flutter#184586) 2026-04-03 15619084+vashworth@users.noreply.github.com Add integration scripts and tools for SwiftPM add to app (flutter/flutter#184204) 2026-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 46f49142acd9 to f7be88117622 (1 revision) (flutter/flutter#184596) 2026-04-03 jesswon@google.com [AGP 9] Add Disable Built-in Kotlin and newDSL Migratorrs (flutter/flutter#184255) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 3b0f0f04f97c to 4ecb7b28459f (7 revisions) (flutter/flutter#184594) 2026-04-03 34465683+rkishan516@users.noreply.github.com refactor: remove material from list_view_viewporting_test and page_forward_transitions_test (flutter/flutter#183564) 2026-04-03 737941+loic-sharma@users.noreply.github.com [Dot shorthands] Migrate examples/api/lib/cupertino (flutter/flutter#183964) 2026-04-03 okorohelijah@google.com Downgrade CocoaPods doctor check to warning and fix build error messaging (flutter/flutter#184511) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 4134f8091147 to 3b0f0f04f97c (2 revisions) (flutter/flutter#184582) 2026-04-03 73785960+xfce0@users.noreply.github.com Remove live_text_utils cross-imports from material and cupertino tests (flutter/flutter#184517) 2026-04-03 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[data_assets] Cleanup tests (#184209)" (flutter/flutter#184575) 2026-04-03 engine-flutter-autoroll@skia.org Roll Packages from 66bf7ec0705f to d31df6671d3f (3 revisions) (flutter/flutter#184578) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 5d847ba5c4aa to 4134f8091147 (1 revision) (flutter/flutter#184573) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 849f4ae493d7..64e1a3e712aa 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -7245c3f71104de04c1edb58523ab8482f4d76a2c +9cd60b512fbc40348dc039d983c55805ac566614 From 0e0a032a4a9b55a4e92be8c56cd525a92863942c Mon Sep 17 00:00:00 2001 From: stuartmorgan-g Date: Tue, 7 Apr 2026 10:50:07 -0400 Subject: [PATCH 08/14] [various] Ignore generated plugin files (#11455) Remove and ignore `generated_plugins.cmake`, since ideally they should have been ephemeral in the first place (see https://github.com/flutter/flutter/issues/149917, https://github.com/flutter/flutter/issues/76726, https://github.com/flutter/flutter/issues/71762). Removing them means that changes to the contents shouldn't trip format or publish checks, which should allow us to re-publish `path_provider_android`'s jni-based implementation. Fixes https://github.com/flutter/flutter/issues/184702 ## Pre-Review Checklist [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. --- .gitignore | 4 ++++ .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../linux/flutter/generated_plugins.cmake | 24 ------------------- .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../linux/flutter/generated_plugins.cmake | 24 ------------------- .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../linux/flutter/generated_plugins.cmake | 24 ------------------- .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../linux/flutter/generated_plugins.cmake | 24 ------------------- .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../app/linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../linux/flutter/generated_plugins.cmake | 24 ------------------- .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../linux/flutter/generated_plugins.cmake | 23 ------------------ .../windows/flutter/generated_plugins.cmake | 23 ------------------ .../linux/flutter/generated_plugins.cmake | 24 ------------------- .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../linux/flutter/generated_plugins.cmake | 24 ------------------- .../windows/flutter/generated_plugins.cmake | 24 ------------------- .../linux/flutter/generated_plugins.cmake | 23 ------------------ 39 files changed, 4 insertions(+), 891 deletions(-) delete mode 100644 packages/camera/camera_windows/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/file_selector/file_selector/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/file_selector/file_selector/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/file_selector/file_selector_linux/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/file_selector/file_selector_windows/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/google_fonts/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/google_fonts/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/image_picker/image_picker/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/image_picker/image_picker/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/image_picker/image_picker_linux/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/image_picker/image_picker_windows/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/local_auth/local_auth/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/local_auth/local_auth_windows/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/path_provider/path_provider/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/path_provider/path_provider/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/path_provider/path_provider_linux/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/pigeon/example/app/linux/flutter/generated_plugins.cmake delete mode 100644 packages/pigeon/example/app/windows/flutter/generated_plugins.cmake delete mode 100644 packages/pigeon/platform_tests/test_plugin/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/pigeon/platform_tests/test_plugin/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/rfw/example/hello/linux/flutter/generated_plugins.cmake delete mode 100644 packages/rfw/example/hello/windows/flutter/generated_plugins.cmake delete mode 100644 packages/rfw/example/local/linux/flutter/generated_plugins.cmake delete mode 100644 packages/rfw/example/local/windows/flutter/generated_plugins.cmake delete mode 100644 packages/rfw/example/remote/linux/flutter/generated_plugins.cmake delete mode 100644 packages/rfw/example/remote/windows/flutter/generated_plugins.cmake delete mode 100644 packages/shared_preferences/shared_preferences/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/shared_preferences/shared_preferences/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/shared_preferences/shared_preferences_linux/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/two_dimensional_scrollables/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/two_dimensional_scrollables/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/url_launcher/url_launcher/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/url_launcher/url_launcher/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/url_launcher/url_launcher_linux/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/url_launcher/url_launcher_windows/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/xdg_directories/example/linux/flutter/generated_plugins.cmake diff --git a/.gitignore b/.gitignore index c9dae8e685c2..bb526c9628d5 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,10 @@ xcuserdata/ generated_plugin_registrant.* GeneratedPluginRegistrant.* +# These should be ephemeral, but currently aren't, so ignore them. See: +# - https://github.com/flutter/flutter/issues/149917 +# - https://github.com/flutter/flutter/issues/76726 +**/generated_plugins.cmake # Gradle **/gradle-wrapper.jar diff --git a/packages/camera/camera_windows/example/windows/flutter/generated_plugins.cmake b/packages/camera/camera_windows/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index 458d22dac410..000000000000 --- a/packages/camera/camera_windows/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - camera_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/file_selector/file_selector/example/linux/flutter/generated_plugins.cmake b/packages/file_selector/file_selector/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2db3c22ae228..000000000000 --- a/packages/file_selector/file_selector/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - file_selector_linux -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/file_selector/file_selector/example/windows/flutter/generated_plugins.cmake b/packages/file_selector/file_selector/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index a423a02476a2..000000000000 --- a/packages/file_selector/file_selector/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - file_selector_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/file_selector/file_selector_linux/example/linux/flutter/generated_plugins.cmake b/packages/file_selector/file_selector_linux/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2db3c22ae228..000000000000 --- a/packages/file_selector/file_selector_linux/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - file_selector_linux -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/file_selector/file_selector_windows/example/windows/flutter/generated_plugins.cmake b/packages/file_selector/file_selector_windows/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index a423a02476a2..000000000000 --- a/packages/file_selector/file_selector_windows/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - file_selector_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/google_fonts/example/linux/flutter/generated_plugins.cmake b/packages/google_fonts/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/google_fonts/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/google_fonts/example/windows/flutter/generated_plugins.cmake b/packages/google_fonts/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/google_fonts/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/image_picker/image_picker/example/linux/flutter/generated_plugins.cmake b/packages/image_picker/image_picker/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2db3c22ae228..000000000000 --- a/packages/image_picker/image_picker/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - file_selector_linux -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/image_picker/image_picker/example/windows/flutter/generated_plugins.cmake b/packages/image_picker/image_picker/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index a423a02476a2..000000000000 --- a/packages/image_picker/image_picker/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - file_selector_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/image_picker/image_picker_linux/example/linux/flutter/generated_plugins.cmake b/packages/image_picker/image_picker_linux/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2db3c22ae228..000000000000 --- a/packages/image_picker/image_picker_linux/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - file_selector_linux -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/image_picker/image_picker_windows/example/windows/flutter/generated_plugins.cmake b/packages/image_picker/image_picker_windows/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index a423a02476a2..000000000000 --- a/packages/image_picker/image_picker_windows/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - file_selector_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/local_auth/local_auth/example/windows/flutter/generated_plugins.cmake b/packages/local_auth/local_auth/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index ef187dcae56f..000000000000 --- a/packages/local_auth/local_auth/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - local_auth_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/local_auth/local_auth_windows/example/windows/flutter/generated_plugins.cmake b/packages/local_auth/local_auth_windows/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index ef187dcae56f..000000000000 --- a/packages/local_auth/local_auth_windows/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - local_auth_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/path_provider/path_provider/example/linux/flutter/generated_plugins.cmake b/packages/path_provider/path_provider/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/path_provider/path_provider/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/path_provider/path_provider/example/windows/flutter/generated_plugins.cmake b/packages/path_provider/path_provider/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/path_provider/path_provider/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/path_provider/path_provider_linux/example/linux/flutter/generated_plugins.cmake b/packages/path_provider/path_provider_linux/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/path_provider/path_provider_linux/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugins.cmake b/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/pigeon/example/app/linux/flutter/generated_plugins.cmake b/packages/pigeon/example/app/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/pigeon/example/app/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/pigeon/example/app/windows/flutter/generated_plugins.cmake b/packages/pigeon/example/app/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/pigeon/example/app/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/pigeon/platform_tests/test_plugin/example/linux/flutter/generated_plugins.cmake b/packages/pigeon/platform_tests/test_plugin/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 98e2c9fa93fd..000000000000 --- a/packages/pigeon/platform_tests/test_plugin/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - test_plugin -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/pigeon/platform_tests/test_plugin/example/windows/flutter/generated_plugins.cmake b/packages/pigeon/platform_tests/test_plugin/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index 8b8b5042fbb3..000000000000 --- a/packages/pigeon/platform_tests/test_plugin/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - test_plugin -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/rfw/example/hello/linux/flutter/generated_plugins.cmake b/packages/rfw/example/hello/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/rfw/example/hello/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/rfw/example/hello/windows/flutter/generated_plugins.cmake b/packages/rfw/example/hello/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/rfw/example/hello/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/rfw/example/local/linux/flutter/generated_plugins.cmake b/packages/rfw/example/local/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/rfw/example/local/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/rfw/example/local/windows/flutter/generated_plugins.cmake b/packages/rfw/example/local/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/rfw/example/local/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/rfw/example/remote/linux/flutter/generated_plugins.cmake b/packages/rfw/example/remote/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/rfw/example/remote/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/rfw/example/remote/windows/flutter/generated_plugins.cmake b/packages/rfw/example/remote/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/rfw/example/remote/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/shared_preferences/shared_preferences/example/linux/flutter/generated_plugins.cmake b/packages/shared_preferences/shared_preferences/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/shared_preferences/shared_preferences/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/shared_preferences/shared_preferences/example/windows/flutter/generated_plugins.cmake b/packages/shared_preferences/shared_preferences/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/shared_preferences/shared_preferences/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/shared_preferences/shared_preferences_linux/example/linux/flutter/generated_plugins.cmake b/packages/shared_preferences/shared_preferences_linux/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/shared_preferences/shared_preferences_linux/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugins.cmake b/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/two_dimensional_scrollables/example/linux/flutter/generated_plugins.cmake b/packages/two_dimensional_scrollables/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/two_dimensional_scrollables/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/two_dimensional_scrollables/example/windows/flutter/generated_plugins.cmake b/packages/two_dimensional_scrollables/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/packages/two_dimensional_scrollables/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/url_launcher/url_launcher/example/linux/flutter/generated_plugins.cmake b/packages/url_launcher/url_launcher/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index f16b4c34213a..000000000000 --- a/packages/url_launcher/url_launcher/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - url_launcher_linux -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/url_launcher/url_launcher/example/windows/flutter/generated_plugins.cmake b/packages/url_launcher/url_launcher/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index 88b22e5c775e..000000000000 --- a/packages/url_launcher/url_launcher/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - url_launcher_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/url_launcher/url_launcher_linux/example/linux/flutter/generated_plugins.cmake b/packages/url_launcher/url_launcher_linux/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index f16b4c34213a..000000000000 --- a/packages/url_launcher/url_launcher_linux/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - url_launcher_linux -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/url_launcher/url_launcher_windows/example/windows/flutter/generated_plugins.cmake b/packages/url_launcher/url_launcher_windows/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index 88b22e5c775e..000000000000 --- a/packages/url_launcher/url_launcher_windows/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - url_launcher_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/xdg_directories/example/linux/flutter/generated_plugins.cmake b/packages/xdg_directories/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/packages/xdg_directories/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) From e37fa8ff337214ed3d5dc83f9ba229c6b9ccc1c0 Mon Sep 17 00:00:00 2001 From: stuartmorgan-g Date: Tue, 7 Apr 2026 11:59:54 -0400 Subject: [PATCH 09/14] [various] Convert remaining Groovy files to Kotlin (#11443) This is the last in the series of PRs to convert all of our legacy Groovy Gradle files to Kotlin. This converts all remaining Groovy files in the repository to Kotlin (with the exception of legacy_project; see https://github.com/flutter/flutter/issues/184656). This is the app-facing plugin example apps, as well as the Pigeon example app, as those were the ones not yet converted. As with https://github.com/flutter/packages/pull/11421 I did this as an in-place update primarily done via Gemini, rather than by recreating the entire test app, since plugins tend to have special setup/configs in their example apps: - I had Gemini mass-convert the remaining files using the previous conversions as a template. - I had Gemini specifically re-review the results for any accidental changes. - I did some manual checks for unexpected diffs between resulting files. - I did a small amount of manual fixup where Gemini didn't convert correctly. - I removed `settings_aar.gradle` from local_auth's example (the only package containing it); it seems to have been something auto-created by an old version of `flutter` for AndroidX compat during a transition phase, and no longer seems to be relevant. I also removed all the logic from the repo tool to validate Groovy versions of files, now that we don't need to support them, and simplified/updated the tests accordingly. Fixes https://github.com/flutter/flutter/issues/176065 ## Pre-Review Checklist [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. --- .../camera/example/android/app/build.gradle | 63 - .../example/android/app/build.gradle.kts | 51 + .../camera/example/android/build.gradle | 24 - .../camera/example/android/build.gradle.kts | 33 + .../camera/example/android/settings.gradle | 28 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 64 - .../example/android/app/build.gradle.kts | 38 + .../example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 71 -- .../example/android/app/build.gradle.kts | 58 + .../example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 65 -- .../example/android/app/build.gradle.kts | 56 + .../example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 65 -- .../example/android/app/build.gradle.kts | 56 + .../image_picker/example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 114 -- .../example/android/app/build.gradle.kts | 106 ++ .../example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 57 - .../example/android/app/build.gradle.kts | 47 + .../local_auth/example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 28 - .../example/android/settings.gradle.kts | 28 + .../example/android/settings_aar.gradle | 1 - .../example/android/settings_aar.gradle | 1 - .../example/android/app/build.gradle | 63 - .../example/android/app/build.gradle.kts | 49 + .../example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/app/android/app/build.gradle | 65 -- .../example/app/android/app/build.gradle.kts | 38 + .../pigeon/example/app/android/build.gradle | 24 - .../example/app/android/build.gradle.kts | 33 + .../example/app/android/settings.gradle | 28 - .../example/app/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 58 - .../example/android/app/build.gradle.kts | 48 + .../example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 57 - .../example/android/app/build.gradle.kts | 38 + .../example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 59 - .../example/android/app/build.gradle.kts | 47 + .../url_launcher/example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 65 -- .../example/android/app/build.gradle.kts | 49 + .../video_player/example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + .../example/android/app/build.gradle | 62 - .../example/android/app/build.gradle.kts | 49 + .../example/android/build.gradle | 24 - .../example/android/build.gradle.kts | 33 + .../example/android/settings.gradle | 27 - .../example/android/settings.gradle.kts | 28 + script/tool/lib/src/gradle_check_command.dart | 183 +-- .../tool/test/gradle_check_command_test.dart | 1028 ++--------------- 88 files changed, 1766 insertions(+), 2676 deletions(-) delete mode 100644 packages/camera/camera/example/android/app/build.gradle create mode 100644 packages/camera/camera/example/android/app/build.gradle.kts delete mode 100644 packages/camera/camera/example/android/build.gradle create mode 100644 packages/camera/camera/example/android/build.gradle.kts delete mode 100644 packages/camera/camera/example/android/settings.gradle create mode 100644 packages/camera/camera/example/android/settings.gradle.kts delete mode 100644 packages/file_selector/file_selector/example/android/app/build.gradle create mode 100644 packages/file_selector/file_selector/example/android/app/build.gradle.kts delete mode 100644 packages/file_selector/file_selector/example/android/build.gradle create mode 100644 packages/file_selector/file_selector/example/android/build.gradle.kts delete mode 100644 packages/file_selector/file_selector/example/android/settings.gradle create mode 100644 packages/file_selector/file_selector/example/android/settings.gradle.kts delete mode 100644 packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle create mode 100644 packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle.kts delete mode 100644 packages/google_maps_flutter/google_maps_flutter/example/android/build.gradle create mode 100644 packages/google_maps_flutter/google_maps_flutter/example/android/build.gradle.kts delete mode 100644 packages/google_maps_flutter/google_maps_flutter/example/android/settings.gradle create mode 100644 packages/google_maps_flutter/google_maps_flutter/example/android/settings.gradle.kts delete mode 100644 packages/google_sign_in/google_sign_in/example/android/app/build.gradle create mode 100644 packages/google_sign_in/google_sign_in/example/android/app/build.gradle.kts delete mode 100644 packages/google_sign_in/google_sign_in/example/android/build.gradle create mode 100644 packages/google_sign_in/google_sign_in/example/android/build.gradle.kts delete mode 100644 packages/google_sign_in/google_sign_in/example/android/settings.gradle create mode 100644 packages/google_sign_in/google_sign_in/example/android/settings.gradle.kts delete mode 100755 packages/image_picker/image_picker/example/android/app/build.gradle create mode 100644 packages/image_picker/image_picker/example/android/app/build.gradle.kts delete mode 100755 packages/image_picker/image_picker/example/android/build.gradle create mode 100644 packages/image_picker/image_picker/example/android/build.gradle.kts delete mode 100755 packages/image_picker/image_picker/example/android/settings.gradle create mode 100644 packages/image_picker/image_picker/example/android/settings.gradle.kts delete mode 100644 packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle create mode 100644 packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle.kts delete mode 100644 packages/in_app_purchase/in_app_purchase/example/android/build.gradle create mode 100644 packages/in_app_purchase/in_app_purchase/example/android/build.gradle.kts delete mode 100644 packages/in_app_purchase/in_app_purchase/example/android/settings.gradle create mode 100644 packages/in_app_purchase/in_app_purchase/example/android/settings.gradle.kts delete mode 100644 packages/local_auth/local_auth/example/android/app/build.gradle create mode 100644 packages/local_auth/local_auth/example/android/app/build.gradle.kts delete mode 100644 packages/local_auth/local_auth/example/android/build.gradle create mode 100644 packages/local_auth/local_auth/example/android/build.gradle.kts delete mode 100644 packages/local_auth/local_auth/example/android/settings.gradle create mode 100644 packages/local_auth/local_auth/example/android/settings.gradle.kts delete mode 100644 packages/local_auth/local_auth/example/android/settings_aar.gradle delete mode 100644 packages/local_auth/local_auth_android/example/android/settings_aar.gradle delete mode 100644 packages/path_provider/path_provider/example/android/app/build.gradle create mode 100644 packages/path_provider/path_provider/example/android/app/build.gradle.kts delete mode 100644 packages/path_provider/path_provider/example/android/build.gradle create mode 100644 packages/path_provider/path_provider/example/android/build.gradle.kts delete mode 100644 packages/path_provider/path_provider/example/android/settings.gradle create mode 100644 packages/path_provider/path_provider/example/android/settings.gradle.kts delete mode 100644 packages/pigeon/example/app/android/app/build.gradle create mode 100644 packages/pigeon/example/app/android/app/build.gradle.kts delete mode 100644 packages/pigeon/example/app/android/build.gradle create mode 100644 packages/pigeon/example/app/android/build.gradle.kts delete mode 100644 packages/pigeon/example/app/android/settings.gradle create mode 100644 packages/pigeon/example/app/android/settings.gradle.kts delete mode 100644 packages/quick_actions/quick_actions/example/android/app/build.gradle create mode 100644 packages/quick_actions/quick_actions/example/android/app/build.gradle.kts delete mode 100644 packages/quick_actions/quick_actions/example/android/build.gradle create mode 100644 packages/quick_actions/quick_actions/example/android/build.gradle.kts delete mode 100644 packages/quick_actions/quick_actions/example/android/settings.gradle create mode 100644 packages/quick_actions/quick_actions/example/android/settings.gradle.kts delete mode 100644 packages/shared_preferences/shared_preferences/example/android/app/build.gradle create mode 100644 packages/shared_preferences/shared_preferences/example/android/app/build.gradle.kts delete mode 100644 packages/shared_preferences/shared_preferences/example/android/build.gradle create mode 100644 packages/shared_preferences/shared_preferences/example/android/build.gradle.kts delete mode 100644 packages/shared_preferences/shared_preferences/example/android/settings.gradle create mode 100644 packages/shared_preferences/shared_preferences/example/android/settings.gradle.kts delete mode 100644 packages/url_launcher/url_launcher/example/android/app/build.gradle create mode 100644 packages/url_launcher/url_launcher/example/android/app/build.gradle.kts delete mode 100644 packages/url_launcher/url_launcher/example/android/build.gradle create mode 100644 packages/url_launcher/url_launcher/example/android/build.gradle.kts delete mode 100644 packages/url_launcher/url_launcher/example/android/settings.gradle create mode 100644 packages/url_launcher/url_launcher/example/android/settings.gradle.kts delete mode 100644 packages/video_player/video_player/example/android/app/build.gradle create mode 100644 packages/video_player/video_player/example/android/app/build.gradle.kts delete mode 100644 packages/video_player/video_player/example/android/build.gradle create mode 100644 packages/video_player/video_player/example/android/build.gradle.kts delete mode 100644 packages/video_player/video_player/example/android/settings.gradle create mode 100644 packages/video_player/video_player/example/android/settings.gradle.kts delete mode 100644 packages/webview_flutter/webview_flutter/example/android/app/build.gradle create mode 100644 packages/webview_flutter/webview_flutter/example/android/app/build.gradle.kts delete mode 100644 packages/webview_flutter/webview_flutter/example/android/build.gradle create mode 100644 packages/webview_flutter/webview_flutter/example/android/build.gradle.kts delete mode 100644 packages/webview_flutter/webview_flutter/example/android/settings.gradle create mode 100644 packages/webview_flutter/webview_flutter/example/android/settings.gradle.kts diff --git a/packages/camera/camera/example/android/app/build.gradle b/packages/camera/camera/example/android/app/build.gradle deleted file mode 100644 index 080f8244bad9..000000000000 --- a/packages/camera/camera/example/android/app/build.gradle +++ /dev/null @@ -1,63 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.cameraexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.cameraexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - profile { - matchingFallbacks = ['debug', 'release'] - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test:rules:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") -} diff --git a/packages/camera/camera/example/android/app/build.gradle.kts b/packages/camera/camera/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..abcd449ee17f --- /dev/null +++ b/packages/camera/camera/example/android/app/build.gradle.kts @@ -0,0 +1,51 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.cameraexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.cameraexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + getByName("profile") { + matchingFallbacks.addAll(listOf("debug", "release")) + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test:rules:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") +} diff --git a/packages/camera/camera/example/android/build.gradle b/packages/camera/camera/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/camera/camera/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/camera/camera/example/android/build.gradle.kts b/packages/camera/camera/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/camera/camera/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/camera/camera/example/android/settings.gradle b/packages/camera/camera/example/android/settings.gradle deleted file mode 100644 index d7ba8d54ffbc..000000000000 --- a/packages/camera/camera/example/android/settings.gradle +++ /dev/null @@ -1,28 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" - -} - -include ":app" diff --git a/packages/camera/camera/example/android/settings.gradle.kts b/packages/camera/camera/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/camera/camera/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/file_selector/file_selector/example/android/app/build.gradle b/packages/file_selector/file_selector/example/android/app/build.gradle deleted file mode 100644 index 272243c1d34d..000000000000 --- a/packages/file_selector/file_selector/example/android/app/build.gradle +++ /dev/null @@ -1,64 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "dev.flutter.plugins.file_selector_example" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - applicationId "dev.flutter.plugins.file_selector_example" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = '../..' -} diff --git a/packages/file_selector/file_selector/example/android/app/build.gradle.kts b/packages/file_selector/file_selector/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..b5738ce6f126 --- /dev/null +++ b/packages/file_selector/file_selector/example/android/app/build.gradle.kts @@ -0,0 +1,38 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "dev.flutter.plugins.file_selector_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "dev.flutter.plugins.file_selector_example" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/packages/file_selector/file_selector/example/android/build.gradle b/packages/file_selector/file_selector/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/file_selector/file_selector/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/file_selector/file_selector/example/android/build.gradle.kts b/packages/file_selector/file_selector/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/file_selector/file_selector/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/file_selector/file_selector/example/android/settings.gradle b/packages/file_selector/file_selector/example/android/settings.gradle deleted file mode 100644 index b83203f03197..000000000000 --- a/packages/file_selector/file_selector/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/file_selector/file_selector/example/android/settings.gradle.kts b/packages/file_selector/file_selector/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/file_selector/file_selector/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle b/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle deleted file mode 100644 index b280828ff39a..000000000000 --- a/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle +++ /dev/null @@ -1,71 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.googlemapsexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - defaultConfig { - manifestPlaceholders = [mapsApiKey: "$System.env.MAPS_API_KEY"] - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - - testOptions { - unitTests { - includeAndroidResources = true - } - } - - dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") - testImplementation("com.google.android.gms:play-services-maps:17.0.0") - } - namespace = "io.flutter.plugins.googlemapsexample" - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} diff --git a/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle.kts b/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..50bc6979a57f --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle.kts @@ -0,0 +1,58 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.googlemapsexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.googlemapsexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + + manifestPlaceholders["mapsApiKey"] = System.getenv("MAPS_API_KEY") ?: "" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + } + } + + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") + testImplementation("com.google.android.gms:play-services-maps:17.0.0") +} diff --git a/packages/google_maps_flutter/google_maps_flutter/example/android/build.gradle b/packages/google_maps_flutter/google_maps_flutter/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/google_maps_flutter/google_maps_flutter/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/google_maps_flutter/google_maps_flutter/example/android/build.gradle.kts b/packages/google_maps_flutter/google_maps_flutter/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/google_maps_flutter/google_maps_flutter/example/android/settings.gradle b/packages/google_maps_flutter/google_maps_flutter/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/google_maps_flutter/google_maps_flutter/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/google_maps_flutter/google_maps_flutter/example/android/settings.gradle.kts b/packages/google_maps_flutter/google_maps_flutter/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/google_sign_in/google_sign_in/example/android/app/build.gradle b/packages/google_sign_in/google_sign_in/example/android/app/build.gradle deleted file mode 100644 index 30108883acfb..000000000000 --- a/packages/google_sign_in/google_sign_in/example/android/app/build.gradle +++ /dev/null @@ -1,65 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.googlesigninexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.googlesigninexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - - testOptions { - unitTests.returnDefaultValues = true - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - implementation("com.google.android.gms:play-services-auth:16.0.1") - testImplementation("junit:junit:4.12") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") -} diff --git a/packages/google_sign_in/google_sign_in/example/android/app/build.gradle.kts b/packages/google_sign_in/google_sign_in/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..a424fcb4fafa --- /dev/null +++ b/packages/google_sign_in/google_sign_in/example/android/app/build.gradle.kts @@ -0,0 +1,56 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.googlesigninexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.googlesigninexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + + testOptions { + unitTests { + isReturnDefaultValues = true + } + } + + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + implementation("com.google.android.gms:play-services-auth:16.0.1") + testImplementation("junit:junit:4.12") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") +} diff --git a/packages/google_sign_in/google_sign_in/example/android/build.gradle b/packages/google_sign_in/google_sign_in/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/google_sign_in/google_sign_in/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/google_sign_in/google_sign_in/example/android/build.gradle.kts b/packages/google_sign_in/google_sign_in/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/google_sign_in/google_sign_in/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/google_sign_in/google_sign_in/example/android/settings.gradle b/packages/google_sign_in/google_sign_in/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/google_sign_in/google_sign_in/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/google_sign_in/google_sign_in/example/android/settings.gradle.kts b/packages/google_sign_in/google_sign_in/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/google_sign_in/google_sign_in/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/image_picker/image_picker/example/android/app/build.gradle b/packages/image_picker/image_picker/example/android/app/build.gradle deleted file mode 100755 index 4c6696972f78..000000000000 --- a/packages/image_picker/image_picker/example/android/app/build.gradle +++ /dev/null @@ -1,65 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.imagepickerexample" - compileSdk = flutter.compileSdkVersion - testOptions.unitTests.includeAndroidResources = true - - - defaultConfig { - applicationId "io.flutter.plugins.imagepicker.example" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } - - testOptions { - unitTests.returnDefaultValues = true - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") -} diff --git a/packages/image_picker/image_picker/example/android/app/build.gradle.kts b/packages/image_picker/image_picker/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..6f5dfe2c2a5f --- /dev/null +++ b/packages/image_picker/image_picker/example/android/app/build.gradle.kts @@ -0,0 +1,56 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.imagepickerexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.imagepicker.example" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + isReturnDefaultValues = true + } + } + + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") +} diff --git a/packages/image_picker/image_picker/example/android/build.gradle b/packages/image_picker/image_picker/example/android/build.gradle deleted file mode 100755 index b9db5700753a..000000000000 --- a/packages/image_picker/image_picker/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/image_picker/image_picker/example/android/build.gradle.kts b/packages/image_picker/image_picker/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/image_picker/image_picker/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/image_picker/image_picker/example/android/settings.gradle b/packages/image_picker/image_picker/example/android/settings.gradle deleted file mode 100755 index b542cca3f52e..000000000000 --- a/packages/image_picker/image_picker/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/image_picker/image_picker/example/android/settings.gradle.kts b/packages/image_picker/image_picker/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/image_picker/image_picker/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle b/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle deleted file mode 100644 index 9039d9da26ba..000000000000 --- a/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle +++ /dev/null @@ -1,114 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -// Load the build signing secrets from a local `keystore.properties` file. -// TODO(YOU): Create release keys and a `keystore.properties` file. See -// `example/README.md` for more info and `keystore.example.properties` for an -// example. -def keystorePropertiesFile = rootProject.file("keystore.properties") -def keystoreProperties = new Properties() -def configured = true -try { - keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) -} catch (IOException e) { - configured = false - logger.error('Release signing information not found.') -} - -project.ext { - // TODO(YOU): Create release keys and a `keystore.properties` file. See - // `example/README.md` for more info and `keystore.example.properties` for an - // example. - APP_ID = configured ? keystoreProperties['appId'] : "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE" - KEYSTORE_STORE_FILE = configured ? rootProject.file(keystoreProperties['storeFile']) : null - KEYSTORE_STORE_PASSWORD = keystoreProperties['storePassword'] - KEYSTORE_KEY_ALIAS = keystoreProperties['keyAlias'] - KEYSTORE_KEY_PASSWORD = keystoreProperties['keyPassword'] - VERSION_CODE = configured ? keystoreProperties['versionCode'].toInteger() : 1 - VERSION_NAME = configured ? keystoreProperties['versionName'] : "0.0.1" -} - -if (project.APP_ID == "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE") { - configured = false - logger.error('Unique package name not set, defaulting to "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE".') -} - -// Log a final error message if we're unable to create a release key signed -// build for an app configured in the Play Developer Console. Apks built in this -// condition won't be able to call any of the BillingClient APIs. -if (!configured) { - logger.error('The app could not be configured for release signing. In app purchases will not be testable. See `example/README.md` for more info and instructions.') -} - -android { - namespace = "io.flutter.plugins.inapppurchaseexample" - signingConfigs { - release { - storeFile project.KEYSTORE_STORE_FILE - storePassword project.KEYSTORE_STORE_PASSWORD - keyAlias project.KEYSTORE_KEY_ALIAS - keyPassword project.KEYSTORE_KEY_PASSWORD - } - } - - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId project.APP_ID - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode project.VERSION_CODE - versionName project.VERSION_NAME - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - // Google Play Billing APIs only work with apps signed for production. - debug { - if (configured) { - signingConfig = signingConfigs.release - } else { - signingConfig = signingConfigs.debug - } - } - release { - if (configured) { - signingConfig = signingConfigs.release - } else { - signingConfig = signingConfigs.debug - } - } - } - - testOptions { - unitTests.returnDefaultValues = true - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - implementation("com.android.billingclient:billing:3.0.2") - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-core:5.0.0") - testImplementation("org.json:json:20251224") - androidTestImplementation("androidx.test:runner:1.1.1") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") -} diff --git a/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle.kts b/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..2ba1d93c7bc0 --- /dev/null +++ b/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle.kts @@ -0,0 +1,106 @@ +import java.util.Properties + +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +val keystorePropertiesFile = rootProject.file("keystore.properties") +val keystoreProperties = Properties() +var configured = true +try { + keystorePropertiesFile.inputStream().use { keystoreProperties.load(it) } +} catch (e: java.io.IOException) { + configured = false + logger.error("Release signing information not found.") +} + +val appId = keystoreProperties.getProperty("appId") ?: "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE" +val keystoreStoreFile = if (configured) rootProject.file(keystoreProperties.getProperty("storeFile")) else null +val keystoreStorePassword = keystoreProperties.getProperty("storePassword") +val keystoreKeyAlias = keystoreProperties.getProperty("keyAlias") +val keystoreKeyPassword = keystoreProperties.getProperty("keyPassword") +val versionCodeVal = keystoreProperties.getProperty("versionCode")?.toInt() ?: 1 +val versionNameVal = keystoreProperties.getProperty("versionName") ?: "0.0.1" + +if (appId == "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE") { + configured = false + logger.error("Unique package name not set, defaulting to \"io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE\".") +} + +if (!configured) { + logger.error("The app could not be configured for release signing. In app purchases will not be testable. See `example/README.md` for more info and instructions.") +} + +android { + namespace = "io.flutter.plugins.inapppurchaseexample" + compileSdk = flutter.compileSdkVersion + + signingConfigs { + create("release") { + storeFile = keystoreStoreFile + storePassword = keystoreStorePassword + keyAlias = keystoreKeyAlias + keyPassword = keystoreKeyPassword + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = appId + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = versionCodeVal + versionName = versionNameVal + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + getByName("debug") { + if (configured) { + signingConfig = signingConfigs.getByName("release") + } else { + signingConfig = signingConfigs.getByName("debug") + } + } + getByName("release") { + if (configured) { + signingConfig = signingConfigs.getByName("release") + } else { + signingConfig = signingConfigs.getByName("debug") + } + } + } + + testOptions { + unitTests { + isReturnDefaultValues = true + } + } + + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + implementation("com.android.billingclient:billing:3.0.2") + testImplementation("junit:junit:4.13.2") + testImplementation("org.mockito:mockito-core:5.0.0") + testImplementation("org.json:json:20251224") + androidTestImplementation("androidx.test:runner:1.1.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") +} diff --git a/packages/in_app_purchase/in_app_purchase/example/android/build.gradle b/packages/in_app_purchase/in_app_purchase/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/in_app_purchase/in_app_purchase/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/in_app_purchase/in_app_purchase/example/android/build.gradle.kts b/packages/in_app_purchase/in_app_purchase/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/in_app_purchase/in_app_purchase/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/in_app_purchase/in_app_purchase/example/android/settings.gradle b/packages/in_app_purchase/in_app_purchase/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/in_app_purchase/in_app_purchase/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/in_app_purchase/in_app_purchase/example/android/settings.gradle.kts b/packages/in_app_purchase/in_app_purchase/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/in_app_purchase/in_app_purchase/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/local_auth/local_auth/example/android/app/build.gradle b/packages/local_auth/local_auth/example/android/app/build.gradle deleted file mode 100644 index c331558d7a3c..000000000000 --- a/packages/local_auth/local_auth/example/android/app/build.gradle +++ /dev/null @@ -1,57 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.localauthexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.localauthexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.1.1") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") -} diff --git a/packages/local_auth/local_auth/example/android/app/build.gradle.kts b/packages/local_auth/local_auth/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..520bcf8c629b --- /dev/null +++ b/packages/local_auth/local_auth/example/android/app/build.gradle.kts @@ -0,0 +1,47 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.localauthexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.localauthexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.1.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") +} diff --git a/packages/local_auth/local_auth/example/android/build.gradle b/packages/local_auth/local_auth/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/local_auth/local_auth/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/local_auth/local_auth/example/android/build.gradle.kts b/packages/local_auth/local_auth/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/local_auth/local_auth/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/local_auth/local_auth/example/android/settings.gradle b/packages/local_auth/local_auth/example/android/settings.gradle deleted file mode 100644 index d7ba8d54ffbc..000000000000 --- a/packages/local_auth/local_auth/example/android/settings.gradle +++ /dev/null @@ -1,28 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" - -} - -include ":app" diff --git a/packages/local_auth/local_auth/example/android/settings.gradle.kts b/packages/local_auth/local_auth/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/local_auth/local_auth/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/local_auth/local_auth/example/android/settings_aar.gradle b/packages/local_auth/local_auth/example/android/settings_aar.gradle deleted file mode 100644 index e7b4def49cb5..000000000000 --- a/packages/local_auth/local_auth/example/android/settings_aar.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' diff --git a/packages/local_auth/local_auth_android/example/android/settings_aar.gradle b/packages/local_auth/local_auth_android/example/android/settings_aar.gradle deleted file mode 100644 index e7b4def49cb5..000000000000 --- a/packages/local_auth/local_auth_android/example/android/settings_aar.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' diff --git a/packages/path_provider/path_provider/example/android/app/build.gradle b/packages/path_provider/path_provider/example/android/app/build.gradle deleted file mode 100644 index 991223e59884..000000000000 --- a/packages/path_provider/path_provider/example/android/app/build.gradle +++ /dev/null @@ -1,63 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.pathproviderexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.pathproviderexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test:rules:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.1.1") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") -} diff --git a/packages/path_provider/path_provider/example/android/app/build.gradle.kts b/packages/path_provider/path_provider/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..5512cac5eec8 --- /dev/null +++ b/packages/path_provider/path_provider/example/android/app/build.gradle.kts @@ -0,0 +1,49 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.pathproviderexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.pathproviderexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test:rules:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + + testImplementation("junit:junit:4.13.2") +} diff --git a/packages/path_provider/path_provider/example/android/build.gradle b/packages/path_provider/path_provider/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/path_provider/path_provider/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/path_provider/path_provider/example/android/build.gradle.kts b/packages/path_provider/path_provider/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/path_provider/path_provider/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/path_provider/path_provider/example/android/settings.gradle b/packages/path_provider/path_provider/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/path_provider/path_provider/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/path_provider/path_provider/example/android/settings.gradle.kts b/packages/path_provider/path_provider/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/path_provider/path_provider/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/pigeon/example/app/android/app/build.gradle b/packages/pigeon/example/app/android/app/build.gradle deleted file mode 100644 index f1eadc2f3cfc..000000000000 --- a/packages/pigeon/example/app/android/app/build.gradle +++ /dev/null @@ -1,65 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "dev.flutter.pigeon_example_app" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "dev.flutter.pigeon_example_app" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = '../..' -} diff --git a/packages/pigeon/example/app/android/app/build.gradle.kts b/packages/pigeon/example/app/android/app/build.gradle.kts new file mode 100644 index 000000000000..2b5f00fb72c5 --- /dev/null +++ b/packages/pigeon/example/app/android/app/build.gradle.kts @@ -0,0 +1,38 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "dev.flutter.pigeon_example_app" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "dev.flutter.pigeon_example_app" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/packages/pigeon/example/app/android/build.gradle b/packages/pigeon/example/app/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/pigeon/example/app/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/pigeon/example/app/android/build.gradle.kts b/packages/pigeon/example/app/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/pigeon/example/app/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/pigeon/example/app/android/settings.gradle b/packages/pigeon/example/app/android/settings.gradle deleted file mode 100644 index b9ca9c0ead08..000000000000 --- a/packages/pigeon/example/app/android/settings.gradle +++ /dev/null @@ -1,28 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" - -} - -include ":app" diff --git a/packages/pigeon/example/app/android/settings.gradle.kts b/packages/pigeon/example/app/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/pigeon/example/app/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/quick_actions/quick_actions/example/android/app/build.gradle b/packages/quick_actions/quick_actions/example/android/app/build.gradle deleted file mode 100644 index 3b940b20c577..000000000000 --- a/packages/quick_actions/quick_actions/example/android/app/build.gradle +++ /dev/null @@ -1,58 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.quickactionsexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.quickactionsexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") -} diff --git a/packages/quick_actions/quick_actions/example/android/app/build.gradle.kts b/packages/quick_actions/quick_actions/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..f677fe3f420a --- /dev/null +++ b/packages/quick_actions/quick_actions/example/android/app/build.gradle.kts @@ -0,0 +1,48 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.quickactionsexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.quickactionsexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") +} diff --git a/packages/quick_actions/quick_actions/example/android/build.gradle b/packages/quick_actions/quick_actions/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/quick_actions/quick_actions/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/quick_actions/quick_actions/example/android/build.gradle.kts b/packages/quick_actions/quick_actions/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/quick_actions/quick_actions/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/quick_actions/quick_actions/example/android/settings.gradle b/packages/quick_actions/quick_actions/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/quick_actions/quick_actions/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/quick_actions/quick_actions/example/android/settings.gradle.kts b/packages/quick_actions/quick_actions/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/quick_actions/quick_actions/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/shared_preferences/shared_preferences/example/android/app/build.gradle b/packages/shared_preferences/shared_preferences/example/android/app/build.gradle deleted file mode 100644 index 2e7513c07d31..000000000000 --- a/packages/shared_preferences/shared_preferences/example/android/app/build.gradle +++ /dev/null @@ -1,57 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.sharedpreferencesexample" - compileSdk = flutter.compileSdkVersion - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } - - defaultConfig { - applicationId "io.flutter.plugins.sharedpreferencesexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = '../..' -} diff --git a/packages/shared_preferences/shared_preferences/example/android/app/build.gradle.kts b/packages/shared_preferences/shared_preferences/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..bc121b47fccf --- /dev/null +++ b/packages/shared_preferences/shared_preferences/example/android/app/build.gradle.kts @@ -0,0 +1,38 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.sharedpreferencesexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.sharedpreferencesexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/packages/shared_preferences/shared_preferences/example/android/build.gradle b/packages/shared_preferences/shared_preferences/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/shared_preferences/shared_preferences/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/shared_preferences/shared_preferences/example/android/build.gradle.kts b/packages/shared_preferences/shared_preferences/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/shared_preferences/shared_preferences/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/shared_preferences/shared_preferences/example/android/settings.gradle b/packages/shared_preferences/shared_preferences/example/android/settings.gradle deleted file mode 100644 index b83203f03197..000000000000 --- a/packages/shared_preferences/shared_preferences/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/shared_preferences/shared_preferences/example/android/settings.gradle.kts b/packages/shared_preferences/shared_preferences/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/shared_preferences/shared_preferences/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/url_launcher/url_launcher/example/android/app/build.gradle b/packages/url_launcher/url_launcher/example/android/app/build.gradle deleted file mode 100644 index a61e85e82b21..000000000000 --- a/packages/url_launcher/url_launcher/example/android/app/build.gradle +++ /dev/null @@ -1,59 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.urllauncherexample" - compileSdk = flutter.compileSdkVersion - - - defaultConfig { - applicationId "io.flutter.plugins.urllauncherexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") -} diff --git a/packages/url_launcher/url_launcher/example/android/app/build.gradle.kts b/packages/url_launcher/url_launcher/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..402d90a1fd67 --- /dev/null +++ b/packages/url_launcher/url_launcher/example/android/app/build.gradle.kts @@ -0,0 +1,47 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.urllauncherexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.urllauncherexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") +} diff --git a/packages/url_launcher/url_launcher/example/android/build.gradle b/packages/url_launcher/url_launcher/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/url_launcher/url_launcher/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/url_launcher/url_launcher/example/android/build.gradle.kts b/packages/url_launcher/url_launcher/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/url_launcher/url_launcher/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/url_launcher/url_launcher/example/android/settings.gradle b/packages/url_launcher/url_launcher/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/url_launcher/url_launcher/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/url_launcher/url_launcher/example/android/settings.gradle.kts b/packages/url_launcher/url_launcher/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/url_launcher/url_launcher/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/video_player/video_player/example/android/app/build.gradle b/packages/video_player/video_player/example/android/app/build.gradle deleted file mode 100644 index 5a8787bcc93a..000000000000 --- a/packages/video_player/video_player/example/android/app/build.gradle +++ /dev/null @@ -1,65 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.videoplayerexample" - compileSdk = flutter.compileSdkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - defaultConfig { - applicationId "io.flutter.plugins.videoplayerexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - testImplementation("org.robolectric:robolectric:4.16") - testImplementation("org.mockito:mockito-core:5.0.0") - androidTestImplementation("androidx.test:runner:1.1.1") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") -} diff --git a/packages/video_player/video_player/example/android/app/build.gradle.kts b/packages/video_player/video_player/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..01996cc0ae47 --- /dev/null +++ b/packages/video_player/video_player/example/android/app/build.gradle.kts @@ -0,0 +1,49 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.videoplayerexample" + compileSdk = flutter.compileSdkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.videoplayerexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + testImplementation("org.robolectric:robolectric:4.16") + testImplementation("org.mockito:mockito-core:5.0.0") + androidTestImplementation("androidx.test:runner:1.1.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.1.1") +} diff --git a/packages/video_player/video_player/example/android/build.gradle b/packages/video_player/video_player/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/video_player/video_player/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/video_player/video_player/example/android/build.gradle.kts b/packages/video_player/video_player/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/video_player/video_player/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/video_player/video_player/example/android/settings.gradle b/packages/video_player/video_player/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/video_player/video_player/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/video_player/video_player/example/android/settings.gradle.kts b/packages/video_player/video_player/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/video_player/video_player/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/packages/webview_flutter/webview_flutter/example/android/app/build.gradle b/packages/webview_flutter/webview_flutter/example/android/app/build.gradle deleted file mode 100644 index 9d890e0683c2..000000000000 --- a/packages/webview_flutter/webview_flutter/example/android/app/build.gradle +++ /dev/null @@ -1,62 +0,0 @@ -plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace = "io.flutter.plugins.webviewflutterexample" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "io.flutter.plugins.webviewflutterexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } - lint { - disable 'InvalidPackage' - } -} - -flutter { - source = '../..' -} - -dependencies { - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test:runner:1.2.0") - androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") - api("androidx.test:core:1.4.0") -} diff --git a/packages/webview_flutter/webview_flutter/example/android/app/build.gradle.kts b/packages/webview_flutter/webview_flutter/example/android/app/build.gradle.kts new file mode 100644 index 000000000000..c2f838005c64 --- /dev/null +++ b/packages/webview_flutter/webview_flutter/example/android/app/build.gradle.kts @@ -0,0 +1,49 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "io.flutter.plugins.webviewflutterexample" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "io.flutter.plugins.webviewflutterexample" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("debug") + } + } + lint { + disable.add("InvalidPackage") + } +} + +flutter { + source = "../.." +} + +dependencies { + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test:runner:1.2.0") + androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0") + api("androidx.test:core:1.4.0") +} diff --git a/packages/webview_flutter/webview_flutter/example/android/build.gradle b/packages/webview_flutter/webview_flutter/example/android/build.gradle deleted file mode 100644 index b9db5700753a..000000000000 --- a/packages/webview_flutter/webview_flutter/example/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -allprojects { - repositories { - // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/webview_flutter/webview_flutter/example/android/build.gradle.kts b/packages/webview_flutter/webview_flutter/example/android/build.gradle.kts new file mode 100644 index 000000000000..a8bde37d0c72 --- /dev/null +++ b/packages/webview_flutter/webview_flutter/example/android/build.gradle.kts @@ -0,0 +1,33 @@ +allprojects { + repositories { + // See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. + val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" + val artifactRepoUrl = System.getenv(artifactRepoKey) + if (artifactRepoUrl != null) { + println("Using artifact hub") + maven { + url = uri(artifactRepoUrl) + } + } + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/webview_flutter/webview_flutter/example/android/settings.gradle b/packages/webview_flutter/webview_flutter/example/android/settings.gradle deleted file mode 100644 index b542cca3f52e..000000000000 --- a/packages/webview_flutter/webview_flutter/example/android/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.20" apply false - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - -include ":app" diff --git a/packages/webview_flutter/webview_flutter/example/android/settings.gradle.kts b/packages/webview_flutter/webview_flutter/example/android/settings.gradle.kts new file mode 100644 index 000000000000..a0118892641d --- /dev/null +++ b/packages/webview_flutter/webview_flutter/example/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +// See https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure for more info. +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1" +} + +include(":app") diff --git a/script/tool/lib/src/gradle_check_command.dart b/script/tool/lib/src/gradle_check_command.dart index af0b32bad6e2..16fb59e4b106 100644 --- a/script/tool/lib/src/gradle_check_command.dart +++ b/script/tool/lib/src/gradle_check_command.dart @@ -65,7 +65,6 @@ class GradleCheckCommand extends PackageLoopingCommand { FlutterPlatform.android, ); final File topLevelGradleFile = _getBuildGradleFile(androidDir); - final bool isKts = topLevelGradleFile.path.endsWith('.kts'); // This is tracked as a variable rather than a sequence of &&s so that all // failures are reported at once, not just the first one. @@ -80,7 +79,6 @@ class GradleCheckCommand extends PackageLoopingCommand { if (!_validateExampleTopLevelSettingsGradle( package, topLevelSettingsGradleFile, - isKts: isKts, )) { succeeded = false; } @@ -144,31 +142,25 @@ class GradleCheckCommand extends PackageLoopingCommand { '${indentation}Validating ' '${getRelativePosixPath(gradleFile, from: package.directory)}.', ); - final bool isKts = gradleFile.path.endsWith('.kts'); final String contents = gradleFile.readAsStringSync(); final List lines = contents.split('\n'); // This is tracked as a variable rather than a sequence of &&s so that all // failures are reported at once, not just the first one. var succeeded = true; - if (!_validateNamespace( - package, - contents, - isExample: false, - isKts: isKts, - )) { + if (!_validateNamespace(package, contents, isExample: false)) { succeeded = false; } - if (!_validateCompatibilityVersions(lines, isKts: isKts)) { + if (!_validateCompatibilityVersions(lines)) { succeeded = false; } - if (!_validateKotlinJvmCompatibility(lines, isKts: isKts)) { + if (!_validateKotlinJvmCompatibility(lines)) { succeeded = false; } - if (!_validateJavaKotlinCompileOptionsAlignment(lines, isKts: isKts)) { + if (!_validateJavaKotlinCompileOptionsAlignment(lines)) { succeeded = false; } - if (!_validateGradleDrivenLintConfig(lines, isKts: isKts)) { + if (!_validateGradleDrivenLintConfig(lines)) { succeeded = false; } if (!_validateCompileSdkUsage(package, lines)) { @@ -182,23 +174,10 @@ class GradleCheckCommand extends PackageLoopingCommand { static const String artifactHubDocumentationString = r'https://github.com/flutter/flutter/blob/master/docs/ecosystem/Plugins-and-Packages-repository-structure.md#gradle-structure'; - /// String printed as example of valid example root build.gradle repository - /// configuration that enables artifact hub env variable. + /// String printed as example of valid example root build.gradle.kts + /// repository configuration that enables artifact hub env variable. @visibleForTesting - static const String exampleGroovyRootGradleArtifactHubString = - ''' - // See $artifactHubDocumentationString for more info. - def artifactRepoKey = 'ARTIFACT_HUB_REPOSITORY' - if (System.getenv().containsKey(artifactRepoKey)) { - println "Using artifact hub" - maven { url System.getenv(artifactRepoKey) } - } -'''; - - /// String printed as example of valid example root build.gradle.kts repository - /// configuration that enables artifact hub env variable. - @visibleForTesting - static const String exampleKotlinRootGradleArtifactHubString = + static const String exampleRootGradleArtifactHubString = ''' // See $artifactHubDocumentationString for more info. val artifactRepoKey = "ARTIFACT_HUB_REPOSITORY" @@ -217,9 +196,8 @@ class GradleCheckCommand extends PackageLoopingCommand { /// Required in root gradle file. bool _validateArtifactHubUsage( RepositoryPackage example, - List gradleLines, { - required bool isKts, - }) { + List gradleLines, + ) { // Gradle variable name used to hold environment variable string. const keyVariable = 'artifactRepoKey'; const urlVariable = 'artifactRepoUrl'; @@ -230,27 +208,17 @@ class GradleCheckCommand extends PackageLoopingCommand { final documentationPresentRegex = RegExp( r'github\.com.*flutter.*blob.*Plugins-and-Packages-repository-structure.*gradle-structure', ); - final keyReadRegex = isKts - ? RegExp( - '$urlVariable' - r'\s*=\s*System\.getenv\(' - '$keyVariable' - r'\)', - ) - : RegExp( - r'if.*System\.getenv.*\.containsKey.*' - '$keyVariable', - ); - final keyUsedRegex = isKts - ? RegExp( - r'url = uri\(' - '$urlVariable' - r'\)', - ) - : RegExp( - r'maven.*url.*System\.getenv\(' - '$keyVariable', - ); + final keyReadRegex = RegExp( + '$urlVariable' + r'\s*=\s*System\.getenv\(' + '$keyVariable' + r'\)', + ); + final keyUsedRegex = RegExp( + r'url = uri\(' + '$urlVariable' + r'\)', + ); final bool keyPresent = gradleLines.any( (String line) => keyPresentRegex.hasMatch(line), @@ -266,12 +234,9 @@ class GradleCheckCommand extends PackageLoopingCommand { ); if (!(documentationPresent && keyPresent && keyRead && keyUsed)) { - final String exampleString = isKts - ? exampleKotlinRootGradleArtifactHubString - : exampleGroovyRootGradleArtifactHubString; printError( 'Failed Artifact Hub validation. Include the following in ' - 'example root build.gradle:\n$exampleString', + 'example root build.gradle:\n$exampleRootGradleArtifactHubString', ); } @@ -282,9 +247,8 @@ class GradleCheckCommand extends PackageLoopingCommand { /// some_package/example/android/settings.gradle). bool _validateExampleTopLevelSettingsGradle( RepositoryPackage package, - File gradleSettingsFile, { - required bool isKts, - }) { + File gradleSettingsFile, + ) { print( '${indentation}Validating ' '${getRelativePosixPath(gradleSettingsFile, from: package.directory)}.', @@ -294,27 +258,19 @@ class GradleCheckCommand extends PackageLoopingCommand { // This is tracked as a variable rather than a sequence of &&s so that all // failures are reported at once, not just the first one. var succeeded = true; - if (!_validateArtifactHubSettingsUsage(package, lines, isKts: isKts)) { + if (!_validateArtifactHubSettingsUsage(package, lines)) { + succeeded = false; + } + if (!_validateKotlinVersion(package, lines)) { succeeded = false; } return succeeded; } - /// String printed as a valid example of settings.gradle repository - /// configuration that enables artifact hub env variable. - @visibleForTesting - static const String exampleGroovySettingsArtifactHubString = ''' -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - // ...other plugins - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1" -} - '''; - /// String printed as a valid example of settings.gradle.kts repository /// configuration that enables artifact hub env variable. @visibleForTesting - static const String exampleKotlinSettingsArtifactHubString = ''' + static const String exampleSettingsArtifactHubString = ''' plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" // ...other plugins @@ -328,9 +284,8 @@ plugins { /// Required in root gradle file. bool _validateArtifactHubSettingsUsage( RepositoryPackage example, - List gradleLines, { - required bool isKts, - }) { + List gradleLines, + ) { final documentationPresentRegex = RegExp( r'github\.com.*flutter.*blob.*Plugins-and-Packages-repository-structure.*gradle-structure', ); @@ -356,12 +311,9 @@ plugins { ); } if (!declarativeArtifactRegistryApplied) { - final String exampleString = isKts - ? exampleKotlinSettingsArtifactHubString - : exampleGroovySettingsArtifactHubString; printError( 'Include the following in ' - 'example root settings.gradle:\n$exampleString', + 'example root settings.gradle:\n$exampleSettingsArtifactHubString', ); } } @@ -378,7 +330,6 @@ plugins { '${indentation}Validating ' '${getRelativePosixPath(gradleFile, from: package.directory)}.', ); - final bool isKts = gradleFile.path.endsWith('.kts'); final String contents = gradleFile.readAsStringSync(); final List lines = contents.split('\n'); @@ -388,10 +339,7 @@ plugins { if (!_validateJavacLintConfig(package, lines)) { succeeded = false; } - if (!_validateKotlinVersion(package, lines, isKts: isKts)) { - succeeded = false; - } - if (!_validateArtifactHubUsage(package, lines, isKts: isKts)) { + if (!_validateArtifactHubUsage(package, lines)) { succeeded = false; } return succeeded; @@ -407,13 +355,12 @@ plugins { '${indentation}Validating ' '${getRelativePosixPath(gradleFile, from: package.directory)}.', ); - final bool isKts = gradleFile.path.endsWith('.kts'); final String contents = gradleFile.readAsStringSync(); // This is tracked as a variable rather than a sequence of &&s so that all // failures are reported at once, not just the first one. var succeeded = true; - if (!_validateNamespace(package, contents, isExample: true, isKts: isKts)) { + if (!_validateNamespace(package, contents, isExample: true)) { succeeded = false; } return succeeded; @@ -425,7 +372,6 @@ plugins { RepositoryPackage package, String gradleContents, { required bool isExample, - required bool isKts, }) { // Regex to validate that the following namespace definition // is found (where the single quotes can be single or double): @@ -439,9 +385,8 @@ plugins { ); if (nameSpaceRegexMatch == null) { - final errorMessage = - ''' -build.gradle${isKts ? '.kts' : ''} must set a "namespace": + const errorMessage = ''' +build.gradle.kts must set a "namespace": android { namespace = "dev.flutter.foo" @@ -461,7 +406,6 @@ https://developer.android.com/build/publish-library/prep-lib-release#choose-name package, isExample: isExample, namespace: nameSpaceRegexMatch.group(1)!, - isKts: isKts, ); } } @@ -475,7 +419,6 @@ https://developer.android.com/build/publish-library/prep-lib-release#choose-name RepositoryPackage package, { required bool isExample, required String namespace, - required bool isKts, }) { final manifestPackageRegex = RegExp(r'package\s*=\s*"(.*?)"'); final String manifestContents = _getMainAndroidManifest( @@ -486,7 +429,7 @@ https://developer.android.com/build/publish-library/prep-lib-release#choose-name manifestContents, ); if (packageMatch != null && namespace != packageMatch.group(1)) { - final buildGradleName = 'build.gradle${isKts ? '.kts' : ''}'; + const buildGradleName = 'build.gradle.kts'; final errorMessage = ''' $buildGradleName "namespace" must match the "package" attribute in AndroidManifest.xml, if one is present. @@ -504,10 +447,7 @@ $buildGradleName "namespace" must match the "package" attribute in AndroidManife /// Checks for a source compatibiltiy version, so that it's explicit rather /// than using whatever the client's local toolchaing defaults to (which can /// lead to compile errors that show up for clients, but not in CI). - bool _validateCompatibilityVersions( - List gradleLines, { - required bool isKts, - }) { + bool _validateCompatibilityVersions(List gradleLines) { final bool hasLanguageVersion = gradleLines.any( (String line) => line.contains('languageVersion') && !_isCommented(line), ); @@ -528,9 +468,9 @@ $buildGradleName "namespace" must match the "package" attribute in AndroidManife !_isCommented(line), ); if (!hasLanguageVersion && !hasCompabilityVersions) { - final javaErrorMessage = + const javaErrorMessage = ''' -build.gradle${isKts ? '.kts' : ''} must set an explicit Java compatibility version. +build.gradle.kts must set an explicit Java compatibility version. This can be done either via "sourceCompatibility"/"targetCompatibility": android { @@ -560,10 +500,7 @@ for more details.'''; return true; } - bool _validateKotlinJvmCompatibility( - List gradleLines, { - required bool isKts, - }) { + bool _validateKotlinJvmCompatibility(List gradleLines) { bool isKotlinOptions(String line) => line.contains('kotlinOptions') && !_isCommented(line); final bool hasKotlinOptions = gradleLines.any(isKotlinOptions); @@ -588,7 +525,7 @@ for more details.'''; } final kotlinErrorMessage = ''' -If build.gradle${isKts ? '.kts' : ''} sets jvmTarget then it must use JavaVersion syntax. +If build.gradle.kts sets jvmTarget then it must use JavaVersion syntax. Good: android { kotlinOptions { @@ -607,11 +544,7 @@ If build.gradle${isKts ? '.kts' : ''} sets jvmTarget then it must use JavaVersio return true; } - bool _validateJavaKotlinCompileOptionsAlignment( - List gradleLines, { - required bool isKts, - }) { - final buildGradleName = 'build.gradle${isKts ? '.kts' : ''}'; + bool _validateJavaKotlinCompileOptionsAlignment(List gradleLines) { final javaVersions = []; // Some java versions have the format VERSION_1_8 but we dont need to handle those // because they are below the minimum. @@ -630,9 +563,8 @@ If build.gradle${isKts ? '.kts' : ''} sets jvmTarget then it must use JavaVersio if (javaVersions.isNotEmpty) { final int version = int.parse(javaVersions.first); if (!javaVersions.every((String element) => element == '$version')) { - final javaVersionAlignmentError = - ''' -If $buildGradleName uses JavaVersion.* versions must be the same. + const javaVersionAlignmentError = ''' +If build.gradle.kts uses JavaVersion.* versions must be the same. '''; printError( '$indentation${javaVersionAlignmentError.split('\n').join('\n$indentation')}', @@ -643,7 +575,7 @@ If $buildGradleName uses JavaVersion.* versions must be the same. if (version < _minimumJavaVersion) { final minimumJavaVersionError = ''' -$buildGradleName uses "JavaVersion.VERSION_$version". +build.gradle.kts uses "JavaVersion.VERSION_$version". Which is below the minimum required. Use at least "JavaVersion.VERSION_$_minimumJavaVersion". '''; printError( @@ -659,10 +591,7 @@ Which is below the minimum required. Use at least "JavaVersion.VERSION_$_minimum /// Returns whether the given gradle content is configured to enable all /// Gradle-driven lints (those checked by ./gradlew lint) and treat them as /// errors. - bool _validateGradleDrivenLintConfig( - List gradleLines, { - required bool isKts, - }) { + bool _validateGradleDrivenLintConfig(List gradleLines) { if (!gradleLines.any( (String line) => line.contains('checkAllWarnings = true') && !_isCommented(line), @@ -675,7 +604,7 @@ Which is below the minimum required. Use at least "JavaVersion.VERSION_$_minimum '${indentation}This package is not configured to enable all ' 'Gradle-driven lint warnings and treat them as errors. ' 'Please add the following to the lintOptions section of ' - 'android/build.gradle${isKts ? '.kts' : ''}:', + 'android/build.gradle.kts:', ); print(''' checkAllWarnings = true @@ -832,10 +761,11 @@ gradle.projectsEvaluated { /// least a minimum value, if it is set at all. bool _validateKotlinVersion( RepositoryPackage example, - List gradleLines, { - required bool isKts, - }) { - final kotlinVersionRegex = RegExp(r"ext\.kotlin_version\s*=\s*'([\d.]+)'"); + List gradleLines, + ) { + final kotlinVersionRegex = RegExp( + r'id\("org\.jetbrains\.kotlin\.android"\) version "([\d.]+)"', + ); RegExpMatch? match; if (gradleLines.any((String line) { match = kotlinVersionRegex.firstMatch(line); @@ -844,9 +774,10 @@ gradle.projectsEvaluated { final version = Version.parse(match!.group(1)!); if (version < minKotlinVersion) { printError( - 'build.gradle${isKts ? '.kts' : ''} sets "ext.kotlin_version" to "$version". The ' - 'minimum Kotlin version that can be specified is ' - '$minKotlinVersion, for compatibility with modern dependencies.', + 'settings.gradle.kts sets the "org.jetbrains.kotlin.android" ' + 'plugin version to "$version". The minimum Kotlin version that can ' + 'be specified is $minKotlinVersion, for compatibility with modern ' + 'dependencies.', ); return false; } diff --git a/script/tool/test/gradle_check_command_test.dart b/script/tool/test/gradle_check_command_test.dart index 238e7354f52b..6ce23bb334ca 100644 --- a/script/tool/test/gradle_check_command_test.dart +++ b/script/tool/test/gradle_check_command_test.dart @@ -17,9 +17,7 @@ const String _defaultFakeNamespace = 'dev.flutter.foo'; void main() { late CommandRunner runner; late Directory packagesDir; - const groovyJavaIncompatabilityIndicator = - 'build.gradle must set an explicit Java compatibility version.'; - const kotlinJavaIncompatabilityIndicator = + const javaIncompatabilityIndicator = 'build.gradle.kts must set an explicit Java compatibility version.'; setUp(() { @@ -35,104 +33,9 @@ void main() { runner.addCommand(command); }); - /// Writes a fake android/build.gradle file for plugin [package] with the - /// given options. - void writeFakeGroovyPluginBuildGradle( - RepositoryPackage package, { - bool includeLanguageVersion = false, - bool includeSourceCompat = false, - bool includeTargetCompat = false, - bool commentSourceLanguage = false, - bool includeNamespace = true, - bool commentNamespace = false, - bool warningsConfigured = true, - bool useDeprecatedCompileSdkVersion = false, - bool usePropertyAssignment = 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'); - buildGradle.createSync(recursive: true); - - const warningConfig = ''' - lintOptions { - checkAllWarnings = true - warningsAsErrors = true - disable '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 : ''} - ${useDeprecatedCompileSdkVersion ? 'compileSdkVersion' : 'compileSdk'} ${usePropertyAssignment ? '=' : ''} $compileSdk - - defaultConfig { - minSdk ${usePropertyAssignment ? '=' : ''} 30 - } -${warningsConfigured ? warningConfig : ''} - compileOptions { - ${includeSourceCompat ? sourceCompat : ''} - ${includeTargetCompat ? targetCompat : ''} - } - ${includeKotlinOptions ? kotlinConfig : ''} - testOptions { - unitTests.includeAndroidResources = true - } -} - -dependencies { - implementation 'fake.package:fake:1.0.0' -} -'''); - } - /// Writes a fake android/build.gradle.kts file for plugin [package] with the /// given options. - void writeFakeKotlinPluginBuildGradle( + void writeFakePluginBuildGradle( RepositoryPackage package, { bool includeLanguageVersion = false, bool includeSourceCompat = false, @@ -196,7 +99,17 @@ buildscript { } } -apply plugin: 'com.android.library' +allprojects { + repositories { + google() + mavenCentral() + } +} + +plugins { + id("com.android.library") + id("kotlin-android") +} ${includeLanguageVersion ? javaSection : ''} android { @@ -225,95 +138,34 @@ dependencies { '''); } - /// 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 - // the Groovy variants, and switch all tests to the Kotlin variants. - void writeFakeGroovyExampleTopLevelBuildGradle( + /// Writes a fake android/build.gradle.kts file for an example [package] with + /// the given options. + void writeFakeExampleTopLevelBuildGradle( RepositoryPackage package, { required String pluginName, - required bool warningsConfigured, - String? kotlinVersion, + bool warningsConfigured = true, bool includeArtifactHub = true, }) { final File buildGradle = package .platformDirectory(FlutterPlatform.android) - .childFile('build.gradle'); + .childFile('build.gradle.kts'); buildGradle.createSync(recursive: true); final warningConfig = ''' gradle.projectsEvaluated { project(":$pluginName") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" + tasks.withType { + options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) } } } '''; - buildGradle.writeAsStringSync(''' -buildscript { - ${kotlinVersion == null ? '' : "ext.kotlin_version = '$kotlinVersion'"} - repositories { - ${includeArtifactHub ? GradleCheckCommand.exampleGroovyRootGradleArtifactHubString : ''} - google() - mavenCentral() - } - - dependencies { - classpath 'fake.package:fake:1.0.0' - } -} - -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "\${rootProject.buildDir}/\${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -task clean(type: Delete) { - delete rootProject.buildDir -} - -${warningsConfigured ? warningConfig : ''} -'''); - } - - /// Writes a fake android/build.gradle.kts file for an example [package] with - /// the given options. - void writeFakeKotlinExampleTopLevelBuildGradle( - RepositoryPackage package, { - required String pluginName, - bool warningsConfigured = true, - bool includeArtifactHub = true, - }) { - final File buildGradle = package - .platformDirectory(FlutterPlatform.android) - .childFile('build.gradle.kts'); - buildGradle.createSync(recursive: true); - - // TODO(stuartmorgan): Add support for warningsConfigured when we start - // migrating plugins to Kotlin Gradle. See Groovy variant above. For now, - // throw if any test requires warnings. - if (warningsConfigured) { - throw UnimplementedError( - 'warningsConfigured is not yet supported for Kotlin Gradle', - ); - } buildGradle.writeAsStringSync(''' allprojects { repositories { - ${includeArtifactHub ? GradleCheckCommand.exampleKotlinRootGradleArtifactHubString : ''} + ${includeArtifactHub ? GradleCheckCommand.exampleRootGradleArtifactHubString : ''} google() mavenCentral() } @@ -336,59 +188,16 @@ subprojects { tasks.register("clean") { delete(rootProject.layout.buildDirectory) } -'''); - } - - /// Writes a fake android/build.gradle file for an example [package] with the - /// given options. - void writeFakeGroovyExampleSettingsGradle( - RepositoryPackage package, { - bool includeArtifactHub = true, - bool includeArtifactDocumentation = true, - }) { - final File settingsGradle = package - .platformDirectory(FlutterPlatform.android) - .childFile('settings.gradle'); - settingsGradle.createSync(recursive: true); - - /// String printed as a valid example of settings.gradle repository - /// configuration without the artifact hub env variable. - const exampleSettingsWithoutArtifactHubString = ''' -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - // ...other plugins -} - '''; - settingsGradle.writeAsStringSync(''' -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("\$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -${includeArtifactDocumentation ? '// See ${GradleCheckCommand.artifactHubDocumentationString} for more info.' : ''} -${includeArtifactHub ? GradleCheckCommand.exampleGroovySettingsArtifactHubString : exampleSettingsWithoutArtifactHubString} -include ":app" +${warningsConfigured ? warningConfig : ''} '''); } - /// Writes a fake android/build.gradle file for an example [package] with the - /// given options. - void writeFakeKotlinExampleSettingsGradle( + /// Writes a fake android/settings.gradle.kts file for an example [package] + /// with the given options. + void writeFakeExampleSettingsGradle( RepositoryPackage package, { + required String kotlinVersion, bool includeArtifactHub = true, bool includeArtifactDocumentation = true, }) { @@ -397,15 +206,6 @@ include ":app" .childFile('settings.gradle.kts'); settingsGradle.createSync(recursive: true); - /// String printed as a valid example of settings.gradle repository - /// configuration without the artifact hub env variable. - const exampleSettingsWithoutArtifactHubString = ''' -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - // ...other plugins -} - '''; - settingsGradle.writeAsStringSync(''' pluginManagement { val flutterSdkPath = @@ -427,65 +227,20 @@ pluginManagement { } ${includeArtifactDocumentation ? '// See ${GradleCheckCommand.artifactHubDocumentationString} for more info.' : ''} -${includeArtifactHub ? GradleCheckCommand.exampleKotlinSettingsArtifactHubString : exampleSettingsWithoutArtifactHubString} -include ":app" -'''); - } - - /// Writes a fake android/app/build.gradle file for an example [package] with - /// the given options. - void writeFakeGroovyExampleAppBuildGradle( - RepositoryPackage package, { - required bool includeNamespace, - required bool commentNamespace, - required bool includeNameSpaceAsDeclaration, - required bool usePropertyAssignment, - }) { - final File buildGradle = package - .platformDirectory(FlutterPlatform.android) - .childDirectory('app') - .childFile('build.gradle'); - buildGradle.createSync(recursive: true); - - final namespace = - "${commentNamespace ? '// ' : ''}namespace ${includeNameSpaceAsDeclaration ? '= ' : ''}'$_defaultFakeNamespace'"; - buildGradle.writeAsStringSync(''' -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - -apply plugin: 'com.android.application' -apply from: "\$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - -android { - ${includeNamespace ? namespace : ''} - compileSdk ${usePropertyAssignment ? '=' : ''} flutter.compileSdkVersion - - lintOptions { - disable 'InvalidPackage' - } - - defaultConfig { - applicationId "io.flutter.plugins.cameraexample" - minSdkVersion 21 - targetSdkVersion 28 - } -} - -flutter { - source '../..' +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "$kotlinVersion" apply false + ${includeArtifactHub ? 'id("com.google.cloud.artifactregistry.gradle-plugin") version "2.2.1"' : ''} } -dependencies { - testImplementation("fake.package:fake:1.0.0") -} +include ":app" '''); } - /// Writes a fake android/app/build.gradle file for an example [package] with - /// the given options. - void writeFakeKotlinExampleAppBuildGradle( + /// Writes a fake android/app/build.gradle.kts file for an example [package] + /// with the given options. + void writeFakeExampleAppBuildGradle( RepositoryPackage package, { required bool includeNamespace, required bool commentNamespace, @@ -541,64 +296,31 @@ flutter { '''); } - void writeFakeGroovyExampleBuildGradles( + void writeFakeExampleBuildGradles( RepositoryPackage package, { required String pluginName, - bool includeNamespace = true, - bool commentNamespace = false, - bool includeNameSpaceAsDeclaration = true, - bool warningsConfigured = true, String? kotlinVersion, - bool includeBuildArtifactHub = true, - bool includeSettingsArtifactHub = true, - bool includeSettingsDocumentationArtifactHub = true, - bool usePropertyAssignment = true, - }) { - writeFakeGroovyExampleTopLevelBuildGradle( - package, - pluginName: pluginName, - warningsConfigured: warningsConfigured, - kotlinVersion: kotlinVersion, - includeArtifactHub: includeBuildArtifactHub, - ); - writeFakeGroovyExampleAppBuildGradle( - package, - includeNamespace: includeNamespace, - commentNamespace: commentNamespace, - includeNameSpaceAsDeclaration: includeNameSpaceAsDeclaration, - usePropertyAssignment: usePropertyAssignment, - ); - writeFakeGroovyExampleSettingsGradle( - package, - includeArtifactHub: includeSettingsArtifactHub, - includeArtifactDocumentation: includeSettingsDocumentationArtifactHub, - ); - } - - void writeFakeKotlinExampleBuildGradles( - RepositoryPackage package, { - required String pluginName, bool includeNamespace = true, bool commentNamespace = false, - // TODO(stuartmorgan): Default to true once the test helper supports it. - bool warningsConfigured = false, + bool warningsConfigured = true, bool includeBuildArtifactHub = true, bool includeSettingsArtifactHub = true, bool includeSettingsDocumentationArtifactHub = true, }) { - writeFakeKotlinExampleTopLevelBuildGradle( + writeFakeExampleTopLevelBuildGradle( package, pluginName: pluginName, warningsConfigured: warningsConfigured, includeArtifactHub: includeBuildArtifactHub, ); - writeFakeKotlinExampleAppBuildGradle( + writeFakeExampleAppBuildGradle( package, includeNamespace: includeNamespace, commentNamespace: commentNamespace, ); - writeFakeKotlinExampleSettingsGradle( + writeFakeExampleSettingsGradle( package, + kotlinVersion: kotlinVersion ?? '2.2.20', includeArtifactHub: includeSettingsArtifactHub, includeArtifactDocumentation: includeSettingsDocumentationArtifactHub, ); @@ -640,14 +362,14 @@ flutter { }); test( - 'fails when build.gradle has no java compatibility version - groovy', + 'fails when build.gradle.kts has no java compatibility version', () async { final RepositoryPackage package = createFakePlugin( 'a_plugin', packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle(package); + writeFakePluginBuildGradle(package); writeFakeManifest(package); Error? commandError; @@ -662,39 +384,7 @@ flutter { expect(commandError, isA()); expect( output, - containsAllInOrder([ - contains(groovyJavaIncompatabilityIndicator), - ]), - ); - }, - ); - - 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), - ]), + containsAllInOrder([contains(javaIncompatabilityIndicator)]), ); }, ); @@ -707,7 +397,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle(package, includeSourceCompat: true); + writeFakePluginBuildGradle(package, includeSourceCompat: true); writeFakeManifest(package); Error? commandError; @@ -722,9 +412,7 @@ flutter { expect(commandError, isA()); expect( output, - containsAllInOrder([ - contains(groovyJavaIncompatabilityIndicator), - ]), + containsAllInOrder([contains(javaIncompatabilityIndicator)]), ); }, ); @@ -737,7 +425,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeSourceCompat: true, includeTargetCompat: true, @@ -773,7 +461,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeSourceCompat: true, includeTargetCompat: true, @@ -797,7 +485,7 @@ flutter { output, containsAllInOrder([ contains( - 'If build.gradle uses JavaVersion.* versions must be the same.', + 'If build.gradle.kts uses JavaVersion.* versions must be the same.', ), ]), ); @@ -809,7 +497,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeSourceCompat: true, includeTargetCompat: true, @@ -825,7 +513,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }); @@ -838,7 +526,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeSourceCompat: true, includeTargetCompat: true, @@ -852,7 +540,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }, @@ -864,7 +552,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); + writeFakePluginBuildGradle(package, includeLanguageVersion: true); writeFakeManifest(package); final List output = await runCapturingPrint(runner, [ @@ -874,42 +562,19 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), - ]), - ); - }); - - test('does not require java version in examples - groovy', () async { - const pluginName = 'a_plugin'; - final RepositoryPackage package = createFakePackage( - pluginName, - packagesDir, - ); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles(example, pluginName: pluginName); - writeFakeManifest(example, isApp: true); - - final List output = await runCapturingPrint(runner, [ - 'gradle-check', - ]); - - expect( - output, - containsAllInOrder([ - contains('Validating android/build.gradle'), - contains('Ran for 1 package(s)'), + contains('Validating android/build.gradle.kts'), ]), ); }); - test('does not require java version in examples - kotlin', () async { + test('does not require java version in examples', () async { const pluginName = 'a_plugin'; final RepositoryPackage package = createFakePackage( pluginName, packagesDir, ); final RepositoryPackage example = package.getExamples().first; - writeFakeKotlinExampleBuildGradles(example, pluginName: pluginName); + writeFakeExampleBuildGradles(example, pluginName: pluginName); writeFakeManifest(example, isApp: true); final List output = await runCapturingPrint(runner, [ @@ -931,7 +596,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeSourceCompat: true, includeTargetCompat: true, @@ -951,9 +616,7 @@ flutter { expect(commandError, isA()); expect( output, - containsAllInOrder([ - contains(groovyJavaIncompatabilityIndicator), - ]), + containsAllInOrder([contains(javaIncompatabilityIndicator)]), ); }); @@ -963,7 +626,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, commentSourceLanguage: true, @@ -982,9 +645,7 @@ flutter { expect(commandError, isA()); expect( output, - containsAllInOrder([ - contains(groovyJavaIncompatabilityIndicator), - ]), + containsAllInOrder([contains(javaIncompatabilityIndicator)]), ); }); @@ -996,7 +657,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); + writeFakePluginBuildGradle(package, includeLanguageVersion: true); writeFakeManifest(package, packageName: 'wrong.package.name'); Error? commandError; @@ -1013,51 +674,20 @@ flutter { output, containsAllInOrder([ contains( - 'build.gradle "namespace" must match the "package" attribute in AndroidManifest.xml', + 'build.gradle.kts "namespace" must match the "package" attribute in AndroidManifest.xml', ), ]), ); }, ); - test('fails when namespace is missing - groovy', () async { + test('fails when namespace is missing', () async { final RepositoryPackage package = createFakePlugin( 'a_plugin', packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( - 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 must set a "namespace"'), - ]), - ); - }); - - test('fails when namespace is missing - kotlin', () async { - final RepositoryPackage package = createFakePlugin( - 'a_plugin', - packagesDir, - examples: [], - ); - writeFakeKotlinPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, includeNamespace: false, @@ -1082,44 +712,13 @@ flutter { ); }); - test('fails when namespace is missing from example - groovy', () async { + test('fails when namespace is missing from example', () async { const pluginName = 'a_plugin'; final RepositoryPackage package = createFakePlugin(pluginName, packagesDir); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); + writeFakePluginBuildGradle(package, includeLanguageVersion: true); writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( - example, - pluginName: pluginName, - includeNamespace: false, - ); - writeFakeManifest(example, isApp: true); - - Error? commandError; - final List output = await runCapturingPrint( - runner, - ['gradle-check'], - errorHandler: (Error e) { - commandError = e; - }, - ); - - expect(commandError, isA()); - expect( - output, - containsAllInOrder([ - contains('build.gradle must set a "namespace"'), - ]), - ); - }); - - test('fails when namespace is missing from example - kotlin', () async { - const pluginName = 'a_plugin'; - final RepositoryPackage package = createFakePlugin(pluginName, packagesDir); - writeFakeKotlinPluginBuildGradle(package, includeLanguageVersion: true); - writeFakeManifest(package); - final RepositoryPackage example = package.getExamples().first; - writeFakeKotlinExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: pluginName, includeNamespace: false, @@ -1156,10 +755,10 @@ flutter { pluginName, packagesDir, ); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); + writeFakePluginBuildGradle(package, includeLanguageVersion: true); writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles(example, pluginName: pluginName); + writeFakeExampleBuildGradles(example, pluginName: pluginName); writeFakeManifest( example, isApp: true, @@ -1180,7 +779,7 @@ flutter { output, containsAllInOrder([ contains( - 'build.gradle "namespace" must match the "package" attribute in AndroidManifest.xml', + 'build.gradle.kts "namespace" must match the "package" attribute in AndroidManifest.xml', ), ]), ); @@ -1193,7 +792,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, commentNamespace: true, @@ -1213,39 +812,7 @@ flutter { expect( output, containsAllInOrder([ - contains('build.gradle must set a "namespace"'), - ]), - ); - }); - - test('fails when namespace is declared without "=" declaration', () async { - const pluginName = 'a_plugin'; - final RepositoryPackage package = createFakePlugin(pluginName, packagesDir); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); - writeFakeManifest(package); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( - example, - pluginName: pluginName, - includeNameSpaceAsDeclaration: false, - ); - writeFakeManifest(example, isApp: true); - - Error? commandError; - final List output = await runCapturingPrint( - runner, - ['gradle-check'], - errorHandler: (Error e) { - commandError = e; - }, - ); - - expect(commandError, isA()); - expect( - output, - containsAllInOrder([ - contains('build.gradle must set a "namespace"'), - contains('The following packages had errors:'), + contains('build.gradle.kts must set a "namespace"'), ]), ); }); @@ -1257,7 +824,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( plugin, includeLanguageVersion: true, warningsConfigured: false, @@ -1297,10 +864,10 @@ flutter { platformAndroid: const PlatformDetails(PlatformSupport.inline), }, ); - writeFakeGroovyPluginBuildGradle(plugin, includeLanguageVersion: true); + writeFakePluginBuildGradle(plugin, includeLanguageVersion: true); writeFakeManifest(plugin); final RepositoryPackage example = plugin.getExamples().first; - writeFakeGroovyExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: pluginName, warningsConfigured: false, @@ -1331,7 +898,7 @@ flutter { ); test( - 'passes if non-plugin package example javac lint-warnings-as-errors is missing - groovy', + 'passes if non-plugin package example javac lint-warnings-as-errors is missing', () async { const packageName = 'a_package'; final RepositoryPackage plugin = createFakePackage( @@ -1339,75 +906,10 @@ flutter { packagesDir, ); final RepositoryPackage example = plugin.getExamples().first; - writeFakeGroovyExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: packageName, - warningsConfigured: false, - ); - writeFakeManifest(example, isApp: true); - - final List output = await runCapturingPrint(runner, [ - 'gradle-check', - ]); - - expect( - output, - containsAllInOrder([ - contains('Validating android/build.gradle'), - ]), - ); - }, - ); - - test( - 'passes if non-plugin package example javac lint-warnings-as-errors is missing - kotlin', - () async { - const packageName = 'a_package'; - final RepositoryPackage plugin = createFakePackage( - packageName, - packagesDir, - ); - final RepositoryPackage example = plugin.getExamples().first; - writeFakeKotlinExampleBuildGradles( - example, - pluginName: packageName, - // TODO(stuartmorgan): Remove the ignore once the default flips. See - // the comment in writeFakeKotlinExampleBuildGradles. - // ignore: avoid_redundant_argument_values - warningsConfigured: false, - ); - writeFakeManifest(example, isApp: true); - - final List output = await runCapturingPrint(runner, [ - 'gradle-check', - ]); - - expect( - output, - containsAllInOrder([ - contains('Validating android/build.gradle.kts'), - ]), - ); - }, - ); - - group('Artifact Hub check', () { - test('passes build.gradle artifact hub check when set - groovy', () async { - const packageName = 'a_package'; - final RepositoryPackage package = createFakePackage( - 'a_package', - packagesDir, - ); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( - example, - pluginName: packageName, - // ignore: avoid_redundant_argument_values - includeBuildArtifactHub: true, - // ignore: avoid_redundant_argument_values - includeSettingsArtifactHub: true, - // ignore: avoid_redundant_argument_values - includeSettingsDocumentationArtifactHub: true, + warningsConfigured: false, ); writeFakeManifest(example, isApp: true); @@ -1418,20 +920,21 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), - contains('Validating android/settings.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); - }); + }, + ); - test('passes build.gradle artifact hub check when set - kotlin', () async { + group('Artifact Hub check', () { + test('passes build.gradle.kts artifact hub check when set', () async { const packageName = 'a_package'; final RepositoryPackage package = createFakePackage( 'a_package', packagesDir, ); final RepositoryPackage example = package.getExamples().first; - writeFakeKotlinExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: packageName, // ignore: avoid_redundant_argument_values @@ -1457,46 +960,7 @@ flutter { }); test( - 'fails artifact hub check when build and settings sections missing - groovy', - () async { - const packageName = 'a_package'; - final RepositoryPackage package = createFakePackage( - 'a_package', - packagesDir, - ); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( - example, - pluginName: packageName, - includeBuildArtifactHub: false, - includeSettingsArtifactHub: false, - ); - writeFakeManifest(example, isApp: true); - - Error? commandError; - final List output = await runCapturingPrint( - runner, - ['gradle-check'], - errorHandler: (Error e) { - commandError = e; - }, - ); - - expect(commandError, isA()); - expect( - output, - containsAllInOrder([ - contains( - GradleCheckCommand.exampleGroovyRootGradleArtifactHubString, - ), - contains(GradleCheckCommand.exampleGroovySettingsArtifactHubString), - ]), - ); - }, - ); - - test( - 'fails artifact hub check when build and settings sections missing - kotlin', + 'fails artifact hub check when build and settings sections missing', () async { const packageName = 'a_package'; final RepositoryPackage package = createFakePackage( @@ -1504,7 +968,7 @@ flutter { packagesDir, ); final RepositoryPackage example = package.getExamples().first; - writeFakeKotlinExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: packageName, includeBuildArtifactHub: false, @@ -1525,49 +989,13 @@ flutter { expect( output, containsAllInOrder([ - contains( - GradleCheckCommand.exampleKotlinRootGradleArtifactHubString, - ), - contains(GradleCheckCommand.exampleKotlinSettingsArtifactHubString), + contains(GradleCheckCommand.exampleRootGradleArtifactHubString), + contains(GradleCheckCommand.exampleSettingsArtifactHubString), ]), ); }, ); - test('fails build.gradle artifact hub check when missing', () async { - const packageName = 'a_package'; - final RepositoryPackage package = createFakePackage( - 'a_package', - packagesDir, - ); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( - example, - pluginName: packageName, - includeBuildArtifactHub: false, - // ignore: avoid_redundant_argument_values - includeSettingsArtifactHub: true, - ); - writeFakeManifest(example, isApp: true); - - Error? commandError; - final List output = await runCapturingPrint( - runner, - ['gradle-check'], - errorHandler: (Error e) { - commandError = e; - }, - ); - - expect(commandError, isA()); - expect( - output, - containsAllInOrder([ - contains(GradleCheckCommand.exampleGroovyRootGradleArtifactHubString), - ]), - ); - }); - test('fails build.gradle.kts artifact hub check when missing', () async { const packageName = 'a_package'; final RepositoryPackage package = createFakePackage( @@ -1575,7 +1003,7 @@ flutter { packagesDir, ); final RepositoryPackage example = package.getExamples().first; - writeFakeKotlinExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: packageName, includeBuildArtifactHub: false, @@ -1597,49 +1025,9 @@ flutter { expect( output, containsAllInOrder([ - contains(GradleCheckCommand.exampleKotlinRootGradleArtifactHubString), - ]), - ); - }); - - test('fails settings.gradle artifact hub check when missing', () async { - const packageName = 'a_package'; - final RepositoryPackage package = createFakePackage( - 'a_package', - packagesDir, - ); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( - example, - pluginName: packageName, - // ignore: avoid_redundant_argument_values - includeBuildArtifactHub: true, - includeSettingsArtifactHub: false, - ); - writeFakeManifest(example, isApp: true); - - Error? commandError; - final List output = await runCapturingPrint( - runner, - ['gradle-check'], - errorHandler: (Error e) { - commandError = e; - }, - ); - - expect(commandError, isA()); - expect( - output, - containsAllInOrder([ - contains(GradleCheckCommand.exampleGroovySettingsArtifactHubString), + contains(GradleCheckCommand.exampleRootGradleArtifactHubString), ]), ); - expect( - output, - isNot( - contains(GradleCheckCommand.exampleGroovyRootGradleArtifactHubString), - ), - ); }); test('fails settings.gradle.kts artifact hub check when missing', () async { @@ -1649,7 +1037,7 @@ flutter { packagesDir, ); final RepositoryPackage example = package.getExamples().first; - writeFakeKotlinExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: packageName, // ignore: avoid_redundant_argument_values @@ -1671,99 +1059,17 @@ flutter { expect( output, containsAllInOrder([ - contains(GradleCheckCommand.exampleKotlinSettingsArtifactHubString), + contains(GradleCheckCommand.exampleSettingsArtifactHubString), ]), ); expect( output, - isNot( - contains(GradleCheckCommand.exampleKotlinRootGradleArtifactHubString), - ), + isNot(contains(GradleCheckCommand.exampleRootGradleArtifactHubString)), ); }); test( - 'prints error for declarative method of applying gradle plugins', - () async { - const packageName = 'a_package'; - final RepositoryPackage package = createFakePackage( - 'a_package', - packagesDir, - ); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); - writeFakeManifest(package); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( - example, - pluginName: packageName, - // ignore: avoid_redundant_argument_values - includeBuildArtifactHub: true, - includeSettingsArtifactHub: false, - // ignore: avoid_redundant_argument_values - includeSettingsDocumentationArtifactHub: true, - ); - writeFakeManifest(example, isApp: true); - - Error? commandError; - final List output = await runCapturingPrint( - runner, - ['gradle-check'], - errorHandler: (Error e) { - commandError = e; - }, - ); - - expect(commandError, isA()); - expect( - output, - containsAllInOrder([ - contains(GradleCheckCommand.exampleGroovySettingsArtifactHubString), - ]), - ); - }, - ); - - test( - 'error message is printed when documentation link is missing - groovy', - () async { - const packageName = 'a_package'; - final RepositoryPackage package = createFakePackage( - 'a_package', - packagesDir, - ); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( - example, - pluginName: packageName, - // ignore: avoid_redundant_argument_values - includeBuildArtifactHub: true, - // ignore: avoid_redundant_argument_values - includeSettingsArtifactHub: true, - includeSettingsDocumentationArtifactHub: false, - ); - writeFakeManifest(example, isApp: true); - - Error? commandError; - final List output = await runCapturingPrint( - runner, - ['gradle-check'], - errorHandler: (Error e) { - commandError = e; - }, - ); - - expect(commandError, isA()); - expect( - output, - containsAllInOrder([ - contains(GradleCheckCommand.artifactHubDocumentationString), - ]), - ); - }, - ); - - test( - 'error message is printed when documentation link is missing - kotlin', + 'error message is printed when documentation link is missing', () async { const packageName = 'a_package'; final RepositoryPackage package = createFakePackage( @@ -1771,7 +1077,7 @@ flutter { packagesDir, ); final RepositoryPackage example = package.getExamples().first; - writeFakeKotlinExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: packageName, // ignore: avoid_redundant_argument_values @@ -1809,10 +1115,8 @@ flutter { 'a_package', packagesDir, ); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); - writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles(example, pluginName: packageName); + writeFakeExampleBuildGradles(example, pluginName: packageName); writeFakeManifest(example, isApp: true); final List output = await runCapturingPrint(runner, [ @@ -1822,7 +1126,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }); @@ -1833,10 +1137,8 @@ flutter { 'a_package', packagesDir, ); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); - writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: packageName, kotlinVersion: minKotlinVersion.toString(), @@ -1850,7 +1152,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }); @@ -1861,10 +1163,8 @@ flutter { 'a_package', packagesDir, ); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); - writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: packageName, kotlinVersion: '99.99.0', @@ -1878,7 +1178,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }); @@ -1889,10 +1189,8 @@ flutter { 'a_package', packagesDir, ); - writeFakeGroovyPluginBuildGradle(package, includeLanguageVersion: true); - writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( + writeFakeExampleBuildGradles( example, pluginName: packageName, kotlinVersion: '1.6.21', @@ -1913,9 +1211,10 @@ flutter { output, containsAllInOrder([ contains( - 'build.gradle sets "ext.kotlin_version" to "1.6.21". The ' - 'minimum Kotlin version that can be specified is ' - '$minKotlinVersion, for compatibility with modern dependencies.', + 'settings.gradle.kts sets the "org.jetbrains.kotlin.android" plugin ' + 'version to "1.6.21". The minimum Kotlin version that can be ' + 'specified is $minKotlinVersion, for compatibility with modern ' + 'dependencies.', ), ]), ); @@ -1933,14 +1232,14 @@ flutter { isFlutter: true, ); // Current flutter.compileSdkVersion is 36. - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, compileSdk: '37', ); writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles(example, pluginName: packageName); + writeFakeExampleBuildGradles(example, pluginName: packageName); writeFakeManifest(example, isApp: true); final List output = await runCapturingPrint(runner, [ @@ -1950,7 +1249,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }, @@ -1966,14 +1265,14 @@ flutter { isFlutter: true, flutterConstraint: '>=3.27.0', ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, compileSdk: 'flutter.compileSdkVersion', ); writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles(example, pluginName: packageName); + writeFakeExampleBuildGradles(example, pluginName: packageName); writeFakeManifest(example, isApp: true); final List output = await runCapturingPrint(runner, [ @@ -1983,7 +1282,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }, @@ -2001,14 +1300,14 @@ flutter { // Current flutter.compileSdkVersion is 36. const minCompileSdkVersion = '36'; const testCompileSdkVersion = '35'; - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, compileSdk: testCompileSdkVersion, ); writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles(example, pluginName: packageName); + writeFakeExampleBuildGradles(example, pluginName: packageName); writeFakeManifest(example, isApp: true); Error? commandError; @@ -2043,14 +1342,14 @@ flutter { isFlutter: true, flutterConstraint: '>=3.24.0', ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, compileSdk: 'flutter.compileSdkVersion', ); writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles(example, pluginName: packageName); + writeFakeExampleBuildGradles(example, pluginName: packageName); writeFakeManifest(example, isApp: true); Error? commandError; @@ -2075,83 +1374,6 @@ flutter { ); }, ); - - test('fails if uses the legacy key', () async { - const packageName = 'a_package'; - final RepositoryPackage package = createFakePackage( - packageName, - packagesDir, - isFlutter: true, - ); - writeFakeGroovyPluginBuildGradle( - package, - includeLanguageVersion: true, - useDeprecatedCompileSdkVersion: true, - ); - writeFakeManifest(package); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles(example, pluginName: packageName); - writeFakeManifest(example, isApp: true); - - Error? commandError; - final List output = await runCapturingPrint( - runner, - ['gradle-check'], - errorHandler: (Error e) { - commandError = e; - }, - ); - - expect(commandError, isA()); - expect( - output, - containsAllInOrder([ - contains( - 'Please replace the deprecated "compileSdkVersion" setting ' - 'with the newer "compileSdk"', - ), - ]), - ); - }); - - test('fails if compileSdk uses the method assignment', () async { - const packageName = 'a_package'; - final RepositoryPackage package = createFakePackage( - packageName, - packagesDir, - isFlutter: true, - ); - writeFakeGroovyPluginBuildGradle( - package, - includeLanguageVersion: true, - usePropertyAssignment: false, - ); - writeFakeManifest(package); - final RepositoryPackage example = package.getExamples().first; - writeFakeGroovyExampleBuildGradles( - example, - pluginName: packageName, - usePropertyAssignment: false, - ); - writeFakeManifest(example, isApp: true); - - Error? commandError; - final List output = await runCapturingPrint( - runner, - ['gradle-check'], - errorHandler: (Error e) { - commandError = e; - }, - ); - - expect(commandError, isA()); - expect( - output, - containsAllInOrder([ - contains('No "compileSdk =" found. Please use property assignment.'), - ]), - ); - }); }); group('kotlinOptions check', () { @@ -2161,7 +1383,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, // ignore: avoid_redundant_argument_values ensure codepath is tested if defaults change. @@ -2176,7 +1398,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }); @@ -2187,7 +1409,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, includeKotlinOptions: false, @@ -2201,7 +1423,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }); @@ -2212,7 +1434,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, commentKotlinOptions: true, @@ -2226,7 +1448,7 @@ flutter { expect( output, containsAllInOrder([ - contains('Validating android/build.gradle'), + contains('Validating android/build.gradle.kts'), ]), ); }); @@ -2237,7 +1459,7 @@ flutter { packagesDir, examples: [], ); - writeFakeGroovyPluginBuildGradle( + writeFakePluginBuildGradle( package, includeLanguageVersion: true, useDeprecatedJvmTargetStyle: true, @@ -2258,7 +1480,7 @@ flutter { output, containsAllInOrder([ contains( - 'build.gradle sets jvmTarget then it must use JavaVersion syntax', + 'build.gradle.kts sets jvmTarget then it must use JavaVersion syntax', ), ]), ); From d9a205023fedce62b9d2781133ad17a6c31115e6 Mon Sep 17 00:00:00 2001 From: stuartmorgan-g Date: Tue, 7 Apr 2026 14:15:20 -0400 Subject: [PATCH 10/14] [flutter_svg] Remove generated CMake files (#11459) Removes files that were missed in https://github.com/flutter/packages/pull/11455, causing `pub publish` checks to fail due to a mismatch between checked in and ignored files. --- .../linux/flutter/generated_plugins.cmake | 23 ------------------- .../windows/flutter/generated_plugins.cmake | 23 ------------------- 2 files changed, 46 deletions(-) delete mode 100644 third_party/packages/flutter_svg/example/linux/flutter/generated_plugins.cmake delete mode 100644 third_party/packages/flutter_svg/example/windows/flutter/generated_plugins.cmake diff --git a/third_party/packages/flutter_svg/example/linux/flutter/generated_plugins.cmake b/third_party/packages/flutter_svg/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb6..000000000000 --- a/third_party/packages/flutter_svg/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/third_party/packages/flutter_svg/example/windows/flutter/generated_plugins.cmake b/third_party/packages/flutter_svg/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c167..000000000000 --- a/third_party/packages/flutter_svg/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) From 221eb21acd0571e9902f3a5e538586cc700fe274 Mon Sep 17 00:00:00 2001 From: Eli Geller Date: Tue, 7 Apr 2026 14:48:14 -0400 Subject: [PATCH 11/14] [google_maps_flutter] Android cluster pin info window onTap callback not firing (#11390) As described in https://github.com/flutter/flutter/issues/184338, Google Maps Flutter Android has an issue where the cluster pin info window doesn't fire the `onTap` callback. That's the info window that shows when you tap a clustered pin (a pin which is part of a cluster manager). While the info window shows properly, the `onTap` doesn't fire in Android, but properly fires in other platforms. Fixes https://github.com/flutter/flutter/issues/184338 ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. --- .../google_maps_flutter_android/CHANGELOG.md | 4 ++++ .../googlemaps/ClusterManagersController.java | 24 +++++++++++++++---- .../googlemaps/GoogleMapController.java | 19 +++++++++++++++ .../plugins/googlemaps/MarkersController.java | 8 +++++++ .../googlemaps/GoogleMapControllerTest.java | 24 +++++++++++++++++++ .../google_maps_flutter_android/pubspec.yaml | 2 +- 6 files changed, 76 insertions(+), 5 deletions(-) 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 d19b5b24f8c0..6ce7cb2dd0e4 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.6 + +* Fixes the onTap callback for clustered pin info window taps. + ## 2.19.5 * Fixes a crash when using the legacy map renderer by adding the `org.apache.http.legacy` library. diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/ClusterManagersController.java b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/ClusterManagersController.java index 0b28e6a485ec..5921d690a0de 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/ClusterManagersController.java +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/ClusterManagersController.java @@ -46,6 +46,10 @@ class ClusterManagersController @Nullable private ClusterManager.OnClusterItemClickListener clusterItemClickListener; + @Nullable + private ClusterManager.OnClusterItemInfoWindowClickListener + clusterItemInfoWindowClickListener; + @Nullable private ClusterManagersController.OnClusterItemRendered clusterItemRenderedListener; @@ -71,6 +75,12 @@ void setClusterItemClickListener( initListenersForClusterManagers(); } + void setClusterItemInfoWindowClickListener( + @Nullable ClusterManager.OnClusterItemInfoWindowClickListener listener) { + clusterItemInfoWindowClickListener = listener; + initListenersForClusterManagers(); + } + void setClusterItemRenderedListener( @Nullable ClusterManagersController.OnClusterItemRendered listener) { clusterItemRenderedListener = listener; @@ -79,16 +89,21 @@ void setClusterItemRenderedListener( private void initListenersForClusterManagers() { for (Map.Entry> entry : clusterManagerIdToManager.entrySet()) { - initListenersForClusterManager(entry.getValue(), this, clusterItemClickListener); + initListenersForClusterManager( + entry.getValue(), this, clusterItemClickListener, clusterItemInfoWindowClickListener); } } private void initListenersForClusterManager( ClusterManager clusterManager, @Nullable ClusterManager.OnClusterClickListener clusterClickListener, - @Nullable ClusterManager.OnClusterItemClickListener clusterItemClickListener) { + @Nullable ClusterManager.OnClusterItemClickListener clusterItemClickListener, + @Nullable + ClusterManager.OnClusterItemInfoWindowClickListener + clusterItemInfoWindowClickListener) { clusterManager.setOnClusterClickListener(clusterClickListener); clusterManager.setOnClusterItemClickListener(clusterItemClickListener); + clusterManager.setOnClusterItemInfoWindowClickListener(clusterItemInfoWindowClickListener); } /** Adds new ClusterManagers to the controller. */ @@ -123,7 +138,8 @@ private void initializeRenderer(ClusterManager clusterManager) { break; } clusterManager.setRenderer(clusterRenderer); - initListenersForClusterManager(clusterManager, this, clusterItemClickListener); + initListenersForClusterManager( + clusterManager, this, clusterItemClickListener, clusterItemInfoWindowClickListener); } /** Removes ClusterManagers by given cluster manager IDs from the controller. */ @@ -145,7 +161,7 @@ private void removeClusterManager(Object clusterManagerId) { if (clusterManager == null) { return; } - initListenersForClusterManager(clusterManager, null, null); + initListenersForClusterManager(clusterManager, null, null, null); clusterManager.clearItems(); clusterManager.cluster(); } diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java index 5a29cd588086..8da755db70ed 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java @@ -62,6 +62,7 @@ class GoogleMapController implements ActivityPluginBinding.OnSaveInstanceStateListener, ClusterManager.OnClusterItemClickListener, + ClusterManager.OnClusterItemInfoWindowClickListener, ClusterManagersController.OnClusterItemRendered, DefaultLifecycleObserver, GoogleMapListener, @@ -223,6 +224,7 @@ public void onMapReady(@NonNull GoogleMap googleMap) { groundOverlaysController.setGoogleMap(googleMap); setMarkerCollectionListener(this); setClusterItemClickListener(this); + setClusterItemInfoWindowClickListener(this); setClusterItemRenderedListener(this); updateInitialClusterManagers(); updateInitialMarkers(); @@ -398,6 +400,7 @@ public void dispose() { setGoogleMapListener(null); setMarkerCollectionListener(null); setClusterItemClickListener(null); + setClusterItemInfoWindowClickListener(null); setClusterItemRenderedListener(null); destroyMapViewIfNecessary(); Lifecycle lifecycle = lifecycleProvider.getLifecycle(); @@ -445,6 +448,17 @@ public void setClusterItemClickListener( clusterManagersController.setClusterItemClickListener(listener); } + @VisibleForTesting + public void setClusterItemInfoWindowClickListener( + @Nullable ClusterManager.OnClusterItemInfoWindowClickListener listener) { + if (googleMap == null) { + Log.v(TAG, "Controller was disposed before GoogleMap was ready."); + return; + } + + clusterManagersController.setClusterItemInfoWindowClickListener(listener); + } + @VisibleForTesting public void setClusterItemRenderedListener( @Nullable ClusterManagersController.OnClusterItemRendered listener) { @@ -827,6 +841,11 @@ public boolean onClusterItemClick(MarkerBuilder item) { return markersController.onMarkerTap(item.markerId()); } + @Override + public void onClusterItemInfoWindowClick(MarkerBuilder item) { + markersController.onClusterItemInfoWindowTap(item.markerId()); + } + public void setMapStyle(@Nullable String style) { if (googleMap == null) { initialMapStyle = style; diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/MarkersController.java b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/MarkersController.java index 7f95e5d44efe..68550f3daee9 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/MarkersController.java +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/MarkersController.java @@ -307,6 +307,14 @@ void onInfoWindowTap(String googleMarkerId) { flutterApi.onInfoWindowTap(markerId, new NoOpVoidResult()); } + /** + * Called when a cluster-managed marker's info window is tapped. Takes the Dart marker ID + * directly. + */ + void onClusterItemInfoWindowTap(String markerId) { + flutterApi.onInfoWindowTap(markerId, new NoOpVoidResult()); + } + /** * Called each time clusterManager adds new visible marker to the map. Creates markerController * for marker for realtime marker updates. diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/GoogleMapControllerTest.java b/packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/GoogleMapControllerTest.java index 42ca991ef712..d063cb17317a 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/GoogleMapControllerTest.java +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/GoogleMapControllerTest.java @@ -185,6 +185,21 @@ public void OnMapReadySetsClusterItemClickListener() { verify(spyGoogleMapController, times(1)).setClusterItemClickListener(null); } + @Test + @SuppressWarnings("unchecked") + public void OnMapReadySetsClusterItemInfoWindowClickListener() { + GoogleMapController googleMapController = getGoogleMapController(); + GoogleMapController spyGoogleMapController = spy(googleMapController); + spyGoogleMapController.onMapReady(mockGoogleMap); + + verify(spyGoogleMapController, times(1)) + .setClusterItemInfoWindowClickListener( + any(ClusterManager.OnClusterItemInfoWindowClickListener.class)); + + spyGoogleMapController.dispose(); + verify(spyGoogleMapController, times(1)).setClusterItemInfoWindowClickListener(null); + } + @Test @SuppressWarnings("unchecked") public void OnMapReadySetsClusterItemRenderedListener() { @@ -235,6 +250,15 @@ public void OnClusterItemClickCallsMarkersController() { verify(mockMarkersController, times(1)).onMarkerTap(markerBuilder.markerId()); } + @Test + public void OnClusterItemInfoWindowClickCallsMarkersController() { + GoogleMapController googleMapController = getGoogleMapControllerWithMockedDependencies(); + MarkerBuilder markerBuilder = new MarkerBuilder("m_1", "cm_1", PlatformMarkerType.MARKER); + + googleMapController.onClusterItemInfoWindowClick(markerBuilder); + verify(mockMarkersController, times(1)).onClusterItemInfoWindowTap(markerBuilder.markerId()); + } + @Test public void SetInitialHeatmaps() { GoogleMapController googleMapController = getGoogleMapControllerWithMockedDependencies(); 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 748e38273331..dea5e50d236c 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.5 +version: 2.19.6 environment: sdk: ^3.9.0 From d2316b216325a0d0805d7c4d6a3942d315659257 Mon Sep 17 00:00:00 2001 From: engine-flutter-autoroll Date: Tue, 7 Apr 2026 15:26:18 -0400 Subject: [PATCH 12/14] Roll Flutter from 9cd60b512fbc to a0924c76b0fd (13 revisions) (#11463) https://github.com/flutter/flutter/compare/9cd60b512fbc...a0924c76b0fd 2026-04-07 dacoharkes@google.com Reland "[data_assets] Cleanup tests" (flutter/flutter#184714) 2026-04-07 matt.kosarek@canonical.com Use the WindowRegistry in the multiple_windows example app (flutter/flutter#184579) 2026-04-07 15619084+vashworth@users.noreply.github.com Introduce command to build a swift package for SwiftPM add to app integration (flutter/flutter#184660) 2026-04-07 sigurdm@google.com Have `flutter create` create a pubspec.lock to ensure pinned versions are being used. (flutter/flutter#175352) 2026-04-07 59215665+davidhicks980@users.noreply.github.com [widgets/raw_menu_anchor.dart] Always call onClose and onCloseRequested on descendants before parent. (flutter/flutter#182357) 2026-04-07 rmolivares@renzo-olivares.dev `WindowsPlugin` should not crash when ffiPlugin enabled (flutter/flutter#184695) 2026-04-06 97480502+b-luk@users.noreply.github.com Use full goto.google.com hostname for go/ links (flutter/flutter#184679) 2026-04-06 34871572+gmackall@users.noreply.github.com Apply rect clipping to surface views (flutter/flutter#184471) 2026-04-06 jhy03261997@gmail.com [A11y] Allow percentage strings like "50%" as `SemanticsValue` for `ProgressIndicator` (flutter/flutter#183670) 2026-04-06 louisehsu@google.com Fix invisible accessibility element before scroll view (flutter/flutter#184155) 2026-04-06 engine-flutter-autoroll@skia.org Roll Skia from 163dfdf500c7 to e264d870a380 (2 revisions) (flutter/flutter#184674) 2026-04-06 54688429+TrangLeQuynh@users.noreply.github.com Keep last character obscured when toggling obscureText (flutter/flutter#183488) 2026-04-06 15619084+vashworth@users.noreply.github.com Parse scheme file with XML parser for SwiftPM migrator (flutter/flutter#184525) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md --- .ci/flutter_master.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 64e1a3e712aa..a20bd354e6d2 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -9cd60b512fbc40348dc039d983c55805ac566614 +a0924c76b0fd76f0f8edb3b09bd3cc6e999cc19e From 8c3019e0ece9e976e739d7c457615b42cf58b1d0 Mon Sep 17 00:00:00 2001 From: Reid Baker <1063596+reidbaker@users.noreply.github.com> Date: Tue, 7 Apr 2026 17:03:32 -0400 Subject: [PATCH 13/14] [all] Prepare packages for skills (#11430) go/flutter-flutter-skills-initial-adoption Longer term we will want the ability to have per package skills but to start out we will just go with one skills directory. ## Pre-Review Checklist --- .agents/skills/README.md | 12 ++++++++++++ .claude/skills | 1 + .direnv | 1 + agent-artifacts/.gitignore | 3 +++ agent-artifacts/README.md | 4 ++++ 5 files changed, 21 insertions(+) create mode 100644 .agents/skills/README.md create mode 120000 .claude/skills create mode 100644 .direnv create mode 100644 agent-artifacts/.gitignore create mode 100644 agent-artifacts/README.md diff --git a/.agents/skills/README.md b/.agents/skills/README.md new file mode 100644 index 000000000000..38e778826a20 --- /dev/null +++ b/.agents/skills/README.md @@ -0,0 +1,12 @@ +# Flutter Agent Skills + +Welcome to the `.agent/skills` directory. This directory contains agent skills designed for consumption by Flutter package contributors. + +## Base guidance + +flutter/packages follows the same guidance that flutter/flutter uses. +https://github.com/flutter/flutter/blob/master/.agents/skills/README.md + +## Packages specific guidance + +When there is specific guidance for packages it will go here. diff --git a/.claude/skills b/.claude/skills new file mode 120000 index 000000000000..501823006312 --- /dev/null +++ b/.claude/skills @@ -0,0 +1 @@ +.agents/skills \ No newline at end of file diff --git a/.direnv b/.direnv new file mode 100644 index 000000000000..e476d88bcf02 --- /dev/null +++ b/.direnv @@ -0,0 +1 @@ +source_up_if_exists diff --git a/agent-artifacts/.gitignore b/agent-artifacts/.gitignore new file mode 100644 index 000000000000..7c9d611b5924 --- /dev/null +++ b/agent-artifacts/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore +!README.md diff --git a/agent-artifacts/README.md b/agent-artifacts/README.md new file mode 100644 index 000000000000..d49b5ea62457 --- /dev/null +++ b/agent-artifacts/README.md @@ -0,0 +1,4 @@ +# Agent Artifacts + +This directory is intended for agents and skills to store files that should not be tracked by git. +Files in this directory (with the exception of `.gitignore` and `README.md`) are ignored by version control. From f52df418da6ef2ba666112b4b9e87d9a1c43a0d0 Mon Sep 17 00:00:00 2001 From: stuartmorgan-g Date: Wed, 8 Apr 2026 11:27:10 -0400 Subject: [PATCH 14/14] [path_provider] Remove dependency on engine PathUtils (#11467) Removes the calls to the Flutter engine's `PathUtils`, and replaces them with direct `Context` calls that have the same logic as the expected codepath for those methods so that there will be continuity with previous releases of `path_provider`. This avoids reliance on `PathUtils` not being removed by R8, and also means that engine changes can't unexpectedly change the paths returned by `path_provider`, since we want to make sure any such changes in this package's return values follow semver. This does not include the fallback logic from https://github.com/flutter/engine/pull/30367 because unlike the engine callers, `path_provider` doesn't try to assert a non-null return value, and if the paths aren't available (e.g., due to the device being full) we should return null rather than silently return a different directory than was previously returned. Fixes https://github.com/flutter/flutter/issues/184750 ## Pre-Review Checklist [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. --- .../path_provider_android/CHANGELOG.md | 5 + .../lib/src/path_provider.g.dart | 145 ------------------ .../lib/src/path_provider_android_real.dart | 19 ++- .../path_provider_android/pubspec.yaml | 2 +- .../path_provider_android/tool/jnigen.dart | 1 - 5 files changed, 19 insertions(+), 153 deletions(-) diff --git a/packages/path_provider/path_provider_android/CHANGELOG.md b/packages/path_provider/path_provider_android/CHANGELOG.md index d0bee39ec1a6..d68724e90b63 100644 --- a/packages/path_provider/path_provider_android/CHANGELOG.md +++ b/packages/path_provider/path_provider_android/CHANGELOG.md @@ -1,3 +1,8 @@ +## 2.3.1 + +* Removes dependency on `PathUtils` to avoid a potential + `ClassNotFoundException` when running in release mode. + ## 2.3.0 * Changes internal implementation to use JNI. diff --git a/packages/path_provider/path_provider_android/lib/src/path_provider.g.dart b/packages/path_provider/path_provider_android/lib/src/path_provider.g.dart index bfba6c09d873..e8b4f3deeeae 100644 --- a/packages/path_provider/path_provider_android/lib/src/path_provider.g.dart +++ b/packages/path_provider/path_provider_android/lib/src/path_provider.g.dart @@ -7279,151 +7279,6 @@ final class $Context$Type$ extends jni$_.JType { String get signature => r'Landroid/content/Context;'; } -/// from: `io.flutter.util.PathUtils` -extension type PathUtils._(jni$_.JObject _$this) implements jni$_.JObject { - static final _class = jni$_.JClass.forName(r'io/flutter/util/PathUtils'); - - /// The type which includes information such as the signature of this class. - static const jni$_.JType type = $PathUtils$Type$(); - static final _id_new$ = _class.constructorId(r'()V'); - - static final _new$ = - jni$_.ProtectedJniExtensions.lookup< - jni$_.NativeFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - ) - > - >('globalEnv_NewObject') - .asFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - ) - >(); - - /// from: `public void ()` - /// The returned object must be released after use, by calling the [release] method. - factory PathUtils() { - return _new$( - _class.reference.pointer, - _id_new$.pointer, - ).object(); - } - - static final _id_getFilesDir = _class.staticMethodId( - r'getFilesDir', - r'(Landroid/content/Context;)Ljava/lang/String;', - ); - - static final _getFilesDir = - jni$_.ProtectedJniExtensions.lookup< - jni$_.NativeFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - jni$_.VarArgs<(jni$_.Pointer,)>, - ) - > - >('globalEnv_CallStaticObjectMethod') - .asFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - jni$_.Pointer, - ) - >(); - - /// from: `static public java.lang.String getFilesDir(android.content.Context context)` - /// The returned object must be released after use, by calling the [release] method. - static jni$_.JString getFilesDir(Context context) { - final _$context = context.reference; - return _getFilesDir( - _class.reference.pointer, - _id_getFilesDir.pointer, - _$context.pointer, - ).object(); - } - - static final _id_getDataDirectory = _class.staticMethodId( - r'getDataDirectory', - r'(Landroid/content/Context;)Ljava/lang/String;', - ); - - static final _getDataDirectory = - jni$_.ProtectedJniExtensions.lookup< - jni$_.NativeFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - jni$_.VarArgs<(jni$_.Pointer,)>, - ) - > - >('globalEnv_CallStaticObjectMethod') - .asFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - jni$_.Pointer, - ) - >(); - - /// from: `static public java.lang.String getDataDirectory(android.content.Context context)` - /// The returned object must be released after use, by calling the [release] method. - static jni$_.JString getDataDirectory(Context context) { - final _$context = context.reference; - return _getDataDirectory( - _class.reference.pointer, - _id_getDataDirectory.pointer, - _$context.pointer, - ).object(); - } - - static final _id_getCacheDirectory = _class.staticMethodId( - r'getCacheDirectory', - r'(Landroid/content/Context;)Ljava/lang/String;', - ); - - static final _getCacheDirectory = - jni$_.ProtectedJniExtensions.lookup< - jni$_.NativeFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - jni$_.VarArgs<(jni$_.Pointer,)>, - ) - > - >('globalEnv_CallStaticObjectMethod') - .asFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - jni$_.Pointer, - ) - >(); - - /// from: `static public java.lang.String getCacheDirectory(android.content.Context context)` - /// The returned object must be released after use, by calling the [release] method. - static jni$_.JString getCacheDirectory(Context context) { - final _$context = context.reference; - return _getCacheDirectory( - _class.reference.pointer, - _id_getCacheDirectory.pointer, - _$context.pointer, - ).object(); - } -} - -final class $PathUtils$Type$ extends jni$_.JType { - @jni$_.internal - const $PathUtils$Type$(); - - @jni$_.internal - @core$_.override - String get signature => r'Lio/flutter/util/PathUtils;'; -} - /// from: `java.io.File` extension type File._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'java/io/File'); diff --git a/packages/path_provider/path_provider_android/lib/src/path_provider_android_real.dart b/packages/path_provider/path_provider_android/lib/src/path_provider_android_real.dart index 4055f9b33af3..5430103f8523 100644 --- a/packages/path_provider/path_provider_android/lib/src/path_provider_android_real.dart +++ b/packages/path_provider/path_provider_android/lib/src/path_provider_android_real.dart @@ -26,16 +26,23 @@ class PathProviderAndroid extends PathProviderPlatform { @override Future getApplicationSupportPath() async { - return PathUtils.getFilesDir( - _applicationContext, - ).toDartString(releaseOriginal: true); + final File? file = _applicationContext.filesDir; + final String? path = file?.path?.toDartString(releaseOriginal: true); + file?.release(); + return path; } @override Future getApplicationDocumentsPath() async { - return PathUtils.getDataDirectory( - _applicationContext, - ).toDartString(releaseOriginal: true); + final JString directory = 'flutter'.toJString(); + final File? file = _applicationContext.getDir( + directory, + Context.MODE_PRIVATE, + ); + final String? path = file?.path?.toDartString(releaseOriginal: true); + file?.release(); + directory.release(); + return path; } @override diff --git a/packages/path_provider/path_provider_android/pubspec.yaml b/packages/path_provider/path_provider_android/pubspec.yaml index 599b42abe9da..5f0ecc512275 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.3.0 +version: 2.3.1 environment: sdk: ^3.9.0 diff --git a/packages/path_provider/path_provider_android/tool/jnigen.dart b/packages/path_provider/path_provider_android/tool/jnigen.dart index 8584dea58b08..9a626afe1cc0 100644 --- a/packages/path_provider/path_provider_android/tool/jnigen.dart +++ b/packages/path_provider/path_provider_android/tool/jnigen.dart @@ -22,7 +22,6 @@ void main() { ), classes: [ 'android.content.Context', - 'io.flutter.util.PathUtils', 'java.io.File', 'android.os.Environment', ],