Fix a bug when no "layout" folders exist
This commit is contained in:
+4
-3
@@ -26,6 +26,7 @@ import org.jetbrains.android.facet.AndroidFacet
|
|||||||
import org.jetbrains.jet.lang.resolve.android.AndroidManifest
|
import org.jetbrains.jet.lang.resolve.android.AndroidManifest
|
||||||
import com.intellij.openapi.module.ModuleManager
|
import com.intellij.openapi.module.ModuleManager
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
|
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) {
|
||||||
|
|
||||||
@@ -33,10 +34,10 @@ public class IDEAndroidResourceManager(project: Project, searchPath: String?) :
|
|||||||
|
|
||||||
override fun getLayoutXmlFiles(): Collection<PsiFile> {
|
override fun getLayoutXmlFiles(): Collection<PsiFile> {
|
||||||
try {
|
try {
|
||||||
val facet = getAndroidFacet()
|
val directories = getAndroidFacet().getAllResourceDirectories()
|
||||||
return facet.getAllResourceDirectories() flatMap { it.findChild("layout")?.getChildren()!! map { vritualFileToPsi(it)!! } }
|
return directories.flatMap { (it.findChild("layout")?.getChildren() ?: array<VirtualFile>()).map { vritualFileToPsi(it)!! } }
|
||||||
} catch (e: NoAndroidFacetException) {
|
} catch (e: NoAndroidFacetException) {
|
||||||
return ArrayList(0)
|
return listOf()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
Plugin should work even if "layout" directory is missing.
|
||||||
+6
@@ -60,6 +60,12 @@ public class CrossParserTestGenerated extends AbstractCrossParserTest {
|
|||||||
doTest(fileName);
|
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")
|
@TestMetadata("singleFile")
|
||||||
public void testSingleFile() throws Exception {
|
public void testSingleFile() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("plugins/android-idea-plugin/testData/android/crossParser/singleFile/");
|
String fileName = JetTestUtils.navigationMetadata("plugins/android-idea-plugin/testData/android/crossParser/singleFile/");
|
||||||
|
|||||||
Reference in New Issue
Block a user