From be4bdf1d756b5e3401f49c9b446fc26bc63a14fe Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Mon, 14 Dec 2015 07:00:12 -0600 Subject: [PATCH] Adds support for DATA_NULL_EMPTY --- .../src/main/java/android/util/TypedValue.java | 11 +++++++++++ .../brut/androlib/res/data/value/ResValueFactory.java | 3 +++ 2 files changed, 14 insertions(+) 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 2498e486..29e56c9d 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 @@ -180,6 +180,17 @@ public class TypedValue { /* ------------------------------------------------------------ */ + /** + * {@link #TYPE_NULL} data indicating the value was not specified. + */ + public static final int DATA_NULL_UNDEFINED = 0; + /** + * {@link #TYPE_NULL} data indicating the value was explicitly set to null. + */ + public static final int DATA_NULL_EMPTY = 1; + + /* ------------------------------------------------------------ */ + /** * If {@link #density} is equal to this value, then the density should be * treated as the system's default density value: 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 43a3f2e5..a8bb9453 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 @@ -35,6 +35,9 @@ public class ResValueFactory { throws AndrolibException { switch (type) { case TypedValue.TYPE_NULL: + if (value == TypedValue.DATA_NULL_EMPTY) { // Special case $empty as explicitly defined empty value + return new ResStringValue(null, value); + } return new ResReferenceValue(mPackage, 0, null); case TypedValue.TYPE_REFERENCE: return newReference(value, rawValue);