From 554591a339360dd6af6b5cc4f5aa5eeda7a5c3b1 Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Thu, 20 Nov 2014 20:36:15 -0600 Subject: [PATCH] added support for TYPE_DYNAMIC_REFERENCE --- .../apktool-lib/src/main/java/android/util/TypedValue.java | 6 +++++- .../java/brut/androlib/res/data/value/ResValueFactory.java | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) 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