summaryrefslogtreecommitdiff
path: root/sdk-common/src/main/java/com/android/ide/common/repository/KnownVersionStability.kt
diff options
context:
space:
mode:
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.kt40
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.
*