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
