as32: Fix compilation to match changes in SdkConstants (#1533)

... and match the intended semantics for AndroidxName.

Change-Id: If2148ab8cefcc124a72f63458b7dbddf1a6cfe04
This commit is contained in:
Raluca Sauciuc
2018-02-21 03:28:22 -08:00
committed by Nikolay Krasko
parent 86f8174093
commit cab1813dcd
2 changed files with 14 additions and 7 deletions
@@ -32,12 +32,12 @@ import org.jetbrains.kotlin.psi.*
class AddTargetApiQuickFix( class AddTargetApiQuickFix(
val api: Int, val api: Int,
val useRequiresApi: Boolean val useRequiresApi: Boolean,
val useNewName: Boolean = false
) : AndroidLintQuickFix { ) : AndroidLintQuickFix {
private companion object { private companion object {
val FQNAME_TARGET_API = FqName(SdkConstants.FQCN_TARGET_API) 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 = override fun isApplicable(startElement: PsiElement, endElement: PsiElement, contextType: AndroidQuickfixContexts.ContextType): Boolean =
@@ -61,9 +61,12 @@ class AddTargetApiQuickFix(
if (annotationContainer is KtModifierListOwner) { if (annotationContainer is KtModifierListOwner) {
annotationContainer.addAnnotation( annotationContainer.addAnnotation(
if (useRequiresApi) FQNAME_REQUIRES_API else FQNAME_TARGET_API, if (useRequiresApi)
getAnnotationValue(true), if (useNewName) FqName(REQUIRES_API_ANNOTATION.newName())
whiteSpaceText = if (annotationContainer.isNewLineNeededForAnnotation()) "\n" else " ") else FqName(REQUIRES_API_ANNOTATION.oldName())
else FQNAME_TARGET_API,
getAnnotationValue(true),
whiteSpaceText = if (annotationContainer.isNewLineNeededForAnnotation()) "\n" else " ")
} }
} }
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.android.quickfix package org.jetbrains.kotlin.android.quickfix
import com.android.SdkConstants.SUPPORT_ANNOTATIONS_PREFIX 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.ApiDetector
import com.android.tools.lint.checks.CommentDetector import com.android.tools.lint.checks.CommentDetector
import com.android.tools.lint.checks.ParcelDetector import com.android.tools.lint.checks.ParcelDetector
@@ -57,7 +58,10 @@ class KotlinAndroidQuickFixProvider : AndroidLintQuickFixProvider {
} }
val project = element.project 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)) return arrayOf(AddTargetApiQuickFix(api, true), AddTargetApiQuickFix(api, false), AddTargetVersionCheckQuickFix(api))
} }
@@ -75,6 +79,6 @@ class KotlinAndroidQuickFixProvider : AndroidLintQuickFixProvider {
} }
companion object { companion object {
val REQUIRES_API_ANNOTATION = SUPPORT_ANNOTATIONS_PREFIX.defaultName() + "RequiresApi" val REQUIRES_API_ANNOTATION = AndroidxName.of(SUPPORT_ANNOTATIONS_PREFIX, "RequiresApi")
} }
} }