fix spacing in ResArrayValue

This commit is contained in:
Connor Tumbleson 2013-11-23 08:35:08 -06:00
parent e91790e676
commit a1ca5019d8

View File

@ -29,65 +29,65 @@ import org.xmlpull.v1.XmlSerializer;
* @author Ryszard Wiśniewski <brut.alll@gmail.com> * @author Ryszard Wiśniewski <brut.alll@gmail.com>
*/ */
public class ResArrayValue extends ResBagValue implements public class ResArrayValue extends ResBagValue implements
ResValuesXmlSerializable { ResValuesXmlSerializable {
private String mRawItems; private String mRawItems;
ResArrayValue(ResReferenceValue parent, Duo<Integer, ResScalarValue>[] items) { ResArrayValue(ResReferenceValue parent, Duo<Integer, ResScalarValue>[] items) {
super(parent); super(parent);
mItems = new ResScalarValue[items.length]; mItems = new ResScalarValue[items.length];
for (int i = 0; i < items.length; i++) { for (int i = 0; i < items.length; i++) {
mItems[i] = items[i].m2; mItems[i] = items[i].m2;
} }
} }
public ResArrayValue(ResReferenceValue parent, ResScalarValue[] items) { public ResArrayValue(ResReferenceValue parent, ResScalarValue[] items) {
super(parent); super(parent);
mItems = items; mItems = items;
} }
@Override @Override
public void serializeToResValuesXml(XmlSerializer serializer, public void serializeToResValuesXml(XmlSerializer serializer,
ResResource res) throws IOException, AndrolibException { ResResource res) throws IOException, AndrolibException {
String type = getType(); String type = getType();
type = (type == null ? "" : type + "-") + "array"; type = (type == null ? "" : type + "-") + "array";
serializer.startTag(null, type); serializer.startTag(null, type);
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++) {
serializer.startTag(null, "item"); serializer.startTag(null, "item");
serializer.text(mItems[i].encodeAsResXmlNonEscapedItemValue()); serializer.text(mItems[i].encodeAsResXmlNonEscapedItemValue());
serializer.endTag(null, "item"); serializer.endTag(null, "item");
} }
serializer.endTag(null, type); serializer.endTag(null, type);
} }
public String getType() throws AndrolibException { public String getType() throws AndrolibException {
if (mItems.length == 0) { if (mItems.length == 0) {
return null; return null;
} }
String type = mItems[0].getType(); String type = mItems[0].getType();
for (int i = 1; i < mItems.length; i++) { for (int i = 1; i < mItems.length; i++) {
if (mItems[i].encodeAsResXmlItemValue().startsWith("@string")) { if (mItems[i].encodeAsResXmlItemValue().startsWith("@string")) {
return "string"; return "string";
} else if (mItems[i].encodeAsResXmlItemValue().startsWith("@drawable")) { } else if (mItems[i].encodeAsResXmlItemValue().startsWith("@drawable")) {
return null; return null;
} else if (mItems[i].encodeAsResXmlItemValue().startsWith("@integer")) { } else if (mItems[i].encodeAsResXmlItemValue().startsWith("@integer")) {
return "integer"; return "integer";
} else if (!"string".equals(type) && !"integer".equals(type)) { } else if (!"string".equals(type) && !"integer".equals(type)) {
return null; return null;
} else if (!type.equals(mItems[i].getType())) { } else if (!type.equals(mItems[i].getType())) {
return null; return null;
} }
} }
if (!Arrays.asList(AllowedArrayTypes).contains(type)) { if (!Arrays.asList(AllowedArrayTypes).contains(type)) {
return "string"; return "string";
} }
return type; return type;
} }
private final ResScalarValue[] mItems; private final ResScalarValue[] mItems;
private final String AllowedArrayTypes[] = {"string", "integer"}; private final String AllowedArrayTypes[] = {"string", "integer"};
public static final int BAG_KEY_ARRAY_START = 0x02000000; public static final int BAG_KEY_ARRAY_START = 0x02000000;
} }