From bfb08b2f74c3c897c866fa92d3de74971e98c684 Mon Sep 17 00:00:00 2001 From: Eugene Kudelevsky Date: Tue, 19 Jun 2012 16:16:21 +0400 Subject: [PATCH] IDEA-86404 android-apt: add styleable attrs to validity state --- .../compiler/ResourceNamesValidityState.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/plugins/android/src/org/jetbrains/android/compiler/ResourceNamesValidityState.java b/plugins/android/src/org/jetbrains/android/compiler/ResourceNamesValidityState.java index 3cd624e19740..1be06afcae31 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/ResourceNamesValidityState.java +++ b/plugins/android/src/org/jetbrains/android/compiler/ResourceNamesValidityState.java @@ -11,6 +11,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileFilter; import com.intellij.util.ArrayUtil; import com.intellij.util.containers.HashMap; +import org.jetbrains.android.dom.resources.DeclareStyleable; import org.jetbrains.android.dom.resources.ResourceElement; import org.jetbrains.android.dom.resources.Resources; import org.jetbrains.android.facet.AndroidFacet; @@ -58,10 +59,19 @@ public class ResourceNamesValidityState implements ValidityState { final VirtualFile file = pair.getSecond(); for (final ResourceType resType : AndroidResourceUtil.VALUE_RESOURCE_TYPES) { - addValueResources(file, resType, AndroidResourceUtil.getValueResourcesFromElement(resType.getName(), resources), myResources); + addValueResources(file, resType, AndroidResourceUtil.getValueResourcesFromElement(resType.getName(), resources), myResources, ""); + } + addValueResources(file, ResourceType.ATTR, resources.getAttrs(), myResources, ""); + final List styleables = resources.getDeclareStyleables(); + addValueResources(file, ResourceType.DECLARE_STYLEABLE, styleables, myResources, ""); + + for (DeclareStyleable styleable : styleables) { + final String styleableName = styleable.getName().getValue(); + + if (styleableName != null) { + addValueResources(file, ResourceType.DECLARE_STYLEABLE, styleable.getAttrs(), myResources, styleableName + '_'); + } } - addValueResources(file, ResourceType.ATTR, resources.getAttrs(), myResources); - addValueResources(file, ResourceType.DECLARE_STYLEABLE, resources.getDeclareStyleables(), myResources); } for (final VirtualFile subdir : manager.getResourceSubdirs(null)) { @@ -94,7 +104,8 @@ public class ResourceNamesValidityState implements ValidityState { private static void addValueResources(VirtualFile file, ResourceType resType, Collection resourceElements, - Map result) { + Map result, + String namePrefix) { for (ResourceElement element : resourceElements) { final String name = element.getName().getValue(); @@ -104,7 +115,7 @@ public class ResourceNamesValidityState implements ValidityState { data = new ResourceFileData(); result.put(file.getPath(), data); } - data.addValueResource(new ResourceEntry(resType.getName(), name)); + data.addValueResource(new ResourceEntry(resType.getName(), namePrefix + name)); } } }