Unverified Commit c61dc2a5 authored by Gray Mackall's avatar Gray Mackall Committed by GitHub

Format all kotlin according to ktlint (#143390)

Entire pr generated with [ktlint](https://github.com/pinterest/ktlint) --format. First step before enabling linting as part of presubmit for kotlin changes.
parent dc1f9f18
......@@ -2,5 +2,4 @@ package com.example.a11y_assessments
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}
class MainActivity : FlutterActivity()
......@@ -4,18 +4,13 @@
package dev.flutter.multipleflutters
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.FrameLayout
import android.widget.LinearLayout
import android.widget.TextView
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.FragmentManager
import io.flutter.FlutterInjector
import io.flutter.embedding.android.FlutterFragment
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.embedding.engine.FlutterEngineCache
import io.flutter.embedding.engine.dart.DartExecutor
......@@ -25,10 +20,11 @@ class MainActivity : FragmentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val root = LinearLayout(this)
root.layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT
)
root.layoutParams =
LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT,
)
root.orientation = LinearLayout.VERTICAL
root.weightSum = numberOfFlutters.toFloat()
......@@ -39,21 +35,24 @@ class MainActivity : FragmentActivity() {
val app = applicationContext as App
val dartEntrypoint =
DartExecutor.DartEntrypoint(
FlutterInjector.instance().flutterLoader().findAppBundlePath(), "main"
FlutterInjector.instance().flutterLoader().findAppBundlePath(),
"main",
)
val engines = generateSequence(0) { it + 1 }
.take(numberOfFlutters)
.map { app.engines.createAndRunEngine(this, dartEntrypoint) }
.toList()
val engines =
generateSequence(0) { it + 1 }
.take(numberOfFlutters)
.map { app.engines.createAndRunEngine(this, dartEntrypoint) }
.toList()
for (i in 0 until numberOfFlutters) {
val flutterContainer = FrameLayout(this)
root.addView(flutterContainer)
flutterContainer.id = 12345 + i
flutterContainer.layoutParams = LinearLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.MATCH_PARENT,
1.0f
)
flutterContainer.layoutParams =
LinearLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.MATCH_PARENT,
1.0f,
)
val engine = engines[i]
FlutterEngineCache.getInstance().put(i.toString(), engine)
val flutterFragment =
......@@ -62,7 +61,7 @@ class MainActivity : FragmentActivity() {
.beginTransaction()
.add(
12345 + i,
flutterFragment
flutterFragment,
)
.commit()
}
......
......@@ -11,28 +11,40 @@ import io.flutter.plugin.common.BinaryCodec
import io.flutter.plugin.common.StandardMessageCodec
import java.nio.ByteBuffer
class MainActivity: FlutterActivity() {
class MainActivity : FlutterActivity() {
// We allow for the caching of a response in the binary channel case since
// the reply requires a direct buffer, but the input is not a direct buffer.
// We can't directly send the input back to the reply currently.
private var byteBufferCache : ByteBuffer? = null
private var byteBufferCache: ByteBuffer? = null
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
val reset = BasicMessageChannel(flutterEngine.dartExecutor, "dev.flutter.echo.reset", StandardMessageCodec.INSTANCE)
reset.setMessageHandler { message, reply -> run {
byteBufferCache = null
} }
val basicStandard = BasicMessageChannel(flutterEngine.dartExecutor, "dev.flutter.echo.basic.standard", StandardMessageCodec.INSTANCE)
reset.setMessageHandler { message, reply ->
run {
byteBufferCache = null
}
}
val basicStandard =
BasicMessageChannel(flutterEngine.dartExecutor, "dev.flutter.echo.basic.standard", StandardMessageCodec.INSTANCE)
basicStandard.setMessageHandler { message, reply -> reply.reply(message) }
val basicBinary = BasicMessageChannel(flutterEngine.dartExecutor, "dev.flutter.echo.basic.binary", BinaryCodec.INSTANCE_DIRECT)
basicBinary.setMessageHandler { message, reply -> run {
if (byteBufferCache == null) {
byteBufferCache = ByteBuffer.allocateDirect(message!!.capacity())
byteBufferCache!!.put(message)
basicBinary.setMessageHandler { message, reply ->
run {
if (byteBufferCache == null) {
byteBufferCache = ByteBuffer.allocateDirect(message!!.capacity())
byteBufferCache!!.put(message)
}
reply.reply(byteBufferCache)
}
reply.reply(byteBufferCache)
} }
val taskQueue = flutterEngine.dartExecutor.getBinaryMessenger().makeBackgroundTaskQueue();
val backgroundStandard = BasicMessageChannel(flutterEngine.dartExecutor, "dev.flutter.echo.background.standard", StandardMessageCodec.INSTANCE, taskQueue)
}
val taskQueue = flutterEngine.dartExecutor.getBinaryMessenger().makeBackgroundTaskQueue()
val backgroundStandard =
BasicMessageChannel(
flutterEngine.dartExecutor,
"dev.flutter.echo.background.standard",
StandardMessageCodec.INSTANCE,
taskQueue,
)
backgroundStandard.setMessageHandler { message, reply -> reply.reply(message) }
super.configureFlutterEngine(flutterEngine)
}
......
......@@ -2,7 +2,6 @@ package com.example.abstract_method_smoke_test
import android.content.Context
import android.graphics.Color
import android.os.Bundle
import android.view.View
import android.view.inputmethod.InputMethodManager
import androidx.annotation.NonNull
......@@ -30,25 +29,34 @@ class MainActivity : FlutterActivity() {
}
}
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
override fun configureFlutterEngine(
@NonNull flutterEngine: FlutterEngine,
) {
GeneratedPluginRegistrant.registerWith(flutterEngine)
val shimPluginRegistry = ShimPluginRegistry(flutterEngine);
val shimPluginRegistry = ShimPluginRegistry(flutterEngine)
shimPluginRegistry.registrarFor("com.example.abstract_method_smoke_test")
.platformViewRegistry()
.registerViewFactory("simple", object : PlatformViewFactory(StandardMessageCodec.INSTANCE) {
override fun create(context: Context?, viewId: Int, args: Any?): PlatformView {
.platformViewRegistry()
.registerViewFactory(
"simple",
object : PlatformViewFactory(StandardMessageCodec.INSTANCE) {
override fun create(
context: Context?,
viewId: Int,
args: Any?,
): PlatformView {
return SimplePlatformView(this@MainActivity)
}
})
},
)
// Triggers the Android keyboard, which causes the resize of the Flutter view.
// We need to wait for the app to complete.
MethodChannel(flutterEngine.getDartExecutor(), "com.example.abstract_method_smoke_test")
.setMethodCallHandler { _, result ->
toggleInput()
result.success(null)
}
.setMethodCallHandler { _, result ->
toggleInput()
result.success(null)
}
}
override fun onPause() {
......
package com.example.android_embedding_v2_smoke_test
import androidx.annotation.NonNull;
import androidx.annotation.NonNull
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
class MainActivity : FlutterActivity() {
override fun configureFlutterEngine(
@NonNull flutterEngine: FlutterEngine,
) {
GeneratedPluginRegistrant.registerWith(flutterEngine)
}
}
......@@ -2,5 +2,4 @@ package io.flutter.integration.deferred_components_test
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}
class MainActivity : FlutterActivity()
......@@ -2,5 +2,4 @@ package com.example.non_nullable
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}
class MainActivity : FlutterActivity()
......@@ -2,5 +2,4 @@ package com.example.spell_check
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}
class MainActivity : FlutterActivity()
......@@ -2,5 +2,4 @@ package dev.flutter.manual_tests
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}
class MainActivity : FlutterActivity()
......@@ -2,5 +2,4 @@ package com.example.tracing_tests
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}
class MainActivity : FlutterActivity()
......@@ -2,5 +2,4 @@ package dev.flutter.flutter_api_samples
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}
class MainActivity : FlutterActivity()
......@@ -24,7 +24,7 @@ subprojects {
ignoredDependencies.add("io.flutter:*")
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
if (!project.hasProperty("local-engine-repo")) {
lockAllConfigurations()
lockAllConfigurations()
}
}
}
......
......@@ -7,13 +7,14 @@
// See #141540.
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
}
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")
......
......@@ -7,7 +7,6 @@ plugins {
`groovy`
}
group = "dev.flutter.plugin"
version = "1.0.0"
......
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
......@@ -33,50 +33,50 @@ class FlutterDependencyCheckerPlugin : Plugin<Project> {
}
}
class DependencyVersionChecker {
companion object {
private const val GRADLE_NAME : String = "Gradle"
private const val JAVA_NAME : String = "Java"
private const val AGP_NAME : String = "Android Gradle Plugin"
private const val KGP_NAME : String = "Kotlin"
private const val GRADLE_NAME: String = "Gradle"
private const val JAVA_NAME: String = "Java"
private const val AGP_NAME: String = "Android Gradle Plugin"
private const val KGP_NAME: String = "Kotlin"
// The following messages represent best effort guesses at where a Flutter developer should
// look to upgrade a dependency that is below the corresponding threshold. Developers can
// change some of these locations, so they are not guaranteed to be accurate.
private fun getPotentialGradleFix(projectDirectory : String) : String {
private fun getPotentialGradleFix(projectDirectory: String): String {
return "Your project's gradle version is typically " +
"defined in the gradle wrapper file. By default, this can be found at " +
"$projectDirectory/gradle/wrapper/gradle-wrapper.properties. \n" +
"For more information, see https://docs.gradle.org/current/userguide/gradle_wrapper.html.\n"
"defined in the gradle wrapper file. By default, this can be found at " +
"$projectDirectory/gradle/wrapper/gradle-wrapper.properties. \n" +
"For more information, see https://docs.gradle.org/current/userguide/gradle_wrapper.html.\n"
}
// The potential java fix does not make use of the project directory,
// so it left as a constant.
private const val POTENTIAL_JAVA_FIX : String = "The Java version used by Flutter can be " +
private const val POTENTIAL_JAVA_FIX: String =
"The Java version used by Flutter can be " +
"set with `flutter config --jdk-dir=<path>`. \nFor more information about how Flutter " +
"chooses which version of Java to use, see the --jdk-dir section of the " +
"output of `flutter config -h`.\n"
private fun getPotentialAGPFix(projectDirectory : String) : String {
private fun getPotentialAGPFix(projectDirectory: String): String {
return "Your project's AGP version is typically " +
"defined the plugins block of the `settings.gradle` file " +
"($projectDirectory/settings.gradle), by a plugin with the id of " +
"com.android.application. \nIf you don't see a plugins block, your project " +
"was likely created with an older template version. In this case it is most " +
"likely defined in the top-level build.gradle file " +
"($projectDirectory/build.gradle) by the following line in the dependencies" +
" block of the buildscript: \"classpath 'com.android.tools.build:gradle:<version>'\".\n"
"defined the plugins block of the `settings.gradle` file " +
"($projectDirectory/settings.gradle), by a plugin with the id of " +
"com.android.application. \nIf you don't see a plugins block, your project " +
"was likely created with an older template version. In this case it is most " +
"likely defined in the top-level build.gradle file " +
"($projectDirectory/build.gradle) by the following line in the dependencies" +
" block of the buildscript: \"classpath 'com.android.tools.build:gradle:<version>'\".\n"
}
private fun getPotentialKGPFix(projectDirectory : String) : String {
private fun getPotentialKGPFix(projectDirectory: String): String {
return "Your project's KGP version is typically " +
"defined the plugins block of the `settings.gradle` file " +
"($projectDirectory/settings.gradle), by a plugin with the id of " +
"org.jetbrains.kotlin.android. \nIf you don't see a plugins block, your project " +
"was likely created with an older template version, in which case it is most " +
"likely defined in the top-level build.gradle file " +
"($projectDirectory/build.gradle) by the ext.kotlin_version property.\n"
"defined the plugins block of the `settings.gradle` file " +
"($projectDirectory/settings.gradle), by a plugin with the id of " +
"org.jetbrains.kotlin.android. \nIf you don't see a plugins block, your project " +
"was likely created with an older template version, in which case it is most " +
"likely defined in the top-level build.gradle file " +
"($projectDirectory/build.gradle) by the ext.kotlin_version property.\n"
}
// The following versions define our support policy for Gradle, Java, AGP, and KGP.
......@@ -86,26 +86,26 @@ class DependencyVersionChecker {
// "warn" version for a full release to provide advanced warning. See
// flutter.dev/go/android-dependency-versions for more.
// TODO(gmackall): https://github.com/flutter/flutter/issues/142653.
val warnGradleVersion : Version = Version(7,0,2)
val errorGradleVersion : Version = Version(0,0,0)
val warnGradleVersion: Version = Version(7, 0, 2)
val errorGradleVersion: Version = Version(0, 0, 0)
val warnJavaVersion : JavaVersion = JavaVersion.VERSION_11
val errorJavaVersion : JavaVersion = JavaVersion.VERSION_1_1
val warnJavaVersion: JavaVersion = JavaVersion.VERSION_11
val errorJavaVersion: JavaVersion = JavaVersion.VERSION_1_1
val warnAGPVersion : Version = Version(7,0,0)
val errorAGPVersion : Version = Version(0,0,0)
val warnAGPVersion: Version = Version(7, 0, 0)
val errorAGPVersion: Version = Version(0, 0, 0)
val warnKGPVersion : Version = Version(1,5,0)
val errorKGPVersion : Version = Version(0,0,0)
val warnKGPVersion: Version = Version(1, 5, 0)
val errorKGPVersion: Version = Version(0, 0, 0)
/**
* Checks if the project's Android build time dependencies are each within the respective
* version range that we support. When we can't find a version for a given dependency
* we treat it as within the range for the purpose of this check.
*/
fun checkDependencyVersions(project : Project) {
var agpVersion : Version? = null
var kgpVersion : Version? = null
fun checkDependencyVersions(project: Project) {
var agpVersion: Version? = null
var kgpVersion: Version? = null
checkGradleVersion(getGradleVersion(project), project)
checkJavaVersion(getJavaVersion(project), project)
......@@ -113,22 +113,26 @@ class DependencyVersionChecker {
if (agpVersion != null) {
checkAGPVersion(agpVersion, project)
} else {
project.logger.error("Warning: unable to detect project AGP version. Skipping " +
"version checking. \nThis may be because you have applied AGP after the Flutter Gradle Plugin.")
project.logger.error(
"Warning: unable to detect project AGP version. Skipping " +
"version checking. \nThis may be because you have applied AGP after the Flutter Gradle Plugin.",
)
}
kgpVersion = getKGPVersion(project)
if (kgpVersion != null) {
checkKGPVersion(kgpVersion, project)
} else {
project.logger.error("Warning: unable to detect project KGP version. Skipping " +
"version checking. \nThis may be because you have applied KGP after the Flutter Gradle Plugin.")
project.logger.error(
"Warning: unable to detect project KGP version. Skipping " +
"version checking. \nThis may be because you have applied KGP after the Flutter Gradle Plugin.",
)
}
}
// https://docs.gradle.org/current/kotlin-dsl/gradle/org.gradle.api.invocation/-gradle/index.html#-837060600%2FFunctions%2F-1793262594
fun getGradleVersion(project : Project) : Version {
val untrimmedGradleVersion : String = project.gradle.getGradleVersion()
fun getGradleVersion(project: Project): Version {
val untrimmedGradleVersion: String = project.gradle.getGradleVersion()
// Trim to handle candidate gradle versions (example 7.6-rc-4). This means we treat all
// candidate versions of gradle as the same as their base version
// (i.e., "7.6"="7.6-rc-4").
......@@ -136,49 +140,54 @@ class DependencyVersionChecker {
}
// https://docs.gradle.org/current/kotlin-dsl/gradle/org.gradle.api/-java-version/index.html#-1790786897%2FFunctions%2F-1793262594
fun getJavaVersion(project : Project) : JavaVersion {
fun getJavaVersion(project: Project): JavaVersion {
return JavaVersion.current()
}
// This approach is taken from AGP's own version checking plugin:
// https://android.googlesource.com/platform/tools/base/+/1839aa23b8dc562005e2f0f0cc8e8b4c5caa37d0/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/utils/agpVersionChecker.kt#58.
fun getAGPVersion(project: Project): Version? {
val agpPluginName : String = "com.android.base";
val agpVersionFieldName : String = "ANDROID_GRADLE_PLUGIN_VERSION"
val agpPluginName: String = "com.android.base"
val agpVersionFieldName: String = "ANDROID_GRADLE_PLUGIN_VERSION"
var agpVersion: Version? = null
try {
agpVersion = Version.fromString(
project.plugins.getPlugin(agpPluginName)::class.java.classLoader.loadClass(
com.android.Version::class.java.name
).fields.find { it.name == agpVersionFieldName }!!
.get(null) as String
)
agpVersion =
Version.fromString(
project.plugins.getPlugin(agpPluginName)::class.java.classLoader.loadClass(
com.android.Version::class.java.name,
).fields.find { it.name == agpVersionFieldName }!!
.get(null) as String,
)
} catch (ignored: ClassNotFoundException) {
// Use deprecated Version class as it exists in older AGP (com.android.Version) does
// not exist in those versions.
agpVersion = Version.fromString(
project.plugins.getPlugin(agpPluginName)::class.java.classLoader.loadClass(
com.android.builder.model.Version::class.java.name
).fields.find { it.name == agpVersionFieldName }!!
.get(null) as String
)
agpVersion =
Version.fromString(
project.plugins.getPlugin(agpPluginName)::class.java.classLoader.loadClass(
com.android.builder.model.Version::class.java.name,
).fields.find { it.name == agpVersionFieldName }!!
.get(null) as String,
)
}
return agpVersion
}
fun getKGPVersion(project : Project) : Version? {
val kotlinVersionProperty : String = "kotlin_version"
val firstKotlinVersionFieldName : String = "pluginVersion"
val secondKotlinVersionFieldName : String = "kotlinPluginVersion"
fun getKGPVersion(project: Project): Version? {
val kotlinVersionProperty: String = "kotlin_version"
val firstKotlinVersionFieldName: String = "pluginVersion"
val secondKotlinVersionFieldName: String = "kotlinPluginVersion"
// This property corresponds to application of the Kotlin Gradle plugin in the
// top-level build.gradle file.
if (project.hasProperty(kotlinVersionProperty)) {
return Version.fromString(project.properties.get(kotlinVersionProperty) as String)
}
val kotlinPlugin = project.getPlugins()
.findPlugin(KotlinAndroidPluginWrapper::class.java)
val kotlinPlugin =
project.getPlugins()
.findPlugin(KotlinAndroidPluginWrapper::class.java)
val versionfield =
kotlinPlugin?.javaClass?.kotlin?.members?.first { it.name == firstKotlinVersionFieldName || it.name == secondKotlinVersionFieldName }
kotlinPlugin?.javaClass?.kotlin?.members?.first {
it.name == firstKotlinVersionFieldName || it.name == secondKotlinVersionFieldName
}
val versionString = versionfield?.call(kotlinPlugin)
if (versionString == null) {
return null
......@@ -187,132 +196,152 @@ class DependencyVersionChecker {
}
}
private fun getErrorMessage(dependencyName : String,
versionString : String,
errorVersion : String,
potentialFix : String) : String {
private fun getErrorMessage(
dependencyName: String,
versionString: String,
errorVersion: String,
potentialFix: String,
): String {
return "Error: Your project's $dependencyName version ($versionString) is lower " +
"than Flutter's minimum supported version of $errorVersion. Please upgrade " +
"your $dependencyName version. \nAlternatively, use the flag " +
"\"--android-skip-build-dependency-validation\" to bypass this check.\n\n"+
"Potential fix: $potentialFix"
"than Flutter's minimum supported version of $errorVersion. Please upgrade " +
"your $dependencyName version. \nAlternatively, use the flag " +
"\"--android-skip-build-dependency-validation\" to bypass this check.\n\n" +
"Potential fix: $potentialFix"
}
private fun getWarnMessage(dependencyName : String,
versionString : String,
warnVersion : String,
potentialFix : String) : String {
private fun getWarnMessage(
dependencyName: String,
versionString: String,
warnVersion: String,
potentialFix: String,
): String {
return "Warning: Flutter support for your project's $dependencyName version " +
"($versionString) will soon be dropped. Please upgrade your $dependencyName " +
"version to a version of at least $warnVersion soon." +
"\nAlternatively, use the flag \"--android-skip-build-dependency-validation\"" +
" to bypass this check.\n\nPotential fix: $potentialFix"
"($versionString) will soon be dropped. Please upgrade your $dependencyName " +
"version to a version of at least $warnVersion soon." +
"\nAlternatively, use the flag \"--android-skip-build-dependency-validation\"" +
" to bypass this check.\n\nPotential fix: $potentialFix"
}
fun checkGradleVersion(version : Version, project : Project) {
fun checkGradleVersion(
version: Version,
project: Project,
) {
if (version < errorGradleVersion) {
val errorMessage : String = getErrorMessage(
GRADLE_NAME,
version.toString(),
errorGradleVersion.toString(),
getPotentialGradleFix(project.getRootDir().getPath())
)
val errorMessage: String =
getErrorMessage(
GRADLE_NAME,
version.toString(),
errorGradleVersion.toString(),
getPotentialGradleFix(project.getRootDir().getPath()),
)
throw GradleException(errorMessage)
}
else if (version < warnGradleVersion) {
val warnMessage : String = getWarnMessage(
GRADLE_NAME,
version.toString(),
warnGradleVersion.toString(),
getPotentialGradleFix(project.getRootDir().getPath())
)
} else if (version < warnGradleVersion) {
val warnMessage: String =
getWarnMessage(
GRADLE_NAME,
version.toString(),
warnGradleVersion.toString(),
getPotentialGradleFix(project.getRootDir().getPath()),
)
project.logger.error(warnMessage)
}
}
fun checkJavaVersion(version : JavaVersion, project : Project) {
fun checkJavaVersion(
version: JavaVersion,
project: Project,
) {
if (version < errorJavaVersion) {
val errorMessage : String = getErrorMessage(
JAVA_NAME,
version.toString(),
errorJavaVersion.toString(),
POTENTIAL_JAVA_FIX
)
val errorMessage: String =
getErrorMessage(
JAVA_NAME,
version.toString(),
errorJavaVersion.toString(),
POTENTIAL_JAVA_FIX,
)
throw GradleException(errorMessage)
}
else if (version < warnJavaVersion) {
val warnMessage : String = getWarnMessage(
JAVA_NAME,
version.toString(),
warnJavaVersion.toString(),
POTENTIAL_JAVA_FIX
)
} else if (version < warnJavaVersion) {
val warnMessage: String =
getWarnMessage(
JAVA_NAME,
version.toString(),
warnJavaVersion.toString(),
POTENTIAL_JAVA_FIX,
)
project.logger.error(warnMessage)
}
}
fun checkAGPVersion(version : Version, project : Project) {
fun checkAGPVersion(
version: Version,
project: Project,
) {
if (version < errorAGPVersion) {
val errorMessage : String = getErrorMessage(
AGP_NAME,
version.toString(),
errorAGPVersion.toString(),
getPotentialAGPFix(project.getRootDir().getPath())
)
val errorMessage: String =
getErrorMessage(
AGP_NAME,
version.toString(),
errorAGPVersion.toString(),
getPotentialAGPFix(project.getRootDir().getPath()),
)
throw GradleException(errorMessage)
}
else if (version < warnAGPVersion) {
val warnMessage : String = getWarnMessage(
AGP_NAME,
version.toString(),
warnAGPVersion.toString(),
getPotentialAGPFix(project.getRootDir().getPath())
)
} else if (version < warnAGPVersion) {
val warnMessage: String =
getWarnMessage(
AGP_NAME,
version.toString(),
warnAGPVersion.toString(),
getPotentialAGPFix(project.getRootDir().getPath()),
)
project.logger.error(warnMessage)
}
}
fun checkKGPVersion(version : Version, project : Project) {
fun checkKGPVersion(
version: Version,
project: Project,
) {
if (version < errorKGPVersion) {
val errorMessage : String = getErrorMessage(
KGP_NAME,
version.toString(),
errorKGPVersion.toString(),
getPotentialKGPFix(project.getRootDir().getPath())
)
val errorMessage: String =
getErrorMessage(
KGP_NAME,
version.toString(),
errorKGPVersion.toString(),
getPotentialKGPFix(project.getRootDir().getPath()),
)
throw GradleException(errorMessage)
}
else if (version < warnKGPVersion) {
val warnMessage : String = getWarnMessage(
KGP_NAME,
version.toString(),
warnKGPVersion.toString(),
getPotentialKGPFix(project.getRootDir().getPath())
)
} else if (version < warnKGPVersion) {
val warnMessage: String =
getWarnMessage(
KGP_NAME,
version.toString(),
warnKGPVersion.toString(),
getPotentialKGPFix(project.getRootDir().getPath()),
)
project.logger.error(warnMessage)
}
}
}
}
// Helper class to parse the versions that are provided as plain strings (Gradle, Kotlin) and
// perform easy comparisons. All versions will have a major, minor, and patch value. These values
// default to 0 when they are not provided or are otherwise unparseable.
// For example the version strings "8.2", "8.2.2hfd", and "8.2.0" would parse to the same version.
class Version(val major : Int, val minor : Int, val patch : Int) : Comparable<Version> {
class Version(val major: Int, val minor: Int, val patch: Int) : Comparable<Version> {
companion object {
fun fromString(version : String) : Version {
val asList : List<String> = version.split(".")
val convertedToNumbers : List<Int> = asList.map {it.toIntOrNull() ?: 0}
fun fromString(version: String): Version {
val asList: List<String> = version.split(".")
val convertedToNumbers: List<Int> = asList.map { it.toIntOrNull() ?: 0 }
return Version(
major = convertedToNumbers.getOrElse(0, {0}),
minor = convertedToNumbers.getOrElse(1, {0}),
patch = convertedToNumbers.getOrElse(2, {0})
major = convertedToNumbers.getOrElse(0, { 0 }),
minor = convertedToNumbers.getOrElse(1, { 0 }),
patch = convertedToNumbers.getOrElse(2, { 0 }),
)
}
}
override fun compareTo(otherVersion : Version) : Int {
override fun compareTo(otherVersion: Version): Int {
if (major != otherVersion.major) {
return major - otherVersion.major
}
......@@ -324,7 +353,8 @@ class Version(val major : Int, val minor : Int, val patch : Int) : Comparable<Ve
}
return 0
}
override fun toString() : String {
override fun toString(): String {
return major.toString() + "." + minor.toString() + "." + patch.toString()
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment