From 9112dd632a88ed3d41b83d6a6d1464e5047e37ce Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 23 Oct 2015 15:19:15 +0300 Subject: [PATCH] Support Android variants in IDE --- .../idea/AndroidPsiTreeChangePreprocessor.kt | 17 +++--- .../res/IDEAndroidLayoutXmlFileManager.kt | 54 +++++++++++++------ .../completion/fqNameInAttr/fqNameInAttr.kt | 2 +- .../fqNameInAttrFragment.kt | 2 +- .../completion/fqNameInTag/fqNameInTag.kt | 2 +- .../fqNameInTagFragment.kt | 2 +- .../android/completion/multiFile/multiFile.kt | 4 +- .../multiFileFragment/multiFileFragment.kt | 4 +- .../propertiesSimple/propertiesSimple.kt | 2 +- .../propertiesSimpleFragment.kt | 2 +- .../propertiesSimpleView.kt | 2 +- .../findUsages/fqNameInAttr/fqNameInAttr.kt | 2 +- .../fqNameInAttrFragment.kt | 2 +- .../findUsages/fqNameInTag/fqNameInTag.kt | 2 +- .../fqNameInTagFragment.kt | 2 +- .../android/findUsages/multiFile/multiFile.kt | 2 +- .../multiFileFragment/multiFileFragment.kt | 2 +- .../android/findUsages/simple/simple.kt | 2 +- .../simpleFragment/simpleFragment.kt | 2 +- .../findUsages/simpleView/simpleView.kt | 2 +- .../findUsages/wrongIdFormat/wrongIdFormat.kt | 2 +- .../android/goto/fqNameInAttr/fqNameInAttr.kt | 2 +- .../fqNameInAttrFragment.kt | 2 +- .../android/goto/fqNameInTag/fqNameInTag.kt | 2 +- .../fqNameInTagFragment.kt | 2 +- .../android/goto/multiFile/multiFile.kt | 2 +- .../multiFileFragment/multiFileFragment.kt | 2 +- .../testData/android/goto/simple/simple.kt | 2 +- .../goto/simpleFragment/simpleFragment.kt | 2 +- .../android/goto/simpleView/simpleView.kt | 2 +- .../rename/fqNameInAttr/fqNameInAttr.kt | 2 +- .../fqNameInAttrFragment.kt | 2 +- .../android/rename/fqNameInTag/fqNameInTag.kt | 2 +- .../fqNameInTagFragment.kt | 2 +- .../android/rename/multiFile/multiFile.kt | 2 +- .../multiFileFragment/multiFileFragment.kt | 2 +- .../testData/android/rename/simple/simple.kt | 2 +- .../rename/simpleFragment/simpleFragment.kt | 2 +- .../android/rename/simpleView/simpleView.kt | 2 +- .../AbstractParserResultEqualityTest.kt | 9 ++-- 40 files changed, 93 insertions(+), 65 deletions(-) diff --git a/plugins/android-idea-plugin/src/org/jetbrains/kotlin/android/synthetic/idea/AndroidPsiTreeChangePreprocessor.kt b/plugins/android-idea-plugin/src/org/jetbrains/kotlin/android/synthetic/idea/AndroidPsiTreeChangePreprocessor.kt index d399c080d30..7e03f3146e1 100644 --- a/plugins/android-idea-plugin/src/org/jetbrains/kotlin/android/synthetic/idea/AndroidPsiTreeChangePreprocessor.kt +++ b/plugins/android-idea-plugin/src/org/jetbrains/kotlin/android/synthetic/idea/AndroidPsiTreeChangePreprocessor.kt @@ -76,10 +76,10 @@ public class AndroidPsiTreeChangePreprocessor : PsiTreeChangePreprocessor, Simpl if (module != null) { val resourceManager = AndroidLayoutXmlFileManager.getInstance(module) ?: return false - val resDirectories = resourceManager.getModuleResDirectories() + val resDirectories = resourceManager.getAllModuleResDirectories() val baseDirectory = xmlFile.parent?.parent?.virtualFile - if (baseDirectory in resDirectories && xmlFile.isLayoutXmlFile()) { + if (baseDirectory != null && baseDirectory in resDirectories && xmlFile.isLayoutXmlFile()) { return true } } @@ -95,11 +95,16 @@ public class AndroidPsiTreeChangePreprocessor : PsiTreeChangePreprocessor, Simpl } } - private fun AndroidLayoutXmlFileManager.getModuleResDirectories(): List { - val info = androidModuleInfo ?: return listOf() - + private fun AndroidLayoutXmlFileManager.getAllModuleResDirectories(): List { + val module = androidModule ?: return listOf() val fileManager = VirtualFileManager.getInstance() - return info.resDirectories.map { fileManager.findFileByUrl("file://$it") }.filterNotNull() + + return module.variants.fold(arrayListOf()) { list, variant -> + for (dir in variant.resDirectories) { + fileManager.findFileByUrl("file://$dir")?.let { list += it } + } + list + } } private fun PsiFile.isLayoutXmlFile(): Boolean { diff --git a/plugins/android-idea-plugin/src/org/jetbrains/kotlin/android/synthetic/idea/res/IDEAndroidLayoutXmlFileManager.kt b/plugins/android-idea-plugin/src/org/jetbrains/kotlin/android/synthetic/idea/res/IDEAndroidLayoutXmlFileManager.kt index 0223c9209e4..659bc87d4dd 100644 --- a/plugins/android-idea-plugin/src/org/jetbrains/kotlin/android/synthetic/idea/res/IDEAndroidLayoutXmlFileManager.kt +++ b/plugins/android-idea-plugin/src/org/jetbrains/kotlin/android/synthetic/idea/res/IDEAndroidLayoutXmlFileManager.kt @@ -16,47 +16,69 @@ package org.jetbrains.kotlin.android.synthetic.idea.res +import com.android.builder.model.SourceProvider import com.intellij.openapi.module.Module import com.intellij.psi.PsiElement import org.jetbrains.android.facet.AndroidFacet import org.jetbrains.kotlin.android.synthetic.AndroidConst import org.jetbrains.kotlin.android.synthetic.idea.AndroidXmlVisitor import org.jetbrains.kotlin.android.synthetic.res.AndroidLayoutXmlFileManager -import org.jetbrains.kotlin.android.synthetic.res.AndroidModuleInfo +import org.jetbrains.kotlin.android.synthetic.res.AndroidModule +import org.jetbrains.kotlin.android.synthetic.res.AndroidVariant +import org.jetbrains.kotlin.android.synthetic.res.AndroidVariantData import org.jetbrains.kotlin.psi.KtProperty +import org.jetbrains.kotlin.android.synthetic.AndroidConst.SYNTHETIC_PACKAGE_PATH_LENGTH public class IDEAndroidLayoutXmlFileManager(val module: Module) : AndroidLayoutXmlFileManager(module.project) { - override val androidModuleInfo: AndroidModuleInfo? by lazy { module.androidFacet?.toAndroidModuleInfo() } + override val androidModule: AndroidModule? by lazy { module.androidFacet?.toAndroidModuleInfo() } override fun propertyToXmlAttributes(property: KtProperty): List { val fqPath = property.fqName?.pathSegments() ?: return listOf() - if (fqPath.size() <= AndroidConst.SYNTHETIC_PACKAGE_PATH_LENGTH) return listOf() + if (fqPath.size <= SYNTHETIC_PACKAGE_PATH_LENGTH) return listOf() - val layoutPackageName = fqPath[AndroidConst.SYNTHETIC_PACKAGE_PATH_LENGTH].asString() - val layoutFiles = getLayoutXmlFiles()[layoutPackageName] - if (layoutFiles == null || layoutFiles.isEmpty()) return listOf() + fun handle(variantData: AndroidVariantData, defaultVariant: Boolean = false): List? { + val layoutNamePosition = SYNTHETIC_PACKAGE_PATH_LENGTH + (if (defaultVariant) 0 else 1) + val layoutName = fqPath[layoutNamePosition].asString() - val propertyName = property.name + val layoutFiles = variantData[layoutName] ?: return null + if (layoutFiles.isEmpty()) return null - val attributes = arrayListOf() - val visitor = AndroidXmlVisitor { retId, wClass, valueElement -> - if (retId == propertyName) attributes.add(valueElement) + val propertyName = property.name + + val attributes = arrayListOf() + val visitor = AndroidXmlVisitor { retId, wClass, valueElement -> + if (retId == propertyName) attributes.add(valueElement) + } + + layoutFiles.forEach { it.accept(visitor) } + return attributes } - layoutFiles.forEach { it.accept(visitor) } - return attributes + for (variantData in getLayoutXmlFiles()) { + if (variantData.variant.isMainVariant && fqPath.size == SYNTHETIC_PACKAGE_PATH_LENGTH + 2) { + handle(variantData, true)?.let { return it } + } + else if (fqPath[SYNTHETIC_PACKAGE_PATH_LENGTH].asString() == variantData.variant.name) { + handle(variantData)?.let { return it } + } + } + + return listOf() } private val Module.androidFacet: AndroidFacet? get() = AndroidFacet.getInstance(this) - private fun AndroidFacet.toAndroidModuleInfo(): AndroidModuleInfo? { - val applicationPackage = manifest?.getPackage()?.toString() - val mainResDirectories = allResourceDirectories.map { it.path } + private fun SourceProvider.toVariant() = AndroidVariant(name, resDirectories.map { it.absolutePath }) + + private fun AndroidFacet.toAndroidModuleInfo(): AndroidModule? { + val applicationPackage = manifest?.`package`?.toString() return if (applicationPackage != null) { - AndroidModuleInfo(applicationPackage, mainResDirectories) + val mainVariant = mainSourceProvider.toVariant() + val flavorVariants = flavorSourceProviders?.map { it.toVariant() } ?: listOf() + AndroidModule(applicationPackage, listOf(mainVariant) + flavorVariants) } else null } diff --git a/plugins/android-idea-plugin/testData/android/completion/fqNameInAttr/fqNameInAttr.kt b/plugins/android-idea-plugin/testData/android/completion/fqNameInAttr/fqNameInAttr.kt index 897c0aaf103..e75072ebf26 100644 --- a/plugins/android-idea-plugin/testData/android/completion/fqNameInAttr/fqNameInAttr.kt +++ b/plugins/android-idea-plugin/testData/android/completion/fqNameInAttr/fqNameInAttr.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.MyBu diff --git a/plugins/android-idea-plugin/testData/android/completion/fqNameInAttrFragment/fqNameInAttrFragment.kt b/plugins/android-idea-plugin/testData/android/completion/fqNameInAttrFragment/fqNameInAttrFragment.kt index f87c18cb51d..a98636e363d 100644 --- a/plugins/android-idea-plugin/testData/android/completion/fqNameInAttrFragment/fqNameInAttrFragment.kt +++ b/plugins/android-idea-plugin/testData/android/completion/fqNameInAttrFragment/fqNameInAttrFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.MyBu diff --git a/plugins/android-idea-plugin/testData/android/completion/fqNameInTag/fqNameInTag.kt b/plugins/android-idea-plugin/testData/android/completion/fqNameInTag/fqNameInTag.kt index 897c0aaf103..e75072ebf26 100644 --- a/plugins/android-idea-plugin/testData/android/completion/fqNameInTag/fqNameInTag.kt +++ b/plugins/android-idea-plugin/testData/android/completion/fqNameInTag/fqNameInTag.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.MyBu diff --git a/plugins/android-idea-plugin/testData/android/completion/fqNameInTagFragment/fqNameInTagFragment.kt b/plugins/android-idea-plugin/testData/android/completion/fqNameInTagFragment/fqNameInTagFragment.kt index f87c18cb51d..a98636e363d 100644 --- a/plugins/android-idea-plugin/testData/android/completion/fqNameInTagFragment/fqNameInTagFragment.kt +++ b/plugins/android-idea-plugin/testData/android/completion/fqNameInTagFragment/fqNameInTagFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.MyBu diff --git a/plugins/android-idea-plugin/testData/android/completion/multiFile/multiFile.kt b/plugins/android-idea-plugin/testData/android/completion/multiFile/multiFile.kt index cf66d4b9eeb..527a2657889 100644 --- a/plugins/android-idea-plugin/testData/android/completion/multiFile/multiFile.kt +++ b/plugins/android-idea-plugin/testData/android/completion/multiFile/multiFile.kt @@ -1,8 +1,8 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* -import kotlinx.android.synthetic.layout1.* +import kotlinx.android.synthetic.main.layout.* +import kotlinx.android.synthetic.main.layout1.* class MyActivity: Activity() { val button = log diff --git a/plugins/android-idea-plugin/testData/android/completion/multiFileFragment/multiFileFragment.kt b/plugins/android-idea-plugin/testData/android/completion/multiFileFragment/multiFileFragment.kt index ad78238b7fc..81762a895d4 100644 --- a/plugins/android-idea-plugin/testData/android/completion/multiFileFragment/multiFileFragment.kt +++ b/plugins/android-idea-plugin/testData/android/completion/multiFileFragment/multiFileFragment.kt @@ -1,8 +1,8 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* -import kotlinx.android.synthetic.layout1.* +import kotlinx.android.synthetic.main.layout.* +import kotlinx.android.synthetic.main.layout1.* class MyFragment: Fragment() { val button = log diff --git a/plugins/android-idea-plugin/testData/android/completion/propertiesSimple/propertiesSimple.kt b/plugins/android-idea-plugin/testData/android/completion/propertiesSimple/propertiesSimple.kt index 5bd219fdb97..3bcf21476b3 100644 --- a/plugins/android-idea-plugin/testData/android/completion/propertiesSimple/propertiesSimple.kt +++ b/plugins/android-idea-plugin/testData/android/completion/propertiesSimple/propertiesSimple.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.login diff --git a/plugins/android-idea-plugin/testData/android/completion/propertiesSimpleFragment/propertiesSimpleFragment.kt b/plugins/android-idea-plugin/testData/android/completion/propertiesSimpleFragment/propertiesSimpleFragment.kt index 098d66ffc95..6e8a8826b71 100644 --- a/plugins/android-idea-plugin/testData/android/completion/propertiesSimpleFragment/propertiesSimpleFragment.kt +++ b/plugins/android-idea-plugin/testData/android/completion/propertiesSimpleFragment/propertiesSimpleFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.login diff --git a/plugins/android-idea-plugin/testData/android/completion/propertiesSimpleView/propertiesSimpleView.kt b/plugins/android-idea-plugin/testData/android/completion/propertiesSimpleView/propertiesSimpleView.kt index 0a4753752c8..a0e395b72db 100644 --- a/plugins/android-idea-plugin/testData/android/completion/propertiesSimpleView/propertiesSimpleView.kt +++ b/plugins/android-idea-plugin/testData/android/completion/propertiesSimpleView/propertiesSimpleView.kt @@ -1,7 +1,7 @@ package com.myapp import android.view.View -import kotlinx.android.synthetic.layout.view.* +import kotlinx.android.synthetic.main.layout.view.* fun View.a() { val button = this.login diff --git a/plugins/android-idea-plugin/testData/android/findUsages/fqNameInAttr/fqNameInAttr.kt b/plugins/android-idea-plugin/testData/android/findUsages/fqNameInAttr/fqNameInAttr.kt index 2ae4265ea17..8082e7a454c 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/fqNameInAttr/fqNameInAttr.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/fqNameInAttr/fqNameInAttr.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/findUsages/fqNameInAttrFragment/fqNameInAttrFragment.kt b/plugins/android-idea-plugin/testData/android/findUsages/fqNameInAttrFragment/fqNameInAttrFragment.kt index b95a39e0565..6d2ba63cd11 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/fqNameInAttrFragment/fqNameInAttrFragment.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/fqNameInAttrFragment/fqNameInAttrFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/findUsages/fqNameInTag/fqNameInTag.kt b/plugins/android-idea-plugin/testData/android/findUsages/fqNameInTag/fqNameInTag.kt index 2ae4265ea17..8082e7a454c 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/fqNameInTag/fqNameInTag.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/fqNameInTag/fqNameInTag.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/findUsages/fqNameInTagFragment/fqNameInTagFragment.kt b/plugins/android-idea-plugin/testData/android/findUsages/fqNameInTagFragment/fqNameInTagFragment.kt index b95a39e0565..6d2ba63cd11 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/fqNameInTagFragment/fqNameInTagFragment.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/fqNameInTagFragment/fqNameInTagFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/findUsages/multiFile/multiFile.kt b/plugins/android-idea-plugin/testData/android/findUsages/multiFile/multiFile.kt index 7054121e425..2bdb18572da 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/multiFile/multiFile.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/multiFile/multiFile.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.login diff --git a/plugins/android-idea-plugin/testData/android/findUsages/multiFileFragment/multiFileFragment.kt b/plugins/android-idea-plugin/testData/android/findUsages/multiFileFragment/multiFileFragment.kt index 65215c9c72d..264d3d6daf2 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/multiFileFragment/multiFileFragment.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/multiFileFragment/multiFileFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.login diff --git a/plugins/android-idea-plugin/testData/android/findUsages/simple/simple.kt b/plugins/android-idea-plugin/testData/android/findUsages/simple/simple.kt index 39ac825f48c..dc3d938a426 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/simple/simple.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/simple/simple.kt @@ -3,7 +3,7 @@ package com.myapp import android.app.Activity import android.os.Bundle import java.io.File -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* public class MyActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) {} diff --git a/plugins/android-idea-plugin/testData/android/findUsages/simpleFragment/simpleFragment.kt b/plugins/android-idea-plugin/testData/android/findUsages/simpleFragment/simpleFragment.kt index cde92077fc1..b01d168c029 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/simpleFragment/simpleFragment.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/simpleFragment/simpleFragment.kt @@ -2,7 +2,7 @@ package com.myapp import android.app.Fragment import java.io.File -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* public class MyFragemnt : Fragment() { override fun onResume() {} diff --git a/plugins/android-idea-plugin/testData/android/findUsages/simpleView/simpleView.kt b/plugins/android-idea-plugin/testData/android/findUsages/simpleView/simpleView.kt index 00b49364fe8..64c3fa43a91 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/simpleView/simpleView.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/simpleView/simpleView.kt @@ -1,7 +1,7 @@ package com.myapp import android.view.View -import kotlinx.android.synthetic.layout.view.* +import kotlinx.android.synthetic.main.layout.view.* fun View.a() { val button = login diff --git a/plugins/android-idea-plugin/testData/android/findUsages/wrongIdFormat/wrongIdFormat.kt b/plugins/android-idea-plugin/testData/android/findUsages/wrongIdFormat/wrongIdFormat.kt index 39ac825f48c..dc3d938a426 100644 --- a/plugins/android-idea-plugin/testData/android/findUsages/wrongIdFormat/wrongIdFormat.kt +++ b/plugins/android-idea-plugin/testData/android/findUsages/wrongIdFormat/wrongIdFormat.kt @@ -3,7 +3,7 @@ package com.myapp import android.app.Activity import android.os.Bundle import java.io.File -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* public class MyActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) {} diff --git a/plugins/android-idea-plugin/testData/android/goto/fqNameInAttr/fqNameInAttr.kt b/plugins/android-idea-plugin/testData/android/goto/fqNameInAttr/fqNameInAttr.kt index 2ae4265ea17..8082e7a454c 100644 --- a/plugins/android-idea-plugin/testData/android/goto/fqNameInAttr/fqNameInAttr.kt +++ b/plugins/android-idea-plugin/testData/android/goto/fqNameInAttr/fqNameInAttr.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/goto/fqNameInAttrFragment/fqNameInAttrFragment.kt b/plugins/android-idea-plugin/testData/android/goto/fqNameInAttrFragment/fqNameInAttrFragment.kt index b95a39e0565..6d2ba63cd11 100644 --- a/plugins/android-idea-plugin/testData/android/goto/fqNameInAttrFragment/fqNameInAttrFragment.kt +++ b/plugins/android-idea-plugin/testData/android/goto/fqNameInAttrFragment/fqNameInAttrFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/goto/fqNameInTag/fqNameInTag.kt b/plugins/android-idea-plugin/testData/android/goto/fqNameInTag/fqNameInTag.kt index 2ae4265ea17..8082e7a454c 100644 --- a/plugins/android-idea-plugin/testData/android/goto/fqNameInTag/fqNameInTag.kt +++ b/plugins/android-idea-plugin/testData/android/goto/fqNameInTag/fqNameInTag.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/goto/fqNameInTagFragment/fqNameInTagFragment.kt b/plugins/android-idea-plugin/testData/android/goto/fqNameInTagFragment/fqNameInTagFragment.kt index b95a39e0565..6d2ba63cd11 100644 --- a/plugins/android-idea-plugin/testData/android/goto/fqNameInTagFragment/fqNameInTagFragment.kt +++ b/plugins/android-idea-plugin/testData/android/goto/fqNameInTagFragment/fqNameInTagFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/goto/multiFile/multiFile.kt b/plugins/android-idea-plugin/testData/android/goto/multiFile/multiFile.kt index 7054121e425..2bdb18572da 100644 --- a/plugins/android-idea-plugin/testData/android/goto/multiFile/multiFile.kt +++ b/plugins/android-idea-plugin/testData/android/goto/multiFile/multiFile.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.login diff --git a/plugins/android-idea-plugin/testData/android/goto/multiFileFragment/multiFileFragment.kt b/plugins/android-idea-plugin/testData/android/goto/multiFileFragment/multiFileFragment.kt index 65215c9c72d..264d3d6daf2 100644 --- a/plugins/android-idea-plugin/testData/android/goto/multiFileFragment/multiFileFragment.kt +++ b/plugins/android-idea-plugin/testData/android/goto/multiFileFragment/multiFileFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.login diff --git a/plugins/android-idea-plugin/testData/android/goto/simple/simple.kt b/plugins/android-idea-plugin/testData/android/goto/simple/simple.kt index 9686bc943ca..9f46c34cb62 100644 --- a/plugins/android-idea-plugin/testData/android/goto/simple/simple.kt +++ b/plugins/android-idea-plugin/testData/android/goto/simple/simple.kt @@ -3,7 +3,7 @@ package com.myapp import android.app.Activity import android.os.Bundle import java.io.File -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* public class MyActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) {} diff --git a/plugins/android-idea-plugin/testData/android/goto/simpleFragment/simpleFragment.kt b/plugins/android-idea-plugin/testData/android/goto/simpleFragment/simpleFragment.kt index 6a52565b000..25373a22351 100644 --- a/plugins/android-idea-plugin/testData/android/goto/simpleFragment/simpleFragment.kt +++ b/plugins/android-idea-plugin/testData/android/goto/simpleFragment/simpleFragment.kt @@ -2,7 +2,7 @@ package com.myapp import android.app.Fragment import java.io.File -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* public class MyFragment : Fragment() { override fun onResume() {} diff --git a/plugins/android-idea-plugin/testData/android/goto/simpleView/simpleView.kt b/plugins/android-idea-plugin/testData/android/goto/simpleView/simpleView.kt index 29058f35ce7..4aaa8f84102 100644 --- a/plugins/android-idea-plugin/testData/android/goto/simpleView/simpleView.kt +++ b/plugins/android-idea-plugin/testData/android/goto/simpleView/simpleView.kt @@ -1,7 +1,7 @@ package com.myapp import android.view.View -import kotlinx.android.synthetic.layout.view.* +import kotlinx.android.synthetic.main.layout.view.* fun View.a() { val button = login diff --git a/plugins/android-idea-plugin/testData/android/rename/fqNameInAttr/fqNameInAttr.kt b/plugins/android-idea-plugin/testData/android/rename/fqNameInAttr/fqNameInAttr.kt index 2ae4265ea17..8082e7a454c 100644 --- a/plugins/android-idea-plugin/testData/android/rename/fqNameInAttr/fqNameInAttr.kt +++ b/plugins/android-idea-plugin/testData/android/rename/fqNameInAttr/fqNameInAttr.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/rename/fqNameInAttrFragment/fqNameInAttrFragment.kt b/plugins/android-idea-plugin/testData/android/rename/fqNameInAttrFragment/fqNameInAttrFragment.kt index b95a39e0565..6d2ba63cd11 100644 --- a/plugins/android-idea-plugin/testData/android/rename/fqNameInAttrFragment/fqNameInAttrFragment.kt +++ b/plugins/android-idea-plugin/testData/android/rename/fqNameInAttrFragment/fqNameInAttrFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/rename/fqNameInTag/fqNameInTag.kt b/plugins/android-idea-plugin/testData/android/rename/fqNameInTag/fqNameInTag.kt index 2ae4265ea17..8082e7a454c 100644 --- a/plugins/android-idea-plugin/testData/android/rename/fqNameInTag/fqNameInTag.kt +++ b/plugins/android-idea-plugin/testData/android/rename/fqNameInTag/fqNameInTag.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/rename/fqNameInTagFragment/fqNameInTagFragment.kt b/plugins/android-idea-plugin/testData/android/rename/fqNameInTagFragment/fqNameInTagFragment.kt index b95a39e0565..6d2ba63cd11 100644 --- a/plugins/android-idea-plugin/testData/android/rename/fqNameInTagFragment/fqNameInTagFragment.kt +++ b/plugins/android-idea-plugin/testData/android/rename/fqNameInTagFragment/fqNameInTagFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.MyButton diff --git a/plugins/android-idea-plugin/testData/android/rename/multiFile/multiFile.kt b/plugins/android-idea-plugin/testData/android/rename/multiFile/multiFile.kt index 7054121e425..2bdb18572da 100644 --- a/plugins/android-idea-plugin/testData/android/rename/multiFile/multiFile.kt +++ b/plugins/android-idea-plugin/testData/android/rename/multiFile/multiFile.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Activity -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyActivity: Activity() { val button = this.login diff --git a/plugins/android-idea-plugin/testData/android/rename/multiFileFragment/multiFileFragment.kt b/plugins/android-idea-plugin/testData/android/rename/multiFileFragment/multiFileFragment.kt index 65215c9c72d..264d3d6daf2 100644 --- a/plugins/android-idea-plugin/testData/android/rename/multiFileFragment/multiFileFragment.kt +++ b/plugins/android-idea-plugin/testData/android/rename/multiFileFragment/multiFileFragment.kt @@ -1,7 +1,7 @@ package com.myapp import android.app.Fragment -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* class MyFragment: Fragment() { val button = this.login diff --git a/plugins/android-idea-plugin/testData/android/rename/simple/simple.kt b/plugins/android-idea-plugin/testData/android/rename/simple/simple.kt index 9686bc943ca..9f46c34cb62 100644 --- a/plugins/android-idea-plugin/testData/android/rename/simple/simple.kt +++ b/plugins/android-idea-plugin/testData/android/rename/simple/simple.kt @@ -3,7 +3,7 @@ package com.myapp import android.app.Activity import android.os.Bundle import java.io.File -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* public class MyActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) {} diff --git a/plugins/android-idea-plugin/testData/android/rename/simpleFragment/simpleFragment.kt b/plugins/android-idea-plugin/testData/android/rename/simpleFragment/simpleFragment.kt index 6a52565b000..25373a22351 100644 --- a/plugins/android-idea-plugin/testData/android/rename/simpleFragment/simpleFragment.kt +++ b/plugins/android-idea-plugin/testData/android/rename/simpleFragment/simpleFragment.kt @@ -2,7 +2,7 @@ package com.myapp import android.app.Fragment import java.io.File -import kotlinx.android.synthetic.layout.* +import kotlinx.android.synthetic.main.layout.* public class MyFragment : Fragment() { override fun onResume() {} diff --git a/plugins/android-idea-plugin/testData/android/rename/simpleView/simpleView.kt b/plugins/android-idea-plugin/testData/android/rename/simpleView/simpleView.kt index 29058f35ce7..4aaa8f84102 100644 --- a/plugins/android-idea-plugin/testData/android/rename/simpleView/simpleView.kt +++ b/plugins/android-idea-plugin/testData/android/rename/simpleView/simpleView.kt @@ -1,7 +1,7 @@ package com.myapp import android.view.View -import kotlinx.android.synthetic.layout.view.* +import kotlinx.android.synthetic.main.layout.view.* fun View.a() { val button = login diff --git a/plugins/android-idea-plugin/tests/org/jetbrains/kotlin/android/AbstractParserResultEqualityTest.kt b/plugins/android-idea-plugin/tests/org/jetbrains/kotlin/android/AbstractParserResultEqualityTest.kt index b951c753635..2aeb87fa847 100644 --- a/plugins/android-idea-plugin/tests/org/jetbrains/kotlin/android/AbstractParserResultEqualityTest.kt +++ b/plugins/android-idea-plugin/tests/org/jetbrains/kotlin/android/AbstractParserResultEqualityTest.kt @@ -19,20 +19,21 @@ package org.jetbrains.kotlin.android import com.intellij.openapi.module.ModuleManager import org.jetbrains.kotlin.android.synthetic.idea.TestConst import org.jetbrains.kotlin.android.synthetic.idea.res.IDESyntheticFileGenerator +import org.jetbrains.kotlin.android.synthetic.res.AndroidVariant import org.jetbrains.kotlin.android.synthetic.res.CliSyntheticFileGenerator -import kotlin.test.assertEquals public abstract class AbstractParserResultEqualityTest : KotlinAndroidTestCase() { public fun doTest(path: String) { - val project = myFixture.getProject() + val project = myFixture.project project.putUserData(TestConst.TESTDATA_PATH, path) val resDirs = getResourceDirs(path).map { myFixture.copyDirectoryToProject(it.name, it.name) "$path${it.name}/" } - val cliParser = CliSyntheticFileGenerator(project, "$path../AndroidManifest.xml", resDirs) - val ideParser = IDESyntheticFileGenerator(ModuleManager.getInstance(project).getModules()[0]) + val variants = listOf(AndroidVariant.createMainVariant(resDirs)) + val cliParser = CliSyntheticFileGenerator(project, "$path../AndroidManifest.xml", variants) + val ideParser = IDESyntheticFileGenerator(ModuleManager.getInstance(project).modules[0]) val cliResult = cliParser.getSyntheticFiles().joinToString("\n\n") val ideResult = ideParser.getSyntheticFiles().joinToString("\n\n")