fix compilation

This commit is contained in:
Dmitry Jemerov
2016-10-31 13:37:21 +01:00
parent ab5067a0d3
commit 594e2b6a77
2 changed files with 19 additions and 5 deletions
@@ -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>)
@@ -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
}
}
}