diff --git a/plugins/android-idea-plugin/src/org/jetbrains/jet/plugin/android/IDEAndroidResourceManager.kt b/plugins/android-idea-plugin/src/org/jetbrains/jet/plugin/android/IDEAndroidResourceManager.kt index 8b7dd1151a7..556e272464e 100644 --- a/plugins/android-idea-plugin/src/org/jetbrains/jet/plugin/android/IDEAndroidResourceManager.kt +++ b/plugins/android-idea-plugin/src/org/jetbrains/jet/plugin/android/IDEAndroidResourceManager.kt @@ -26,6 +26,7 @@ import org.jetbrains.android.facet.AndroidFacet import org.jetbrains.jet.lang.resolve.android.AndroidManifest import com.intellij.openapi.module.ModuleManager import java.util.ArrayList +import com.intellij.openapi.vfs.VirtualFile public class IDEAndroidResourceManager(project: Project, searchPath: String?) : AndroidResourceManagerBase(project, searchPath) { @@ -33,10 +34,10 @@ public class IDEAndroidResourceManager(project: Project, searchPath: String?) : override fun getLayoutXmlFiles(): Collection { try { - val facet = getAndroidFacet() - return facet.getAllResourceDirectories() flatMap { it.findChild("layout")?.getChildren()!! map { vritualFileToPsi(it)!! } } + val directories = getAndroidFacet().getAllResourceDirectories() + return directories.flatMap { (it.findChild("layout")?.getChildren() ?: array()).map { vritualFileToPsi(it)!! } } } catch (e: NoAndroidFacetException) { - return ArrayList(0) + return listOf() } } diff --git a/plugins/android-idea-plugin/testData/android/crossParser/nolayout/res/nofiles.txt b/plugins/android-idea-plugin/testData/android/crossParser/nolayout/res/nofiles.txt new file mode 100644 index 00000000000..e7f2aca0f32 --- /dev/null +++ b/plugins/android-idea-plugin/testData/android/crossParser/nolayout/res/nofiles.txt @@ -0,0 +1 @@ +Plugin should work even if "layout" directory is missing. \ No newline at end of file diff --git a/plugins/android-idea-plugin/tests/org/jetbrains/jet/android/CrossParserTestGenerated.java b/plugins/android-idea-plugin/tests/org/jetbrains/jet/android/CrossParserTestGenerated.java index 336aba250c5..57dec5d1317 100644 --- a/plugins/android-idea-plugin/tests/org/jetbrains/jet/android/CrossParserTestGenerated.java +++ b/plugins/android-idea-plugin/tests/org/jetbrains/jet/android/CrossParserTestGenerated.java @@ -60,6 +60,12 @@ public class CrossParserTestGenerated extends AbstractCrossParserTest { doTest(fileName); } + @TestMetadata("nolayout") + public void testNolayout() throws Exception { + String fileName = JetTestUtils.navigationMetadata("plugins/android-idea-plugin/testData/android/crossParser/nolayout/"); + doTest(fileName); + } + @TestMetadata("singleFile") public void testSingleFile() throws Exception { String fileName = JetTestUtils.navigationMetadata("plugins/android-idea-plugin/testData/android/crossParser/singleFile/");