Fix compilation to match changes in SdkConstants (#1533)
... and match the intended semantics for AndroidxName.
Change-Id: If2148ab8cefcc124a72f63458b7dbddf1a6cfe04
diff --git a/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/AddTargetApiQuickFix.kt b/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/AddTargetApiQuickFix.kt
index 2e3c95f..a315842 100644
--- a/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/AddTargetApiQuickFix.kt
+++ b/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/AddTargetApiQuickFix.kt
@@ -32,12 +32,12 @@
class AddTargetApiQuickFix(
val api: Int,
- val useRequiresApi: Boolean
+ val useRequiresApi: Boolean,
+ val useNewName: Boolean = false
) : AndroidLintQuickFix {
private companion object {
val FQNAME_TARGET_API = FqName(SdkConstants.FQCN_TARGET_API)
- val FQNAME_REQUIRES_API = FqName(REQUIRES_API_ANNOTATION.defaultName())
}
override fun isApplicable(startElement: PsiElement, endElement: PsiElement, contextType: AndroidQuickfixContexts.ContextType): Boolean =
@@ -61,9 +61,12 @@
if (annotationContainer is KtModifierListOwner) {
annotationContainer.addAnnotation(
- if (useRequiresApi) FQNAME_REQUIRES_API else FQNAME_TARGET_API,
- getAnnotationValue(true),
- whiteSpaceText = if (annotationContainer.isNewLineNeededForAnnotation()) "\n" else " ")
+ if (useRequiresApi)
+ if (useNewName) FqName(REQUIRES_API_ANNOTATION.newName())
+ else FqName(REQUIRES_API_ANNOTATION.oldName())
+ else FQNAME_TARGET_API,
+ getAnnotationValue(true),
+ whiteSpaceText = if (annotationContainer.isNewLineNeededForAnnotation()) "\n" else " ")
}
}
diff --git a/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/KotlinAndroidQuickFixProvider.kt b/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/KotlinAndroidQuickFixProvider.kt
index c96480c..0f17a86 100644
--- a/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/KotlinAndroidQuickFixProvider.kt
+++ b/idea/idea-android/src/org/jetbrains/kotlin/android/quickfix/KotlinAndroidQuickFixProvider.kt
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.android.quickfix
import com.android.SdkConstants.SUPPORT_ANNOTATIONS_PREFIX
+import com.android.support.AndroidxName
import com.android.tools.lint.checks.ApiDetector
import com.android.tools.lint.checks.CommentDetector
import com.android.tools.lint.checks.ParcelDetector
@@ -57,7 +58,10 @@
}
val project = element.project
- if (JavaPsiFacade.getInstance(project).findClass(REQUIRES_API_ANNOTATION, GlobalSearchScope.allScope(project)) != null) {
+ if (JavaPsiFacade.getInstance(project).findClass(REQUIRES_API_ANNOTATION.newName(), GlobalSearchScope.allScope(project)) != null) {
+ return arrayOf(AddTargetApiQuickFix(api, true, true), AddTargetApiQuickFix(api, false, true), AddTargetVersionCheckQuickFix(api))
+ }
+ if (JavaPsiFacade.getInstance(project).findClass(REQUIRES_API_ANNOTATION.oldName(), GlobalSearchScope.allScope(project)) != null) {
return arrayOf(AddTargetApiQuickFix(api, true), AddTargetApiQuickFix(api, false), AddTargetVersionCheckQuickFix(api))
}
@@ -75,6 +79,6 @@
}
companion object {
- val REQUIRES_API_ANNOTATION = SUPPORT_ANNOTATIONS_PREFIX.defaultName() + "RequiresApi"
+ val REQUIRES_API_ANNOTATION = AndroidxName.of(SUPPORT_ANNOTATIONS_PREFIX, "RequiresApi")
}
}
\ No newline at end of file