Simplify Android facet resolving in IDEAndroidResourceManager

This commit is contained in:
Yan Zhulanow
2014-12-05 15:39:39 +03:00
parent edac24df74
commit 5590848843
@@ -30,28 +30,24 @@ import com.intellij.openapi.vfs.VirtualFile
public class IDEAndroidResourceManager(project: Project, searchPath: String?) : AndroidResourceManagerBase(project, searchPath) { public class IDEAndroidResourceManager(project: Project, searchPath: String?) : AndroidResourceManagerBase(project, searchPath) {
private class NoAndroidFacetException: Exception("No android facet found in project")
override fun getLayoutXmlFiles(): Collection<PsiFile> { override fun getLayoutXmlFiles(): Collection<PsiFile> {
try { val directories = getAndroidFacet()?.getAllResourceDirectories() ?: listOf()
val directories = getAndroidFacet().getAllResourceDirectories() return directories.flatMap {
return directories.flatMap { (it.findChild("layout")?.getChildren() ?: array<VirtualFile>()).map { virtualFileToPsi(it)!! } } (it.findChild("layout")?.getChildren() ?: array<VirtualFile>()).map { virtualFileToPsi(it)!! }
} catch (e: NoAndroidFacetException) {
return listOf()
} }
} }
private fun getAndroidFacet(): AndroidFacet { private fun getAndroidFacet(): AndroidFacet? {
for (module in ModuleManager.getInstance(project).getModules()) { for (module in ModuleManager.getInstance(project).getModules()) {
val facet = AndroidFacet.getInstance(module) val facet = AndroidFacet.getInstance(module)
if (facet != null) return facet if (facet != null) return facet
} }
throw NoAndroidFacetException() return null
} }
override fun readManifest(): AndroidManifest { override fun readManifest(): AndroidManifest {
val facet = getAndroidFacet() val facet = getAndroidFacet()
val attributeValue = facet.getManifest()!!.getPackage() val attributeValue = facet?.getManifest()!!.getPackage()
return AndroidManifest(attributeValue!!.getRawText()!!) return AndroidManifest(attributeValue!!.getRawText()!!)
} }