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) {
super(parent);
mItems = new String[6];
mItems = new ResStringValue[6];
for (int i = 0; i < items.length; i++) {
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
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++) {
String item = mItems[i];
ResStringValue item = mItems[i];
if (item == null) {
continue;
}
serializer.startTag(null, "item");
serializer.attribute(null, "quantity", QUANTITY_MAP[i]);
serializer.text(item);
serializer.text(item.encodeAsResXmlValue());
serializer.endTag(null, "item");
}
serializer.endTag(null, "plurals");
}
private final String[] mItems;
private final ResStringValue[] mItems;
public static final int BAG_KEY_PLURALS_START = 0x01000004;