private static String getParentStyleName(StyleData style) { if (style == null) { return null; } String parent = style.getParent(); if (parent == null || parent.isEmpty()) { parent = null; String name = style.getName(); if (name.contains(".")) { parent = name.substring(0, name.lastIndexOf('.')); if (parent.isEmpty()) { return null; } } } return parent; }
@Override public void onEnd(XMLStreamReader xml, XmlContext xmlContext) throws XMLStreamException { String styleParent = parent; if (styleParent == null) { int lastDot = name.lastIndexOf('.'); if (lastDot != -1) { styleParent = name.substring(0, lastDot); } } StyleData styleData = new StyleData(xmlContext.getPackageName(), name, styleParent, attributeResources); resourceTable.addResource("style", styleData.getName(), new TypedResource<>(styleData, resType, xmlContext)); } }
@Test public void testStyleDataIsLoadedCorrectly() throws Exception { TypedResource typedResource = resourceTable.getValue(new ResName("android", "style", "Theme_Holo"), new ResTable_config()); StyleData styleData = (StyleData) typedResource.getData(); assertThat(styleData.getName()).isEqualTo("Theme_Holo"); assertThat(styleData.getParent()).isEqualTo("Theme"); assertThat(styleData.getPackageName()).isEqualTo("android"); assertThat(styleData.getAttrValue(new ResName("android", "attr", "colorForeground")).value) .isEqualTo("@android:color/bright_foreground_holo_dark"); } }
private static String getParentStyleName(StyleData style) { if (style == null) { return null; } String parent = style.getParent(); if (parent == null || parent.isEmpty()) { parent = null; String name = style.getName(); if (name.contains(".")) { parent = name.substring(0, name.lastIndexOf('.')); if (parent.isEmpty()) { return null; } } } return parent; }
private static String getParentStyleName(StyleData style) { if (style == null) { return null; } String parent = style.getParent(); if (parent == null || parent.isEmpty()) { parent = null; String name = style.getName(); if (name.contains(".")) { parent = name.substring(0, name.lastIndexOf('.')); if (parent.isEmpty()) { return null; } } } return parent; }
@Override public void onEnd(XMLStreamReader xml, XmlContext xmlContext) throws XMLStreamException { String styleParent = parent; if (styleParent == null) { int lastDot = name.lastIndexOf('.'); if (lastDot != -1) { styleParent = name.substring(0, lastDot); } } StyleData styleData = new StyleData(xmlContext.getPackageName(), name, styleParent, attributeResources); resourceTable.addResource("style", styleData.getName(), new TypedResource<>(styleData, resType, xmlContext)); } }
@Override public void onEnd(XMLStreamReader xml, XmlContext xmlContext) throws XMLStreamException { String styleParent = parent; if (styleParent == null) { int lastDot = name.lastIndexOf('.'); if (lastDot != -1) { styleParent = name.substring(0, lastDot); } } String styleNameWithUnderscores = underscorize(name); StyleData styleData = new StyleData(xmlContext.getPackageName(), styleNameWithUnderscores, underscorize(styleParent), attributeResources); resourceTable.addResource("style", styleData.getName(), new TypedResource<>(styleData, resType, xmlContext)); }