From 9fd97ca9a549c06d483037d8a6b8f1e7dd9fe088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ryszard=20Wi=C5=9Bniewski?= Date: Tue, 10 May 2011 17:13:54 +0200 Subject: [PATCH] ResStringValue: added support for strings which require formatted="false". --- .../res/data/value/ResStringValue.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/apktool-lib/src/main/java/brut/androlib/res/data/value/ResStringValue.java b/apktool-lib/src/main/java/brut/androlib/res/data/value/ResStringValue.java index ff769545..bd585302 100644 --- a/apktool-lib/src/main/java/brut/androlib/res/data/value/ResStringValue.java +++ b/apktool-lib/src/main/java/brut/androlib/res/data/value/ResStringValue.java @@ -17,7 +17,10 @@ package brut.androlib.res.data.value; import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResource; import brut.androlib.res.xml.ResXmlEncoders; +import java.io.IOException; +import org.xmlpull.v1.XmlSerializer; /** * @author Ryszard Wiśniewski @@ -46,4 +49,19 @@ public class ResStringValue extends ResScalarValue { protected String encodeAsResXml() throws AndrolibException { throw new UnsupportedOperationException(); } + + @Override + protected void serializeExtraXmlAttrs(XmlSerializer serializer, + ResResource res) throws IOException { + int pos = 0; + int count = 0; + while((pos = mRawValue.indexOf('%', pos)) != -1) { + if (mRawValue.charAt(pos + 1) != '%') { + if (++count >= 2) { + serializer.attribute(null, "formatted", "false"); + return; + } + } + } + } }