summaryrefslogtreecommitdiff
path: root/SafetyCenter/ConfigLintChecker/java/android/safetycenter/lint/FileSdk.kt
diff options
context:
space:
mode:
Diffstat (limited to 'SafetyCenter/ConfigLintChecker/java/android/safetycenter/lint/FileSdk.kt')
-rw-r--r--SafetyCenter/ConfigLintChecker/java/android/safetycenter/lint/FileSdk.kt23
1 files changed, 19 insertions, 4 deletions
diff --git a/SafetyCenter/ConfigLintChecker/java/android/safetycenter/lint/FileSdk.kt b/SafetyCenter/ConfigLintChecker/java/android/safetycenter/lint/FileSdk.kt
index f93d4ecab..2d095967b 100644
--- a/SafetyCenter/ConfigLintChecker/java/android/safetycenter/lint/FileSdk.kt
+++ b/SafetyCenter/ConfigLintChecker/java/android/safetycenter/lint/FileSdk.kt
@@ -50,11 +50,26 @@ object FileSdk {
if (lastQualifier.isEmpty() || lastQualifier[0] != 'v') {
return TIRAMISU
}
- return try {
- lastQualifier.substring(1).toInt()
- } catch (nfe: NumberFormatException) {
- TIRAMISU
+ return lastQualifier.substring(1).toIntOrNull() ?: TIRAMISU
+ }
+
+ /**
+ * Returns whether the file belongs to a basic configuration. By basic, we mean either the
+ * default configuration that has no qualifier, or a configuration that is defined only by an
+ * SDK level version.
+ */
+ fun belongsToABasicConfiguration(file: File): Boolean {
+ val directParentName = file.parentFile.name
+ val qualifierCount = directParentName.count { it == '-' }
+ val lastQualifier = directParentName.substringAfterLast("-", "")
+ if (
+ lastQualifier.isNotEmpty() &&
+ lastQualifier[0] == 'v' &&
+ lastQualifier.substring(1).toIntOrNull() != null
+ ) {
+ return qualifierCount == 1
}
+ return qualifierCount == 0
}
/** Returns the schema for the specific SDK level provided or null if it doesn't exist. */