Fix "unresolved widget fqname" bug in Gradle

This commit is contained in:
Yan Zhulanow
2015-09-17 13:10:10 +03:00
parent 07b77432de
commit b73f91d16b
15 changed files with 58 additions and 46 deletions
@@ -25,8 +25,8 @@ import com.intellij.psi.util.CachedValueProvider.Result
import org.jetbrains.kotlin.android.synthetic.AndroidConst
import org.jetbrains.kotlin.android.synthetic.idea.AndroidPsiTreeChangePreprocessor
import org.jetbrains.kotlin.android.synthetic.idea.AndroidXmlVisitor
import org.jetbrains.kotlin.android.synthetic.parseAndroidResource
import org.jetbrains.kotlin.android.synthetic.res.AndroidResource
import org.jetbrains.kotlin.android.synthetic.res.AndroidWidget
import org.jetbrains.kotlin.android.synthetic.res.SyntheticFileGenerator
import org.jetbrains.kotlin.psi.JetFile
@@ -62,6 +62,12 @@ class IDESyntheticFileGenerator(val module: Module) : SyntheticFileGenerator(mod
return filterDuplicates(widgets)
}
override fun parseAndroidWidget(id: String, tag: String, fqNameResolver: (String) -> String?): AndroidResource {
val fqName = fqNameResolver(tag)
val invalidType = if (fqName != null) null else tag
return AndroidWidget(id, fqName ?: AndroidConst.VIEW_FQNAME, invalidType)
}
override fun checkIfClassExist(fqName: String): Boolean {
val moduleScope = module.getModuleWithDependenciesAndLibrariesScope(false)
return JavaPsiFacade.getInstance(module.project).findClass(fqName, moduleScope) != null