From 29bb5e7a0086618ffbfcc2e5b9f33b2901715bd3 Mon Sep 17 00:00:00 2001 From: Mohellebi abdessalem Date: Tue, 28 Jan 2025 19:23:44 +0100 Subject: [PATCH] Refactor code inside flutter.groovy (#160250) remove unnecessary spacing remove the usage of System.env because it is dynamic . the getProperty have the ability to take a second argument wich will be the default value android studio linter is prompting `Consider using 'configureEach' to avoid unnecessary configuration` android studio linter is prompting `Call to 'get' can be keyed access ` android studio linter is prompting `Cannot determine type of 'o'` ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] All existing and new tests are passing. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --- .../gradle/src/main/groovy/flutter.groovy | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy b/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy index b75a4601a6c..4d0168ad315 100644 --- a/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy +++ b/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy @@ -48,7 +48,7 @@ class FlutterExtension { public final int compileSdkVersion = 35 /** Sets the minSdkVersion used by default in Flutter app projects. */ - public final int minSdkVersion = 21 + public final int minSdkVersion = 21 /** * Sets the targetSdkVersion used by default in Flutter app projects. @@ -196,7 +196,7 @@ class FlutterPlugin implements Plugin { } } - String flutterRootPath = resolveProperty("flutter.sdk", System.env.FLUTTER_ROOT) + String flutterRootPath = resolveProperty("flutter.sdk", System.getenv("FLUTTER_ROOT")) if (flutterRootPath == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file or with a FLUTTER_ROOT environment variable.") } @@ -211,11 +211,11 @@ class FlutterPlugin implements Plugin { engineRealm = Paths.get(flutterRoot.absolutePath, "bin", "internal", "engine.realm").toFile().text.trim() if (engineRealm) { - engineRealm = engineRealm + "/" + engineRealm += "/" } // Configure the Maven repository. - String hostedRepository = System.env.FLUTTER_STORAGE_BASE_URL ?: DEFAULT_MAVEN_HOST + String hostedRepository = System.getenv("FLUTTER_STORAGE_BASE_URL") ?: DEFAULT_MAVEN_HOST String repository = useLocalEngine() ? project.property(propLocalEngineRepo) : "$hostedRepository/${engineRealm}download.flutter.io" @@ -239,11 +239,8 @@ class FlutterPlugin implements Plugin { } } - String flutterVersionCode = localProperties.getProperty("flutter.versionCode") - extension.flutterVersionCode = flutterVersionCode ?: "1" - - String flutterVersionName = localProperties.getProperty("flutter.versionName") - extension.flutterVersionName = flutterVersionName ?: "1.0" + extension.flutterVersionCode = localProperties.getProperty("flutter.versionCode", "1") + extension.flutterVersionName = localProperties.getProperty("flutter.versionName", "1.0") this.addFlutterTasks(project) forceNdkDownload(project, flutterRootPath) @@ -471,7 +468,7 @@ class FlutterPlugin implements Plugin { // Warning: The name of this task is used by AndroidBuilder.outputsAppLinkSettings project.tasks.register("output${variant.name.capitalize()}AppLinkSettings") { description "stores app links settings for the given build variant of this Android project into a json file." - variant.outputs.all { output -> + variant.outputs.configureEach { output -> // Deeplinks are defined in AndroidManifest.xml and is only available after // `processResourcesProvider`. Object processResources = output.hasProperty(propProcessResourcesProvider) ? @@ -482,7 +479,7 @@ class FlutterPlugin implements Plugin { AppLinkSettings appLinkSettings = new AppLinkSettings() appLinkSettings.applicationId = variant.applicationId appLinkSettings.deeplinks = [] as Set - variant.outputs.all { output -> + variant.outputs.configureEach { output -> Object processResources = output.hasProperty(propProcessResourcesProvider) ? output.processResourcesProvider.get() : output.processResources def manifest = new XmlParser().parse(processResources.manifestFile) @@ -1011,9 +1008,7 @@ class FlutterPlugin implements Plugin { if (localProperties == null) { localProperties = readPropertiesIfExist(new File(project.projectDir.parentFile, "local.properties")) } - String result = project.hasProperty(name) ? project.property(name) : null - result = result ?: localProperties?.getProperty(name) - return result ?: defaultValue + return project.findProperty(name) ?: localProperties?.getProperty(name, defaultValue) } private List getTargetPlatforms() { @@ -1239,7 +1234,7 @@ class FlutterPlugin implements Plugin { // for only the output APK, not for the variant itself. Skipping this step simply // causes Gradle to use the value of variant.versionCode for the APK. // For more, see https://developer.android.com/studio/build/configure-apk-splits - Integer abiVersionCode = ABI_VERSION.get(output.getFilter(OutputFile.ABI)) + Integer abiVersionCode = ABI_VERSION[output.getFilter(OutputFile.ABI)] if (abiVersionCode != null) { output.versionCodeOverride = abiVersionCode * 1000 + variant.versionCode @@ -1304,7 +1299,7 @@ class FlutterPlugin implements Plugin { validateDeferredComponents(validateDeferredComponentsValue) flavor(flavorValue) } - Task compileTask = compileTaskProvider.get(); + Task compileTask = compileTaskProvider.get() File libJar = project.file(project.layout.buildDirectory.dir("$INTERMEDIATES_DIR/flutter/${variant.name}/libs.jar")) TaskProvider packJniLibsTaskProvider = project.tasks.register("packJniLibs${FLUTTER_BUILD_PREFIX}${variant.name.capitalize()}", Jar) { destinationDirectory = libJar.parentFile @@ -1331,7 +1326,7 @@ class FlutterPlugin implements Plugin { } } } - Task packJniLibsTask = packJniLibsTaskProvider.get(); + Task packJniLibsTask = packJniLibsTaskProvider.get() addApiDependencies(project, variant.name, project.files { packJniLibsTask }) @@ -1370,7 +1365,7 @@ class FlutterPlugin implements Plugin { mergeAssets.mustRunAfter("clean${mergeAssets.name.capitalize()}") into(mergeAssets.outputDir) } - Task copyFlutterAssetsTask = copyFlutterAssetsTaskProvider.get(); + Task copyFlutterAssetsTask = copyFlutterAssetsTaskProvider.get() if (!isUsedAsSubproject) { def variantOutput = variant.outputs.first() def processResources = variantOutput.hasProperty(propProcessResourcesProvider) ? @@ -1569,7 +1564,7 @@ class IntentFilterCheck { class Deeplink { String scheme, host, path IntentFilterCheck intentFilterCheck - boolean equals(o) { + boolean equals(Object o) { if (o == null) { throw new NullPointerException() }