public boolean isDummyResSpec() { return getName().startsWith("APKTOOL_DUMMY_"); }
public void removeResSpec(ResResSpec spec) throws AndrolibException { mResSpecs.remove(spec.getName()); }
public String getValue() throws AndrolibException { if (value == null) { value = ref.getReferent().getName(); } return value; } }
private String decodeValue(int value) throws AndrolibException { String value2 = mItemsCache.get(value); if (value2 == null) { ResReferenceValue ref = null; for (Duo<ResReferenceValue, ResIntValue> duo : mItems) { if (duo.m2.getValue() == value) { ref = duo.m1; break; } } if (ref != null) { value2 = ref.getReferent().getName(); mItemsCache.put(value, value2); } } return value2; }
public String decodeManifestAttr(int attrResId) throws AndrolibException { if (attrResId != 0) { ResResSpec resResSpec = getCurrentPackage().getResTable().getResSpec(attrResId); if (resResSpec != null) { return resResSpec.getName(); } } return null; }
@Override protected void serializeBody(XmlSerializer serializer, ResResource res) throws AndrolibException, IOException { for (Duo<ResReferenceValue, ResIntValue> duo : mItems) { int intVal = duo.m2.getValue(); serializer.startTag(null, "enum"); serializer.attribute(null, "name", duo.m1.getReferent().getName()); serializer.attribute(null, "value", String.valueOf(intVal)); serializer.endTag(null, "enum"); } }
public String getFilePath() { return mResSpec.getType().getName() + mConfig.getFlags().getQualifiers() + "/" + mResSpec.getName(); }
public String getFullName(boolean excludePackage, boolean excludeType) { return (excludePackage ? "" : getPackage().getName() + ":") + (excludeType ? "" : getType().getName() + "/") + getName(); }
serializer.attribute(null, "type", type); serializer.attribute(null, "name", res.getResSpec().getName());
@Override public void serializeToResValuesXml(XmlSerializer serializer, ResResource res) throws IOException, AndrolibException { String type = getTypeAsString(); serializer.startTag(null, "attr"); serializer.attribute(null, "name", res.getResSpec().getName()); if (type != null) { serializer.attribute(null, "format", type); } if (mMin != null) { serializer.attribute(null, "min", mMin.toString()); } if (mMax != null) { serializer.attribute(null, "max", mMax.toString()); } if (mL10n != null && mL10n) { serializer.attribute(null, "localization", "suggested"); } serializeBody(serializer, res); serializer.endTag(null, "attr"); }
@Override public void serializeToResValuesXml(XmlSerializer serializer, ResResource res) throws IOException, AndrolibException { serializer.startTag(null, "item"); serializer .attribute(null, "type", res.getResSpec().getType().getName()); serializer.attribute(null, "name", res.getResSpec().getName()); serializer.endTag(null, "item"); } }
@Override public void serializeToResValuesXml(XmlSerializer serializer, ResResource res) throws IOException, AndrolibException { String type = res.getResSpec().getType().getName(); if ("style".equals(type)) { new ResStyleValue(mParent, new Duo[0], null) .serializeToResValuesXml(serializer, res); return; } if ("array".equals(type)) { new ResArrayValue(mParent, new Duo[0]).serializeToResValuesXml( serializer, res); return; } if ("plurals".equals(type)) { new ResPluralsValue(mParent, new Duo[0]).serializeToResValuesXml( serializer, res); return; } serializer.startTag(null, "item"); serializer.attribute(null, "type", type); serializer.attribute(null, "name", res.getResSpec().getName()); serializer.endTag(null, "item"); }
private void generatePublicXml(ResPackage pkg, Directory out, XmlSerializer serial) throws AndrolibException { try { OutputStream outStream = out.getFileOutput("values/public.xml"); serial.setOutput(outStream, null); serial.startDocument(null, null); serial.startTag(null, "resources"); for (ResResSpec spec : pkg.listResSpecs()) { serial.startTag(null, "public"); serial.attribute(null, "type", spec.getType().getName()); serial.attribute(null, "name", spec.getName()); serial.attribute(null, "id", String.format("0x%08x", spec.getId().id)); serial.endTag(null, "public"); } serial.endTag(null, "resources"); serial.endDocument(); serial.flush(); outStream.close(); } catch (IOException | DirectoryException ex) { throw new AndrolibException("Could not generate public.xml file", ex); } }
@Override public void serializeToResValuesXml(XmlSerializer serializer, ResResource res) throws IOException, AndrolibException { serializer.startTag(null, "plurals"); serializer.attribute(null, "name", res.getResSpec().getName()); for (int i = 0; i < mItems.length; i++) { ResScalarValue item = mItems[i]; if (item == null) { continue; } serializer.startTag(null, "item"); serializer.attribute(null, "quantity", QUANTITY_MAP[i]); serializer.text(ResXmlEncoders.enumerateNonPositionalSubstitutionsIfRequired(item.encodeAsResXmlNonEscapedItemValue())); serializer.endTag(null, "item"); } serializer.endTag(null, "plurals"); }
ResResource res) throws IOException, AndrolibException { serializer.startTag(null, "style"); serializer.attribute(null, "name", res.getResSpec().getName()); if (!mParent.isNull() && !mParent.referentIsNull()) { serializer.attribute(null, "parent", mParent.encodeAsResXmlAttr()); } else if (res.getResSpec().getName().indexOf('.') != -1) { serializer.attribute(null, "parent", "");
@Override public void serializeToResValuesXml(XmlSerializer serializer, ResResource res) throws IOException, AndrolibException { String type = getType(); type = (type == null ? "" : type + "-") + "array"; serializer.startTag(null, type); serializer.attribute(null, "name", res.getResSpec().getName()); // lets check if we need to add formatted="false" to this array for (int i = 0; i < mItems.length; i++) { if (mItems[i].hasMultipleNonPositionalSubstitutions()) { serializer.attribute(null, "formatted", "false"); break; } } // add <item>'s for (int i = 0; i < mItems.length; i++) { serializer.startTag(null, "item"); serializer.text(mItems[i].encodeAsResXmlNonEscapedItemValue()); serializer.endTag(null, "item"); } serializer.endTag(null, type); }