diff options
Diffstat (limited to 'sdk-common/src/main/java/com/android/ide/common/repository/KnownVersionStability.kt')
-rw-r--r-- | sdk-common/src/main/java/com/android/ide/common/repository/KnownVersionStability.kt | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/sdk-common/src/main/java/com/android/ide/common/repository/KnownVersionStability.kt b/sdk-common/src/main/java/com/android/ide/common/repository/KnownVersionStability.kt index fa45e52813..b1f9e555aa 100644 --- a/sdk-common/src/main/java/com/android/ide/common/repository/KnownVersionStability.kt +++ b/sdk-common/src/main/java/com/android/ide/common/repository/KnownVersionStability.kt @@ -18,6 +18,7 @@ package com.android.ide.common.repository import com.android.SdkConstants.ANNOTATIONS_LIB_ARTIFACT_ID import com.android.SdkConstants.MATERIAL2_PKG import com.android.SdkConstants.SUPPORT_LIB_GROUP_ID +import com.android.ide.common.gradle.Component import com.android.ide.common.gradle.Version import com.android.ide.common.gradle.VersionRange @@ -80,20 +81,25 @@ enum class KnownVersionStability { } } +val Component.stability get() = when { + group == KOTLIN_GROUP_ID -> kotlinStabilityOf(name) + group == GOOGLE_MOBILE_SERVICES_GROUP_ID -> gmsAndFirebaseStability(version) + group == FIREBASE_GROUP_ID -> gmsAndFirebaseStability(version) + group == MATERIAL2_PKG -> KnownVersionStability.SEMANTIC + group == SUPPORT_LIB_GROUP_ID -> supportLibStability(name) + MavenRepositories.isAndroidX(group) -> KnownVersionStability.SEMANTIC + else -> KnownVersionStability.INCOMPATIBLE +} + +@Deprecated( + "replace with Component.stability", + ReplaceWith("Component(groupId, artifactId, Version.parse(revision)).stability") +) fun stabilityOf( groupId: String, artifactId: String, revision: String = "1.0.0" -): KnownVersionStability = - when { - groupId == KOTLIN_GROUP_ID -> kotlinStabilityOf(artifactId) - groupId == GOOGLE_MOBILE_SERVICES_GROUP_ID -> gmsAndFirebaseStability(revision) - groupId == FIREBASE_GROUP_ID -> gmsAndFirebaseStability(revision) - groupId == MATERIAL2_PKG -> KnownVersionStability.SEMANTIC - groupId == SUPPORT_LIB_GROUP_ID -> supportLibStability(artifactId) - MavenRepositories.isAndroidX(groupId) -> KnownVersionStability.SEMANTIC - else -> KnownVersionStability.INCOMPATIBLE - } +): KnownVersionStability = Component(groupId, artifactId, Version.parse(revision)).stability private fun kotlinStabilityOf(artifactId: String): KnownVersionStability = when (artifactId) { @@ -108,14 +114,16 @@ private fun kotlinStabilityOf(artifactId: String): KnownVersionStability = else -> KnownVersionStability.INCOMPATIBLE } -private fun gmsAndFirebaseStability(revision: String): KnownVersionStability { - val version = GradleVersion.tryParse(revision) - return if (version != null && version.major >= GMS_AND_FIREBASE_SEMANTIC_START) - KnownVersionStability.SEMANTIC - else - KnownVersionStability.INCOMPATIBLE +private fun gmsAndFirebaseStability(version: Version): KnownVersionStability { + val major = version.major + return when { + major == null -> KnownVersionStability.INCOMPATIBLE + major >= GMS_AND_FIREBASE_SEMANTIC_START -> KnownVersionStability.SEMANTIC + else -> KnownVersionStability.INCOMPATIBLE + } } + /** * Stability of legacy support libraries. * |