ResPluralsValue: don't encode values in constructor, but in serializeToResValuesXml().

This may speed up loading of frameworks.
This commit is contained in:
Ryszard Wiśniewski 2011-05-14 13:14:44 +02:00
parent 1042a72958
commit f53971f09f

View File

@ -31,38 +31,33 @@ public class ResPluralsValue extends ResBagValue implements ResValuesXmlSerializ
Duo<Integer, ResScalarValue>[] items) { Duo<Integer, ResScalarValue>[] items) {
super(parent); super(parent);
mItems = new String[6]; mItems = new ResStringValue[6];
for (int i = 0; i < items.length; i++) { for (int i = 0; i < items.length; i++) {
mItems[items[i].m1 - BAG_KEY_PLURALS_START] = mItems[items[i].m1 - BAG_KEY_PLURALS_START] =
((ResStringValue) items[i].m2).encodeAsResXmlValue(); (ResStringValue) items[i].m2;
} }
} }
public ResPluralsValue(ResReferenceValue parent, String[] items) {
super(parent);
mItems = items;
}
@Override @Override
public void serializeToResValuesXml(XmlSerializer serializer, ResResource res) public void serializeToResValuesXml(XmlSerializer serializer, ResResource res)
throws IOException, AndrolibException { throws IOException, AndrolibException {
serializer.startTag(null, "plurals"); serializer.startTag(null, "plurals");
serializer.attribute(null, "name", res.getResSpec().getName()); serializer.attribute(null, "name", res.getResSpec().getName());
for (int i = 0; i < mItems.length; i++) { for (int i = 0; i < mItems.length; i++) {
String item = mItems[i]; ResStringValue item = mItems[i];
if (item == null) { if (item == null) {
continue; continue;
} }
serializer.startTag(null, "item"); serializer.startTag(null, "item");
serializer.attribute(null, "quantity", QUANTITY_MAP[i]); serializer.attribute(null, "quantity", QUANTITY_MAP[i]);
serializer.text(item); serializer.text(item.encodeAsResXmlValue());
serializer.endTag(null, "item"); serializer.endTag(null, "item");
} }
serializer.endTag(null, "plurals"); serializer.endTag(null, "plurals");
} }
private final String[] mItems; private final ResStringValue[] mItems;
public static final int BAG_KEY_PLURALS_START = 0x01000004; public static final int BAG_KEY_PLURALS_START = 0x01000004;