fix compilation
This commit is contained in:
+2
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.android.intention
|
||||
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
|
||||
|
||||
val CREATE_XML_RESOURCE_PARAMETERS_NAME_KEY = Key<String>("CREATE_XML_RESOURCE_PARAMETERS_NAME_KEY")
|
||||
@@ -24,4 +25,5 @@ val CREATE_XML_RESOURCE_PARAMETERS_NAME_KEY = Key<String>("CREATE_XML_RESOURCE_P
|
||||
class CreateXmlResourceParameters(val name: String,
|
||||
val value: String,
|
||||
val fileName: String,
|
||||
val resourceDirectory: VirtualFile,
|
||||
val directoryNames: List<String>)
|
||||
+17
-5
@@ -26,12 +26,14 @@ import com.intellij.openapi.command.undo.UndoUtil
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.ui.Messages
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import org.jetbrains.android.actions.CreateXmlResourceDialog
|
||||
import org.jetbrains.android.facet.AndroidFacet
|
||||
import org.jetbrains.android.util.AndroidBundle
|
||||
import org.jetbrains.android.util.AndroidResourceUtil
|
||||
import org.jetbrains.android.util.AndroidUtils
|
||||
import org.jetbrains.kotlin.builtins.isExtensionFunctionType
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
@@ -55,6 +57,7 @@ class KotlinAndroidAddStringResource : SelfTargetingIntention<KtLiteralStringTem
|
||||
private val GET_STRING_METHOD = "getString"
|
||||
private val EXTRACT_RESOURCE_DIALOG_TITLE = "Extract Resource"
|
||||
private val PACKAGE_NOT_FOUND_ERROR = "package.not.found.error"
|
||||
private val RESOURCE_DIR_ERROR = "check.resource.dir.error"
|
||||
}
|
||||
|
||||
override fun isApplicableTo(element: KtLiteralStringTemplateEntry, caretOffset: Int): Boolean {
|
||||
@@ -86,9 +89,9 @@ class KotlinAndroidAddStringResource : SelfTargetingIntention<KtLiteralStringTem
|
||||
return
|
||||
}
|
||||
|
||||
val parameters = getCreateXmlResourceParameters(facet.module, element) ?: return
|
||||
val parameters = getCreateXmlResourceParameters(facet.module, element, file.virtualFile) ?: return
|
||||
|
||||
if (!AndroidResourceUtil.createValueResource(facet.module, parameters.name, ResourceType.STRING,
|
||||
if (!AndroidResourceUtil.createValueResource(project, parameters.resourceDirectory, parameters.name, ResourceType.STRING,
|
||||
parameters.fileName, parameters.directoryNames, parameters.value)) {
|
||||
return
|
||||
}
|
||||
@@ -98,13 +101,15 @@ class KotlinAndroidAddStringResource : SelfTargetingIntention<KtLiteralStringTem
|
||||
UndoUtil.markPsiFileForUndo(file)
|
||||
}
|
||||
|
||||
private fun getCreateXmlResourceParameters(module: Module, element: KtLiteralStringTemplateEntry): CreateXmlResourceParameters? {
|
||||
private fun getCreateXmlResourceParameters(module: Module, element: KtLiteralStringTemplateEntry,
|
||||
contextFile: VirtualFile): CreateXmlResourceParameters? {
|
||||
|
||||
val stringValue = element.text
|
||||
|
||||
val showDialog = !ApplicationManager.getApplication().isUnitTestMode
|
||||
val resourceName = element.getUserData(CREATE_XML_RESOURCE_PARAMETERS_NAME_KEY)
|
||||
|
||||
val dialog = CreateXmlResourceDialog(module, ResourceType.STRING, resourceName, stringValue, true)
|
||||
val dialog = CreateXmlResourceDialog(module, ResourceType.STRING, resourceName, stringValue, true, null, contextFile)
|
||||
dialog.title = EXTRACT_RESOURCE_DIALOG_TITLE
|
||||
if (showDialog) {
|
||||
if (!dialog.showAndGet()) {
|
||||
@@ -115,9 +120,16 @@ class KotlinAndroidAddStringResource : SelfTargetingIntention<KtLiteralStringTem
|
||||
dialog.close(0)
|
||||
}
|
||||
|
||||
val resourceDirectory = dialog.resourceDirectory
|
||||
if (resourceDirectory == null) {
|
||||
AndroidUtils.reportError(module.project, AndroidBundle.message(RESOURCE_DIR_ERROR, module))
|
||||
return null
|
||||
}
|
||||
|
||||
return CreateXmlResourceParameters(dialog.resourceName,
|
||||
dialog.value,
|
||||
dialog.fileName,
|
||||
resourceDirectory,
|
||||
dialog.dirNames)
|
||||
}
|
||||
|
||||
@@ -227,4 +239,4 @@ class KotlinAndroidAddStringResource : SelfTargetingIntention<KtLiteralStringTem
|
||||
private fun ClassifierDescriptor.isStrictSubclassOf(className: String) = defaultType.constructor.supertypes.any {
|
||||
it.constructor.declarationDescriptor?.isSubclassOf(className) ?: false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user