diff --git a/brut.apktool/apktool-lib/src/main/java/android/util/TypedValue.java b/brut.apktool/apktool-lib/src/main/java/android/util/TypedValue.java index 3496aa40..2498e486 100644 --- a/brut.apktool/apktool-lib/src/main/java/android/util/TypedValue.java +++ b/brut.apktool/apktool-lib/src/main/java/android/util/TypedValue.java @@ -51,7 +51,11 @@ public class TypedValue { * container. */ public static final int TYPE_FRACTION = 0x06; - + /** + * The data holds a dynamic res table reference, which needs to be + * resolved before it can be used like TYPE_REFERENCE + */ + public static final int TYPE_DYNAMIC_REFERENCE = 0x07; /** * Identifies the start of plain integer values. Any type value from this to * {@link #TYPE_LAST_INT} means the data field holds a generic diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResValueFactory.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResValueFactory.java index 0a1c4f82..fd877636 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResValueFactory.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResValueFactory.java @@ -48,6 +48,8 @@ public class ResValueFactory { return new ResFractionValue(value, rawValue); case TypedValue.TYPE_INT_BOOLEAN: return new ResBoolValue(value != 0, rawValue); + case TypedValue.TYPE_DYNAMIC_REFERENCE: + return newReference(value, rawValue); } if (type >= TypedValue.TYPE_FIRST_COLOR_INT