diff --git a/src/brut/androlib/res/AndrolibResources.java b/src/brut/androlib/res/AndrolibResources.java index 187ef3ff..d7114d4e 100644 --- a/src/brut/androlib/res/AndrolibResources.java +++ b/src/brut/androlib/res/AndrolibResources.java @@ -212,7 +212,9 @@ final public class AndrolibResources { serial.startTag(null, "resources"); for (ResResource res : valuesFile.listResources()) { - + if (valuesFile.isSynthesized(res)) { + continue; + } ((ResXmlSerializable) res.getValue()) .serializeToXml(serial, res); } diff --git a/src/brut/androlib/res/data/ResPackage.java b/src/brut/androlib/res/data/ResPackage.java index f2d10081..810880c5 100644 --- a/src/brut/androlib/res/data/ResPackage.java +++ b/src/brut/androlib/res/data/ResPackage.java @@ -42,6 +42,7 @@ public class ResPackage { private final Set mFiles = new LinkedHashSet(); private final Map, ResValuesFile> mValuesFiles = new LinkedHashMap, ResValuesFile>(); + private final Set mSynthesizedRes = new HashSet(); private ResValueFactory mValueFactory; @@ -119,6 +120,10 @@ public class ResPackage { return mName; } + boolean isSynthesized(ResID resId) { + return mSynthesizedRes.contains(resId); + } + public void addResSpec(ResResSpec spec) throws AndrolibException { if (mResSpecs.put(spec.getId(), spec) != null) { throw new AndrolibException("Multiple resource specs: " + spec); @@ -149,13 +154,17 @@ public class ResPackage { new Duo(type, config); ResValuesFile values = mValuesFiles.get(key); if (values == null) { - values = new ResValuesFile(type, config); + values = new ResValuesFile(this, type, config); mValuesFiles.put(key, values); } values.addResource(res); } } + public void addSynthesizedRes(int resId) { + mSynthesizedRes.add(new ResID(resId)); + } + @Override public String toString() { return mName; diff --git a/src/brut/androlib/res/data/ResValuesFile.java b/src/brut/androlib/res/data/ResValuesFile.java index 85c5699c..246c7f15 100644 --- a/src/brut/androlib/res/data/ResValuesFile.java +++ b/src/brut/androlib/res/data/ResValuesFile.java @@ -24,12 +24,14 @@ import java.util.Set; * @author Ryszard Wiśniewski */ public class ResValuesFile { + private final ResPackage mPackage; private final ResType mType; private final ResConfig mConfig; private final Set mResources = new LinkedHashSet(); - public ResValuesFile(ResType type, ResConfig config) { + public ResValuesFile(ResPackage pkg, ResType type, ResConfig config) { + this.mPackage = pkg; this.mType = type; this.mConfig = config; } @@ -53,6 +55,10 @@ public class ResValuesFile { return mConfig; } + public boolean isSynthesized(ResResource res) { + return mPackage.isSynthesized(res.getResSpec().getId()); + } + public void addResource(ResResource res) { mResources.add(res); }