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 5e364c67..3496aa40 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
@@ -21,281 +21,276 @@ package android.util;
* {@link android.content.res.Resources} for holding resource values.
*/
public class TypedValue {
- /** The value contains no data. */
- public static final int TYPE_NULL = 0x00;
+ /** The value contains no data. */
+ public static final int TYPE_NULL = 0x00;
- /** The data field holds a resource identifier. */
- public static final int TYPE_REFERENCE = 0x01;
- /**
- * The data field holds an attribute resource identifier
- * (referencing an attribute in the current theme style, not a resource
- * entry).
- */
- public static final int TYPE_ATTRIBUTE = 0x02;
- /**
- * The string field holds string data. In addition, if
- * data is non-zero then it is the string block index of the
- * string and assetCookie is the set of assets the string came
- * from.
- */
- public static final int TYPE_STRING = 0x03;
- /** The data field holds an IEEE 754 floating point number. */
- public static final int TYPE_FLOAT = 0x04;
- /**
- * The data field holds a complex number encoding a dimension
- * value.
- */
- public static final int TYPE_DIMENSION = 0x05;
- /**
- * The data field holds a complex number encoding a fraction of a
- * container.
- */
- public static final int TYPE_FRACTION = 0x06;
+ /** The data field holds a resource identifier. */
+ public static final int TYPE_REFERENCE = 0x01;
+ /**
+ * The data field holds an attribute resource identifier
+ * (referencing an attribute in the current theme style, not a resource
+ * entry).
+ */
+ public static final int TYPE_ATTRIBUTE = 0x02;
+ /**
+ * The string field holds string data. In addition, if
+ * data is non-zero then it is the string block index of the
+ * string and assetCookie is the set of assets the string came
+ * from.
+ */
+ public static final int TYPE_STRING = 0x03;
+ /** The data field holds an IEEE 754 floating point number. */
+ public static final int TYPE_FLOAT = 0x04;
+ /**
+ * The data field holds a complex number encoding a dimension
+ * value.
+ */
+ public static final int TYPE_DIMENSION = 0x05;
+ /**
+ * The data field holds a complex number encoding a fraction of a
+ * container.
+ */
+ public static final int TYPE_FRACTION = 0x06;
- /**
- * Identifies the start of plain integer values. Any type value from this to
- * {@link #TYPE_LAST_INT} means the data field holds a generic
- * integer value.
- */
- public static final int TYPE_FIRST_INT = 0x10;
+ /**
+ * Identifies the start of plain integer values. Any type value from this to
+ * {@link #TYPE_LAST_INT} means the data field holds a generic
+ * integer value.
+ */
+ public static final int TYPE_FIRST_INT = 0x10;
- /**
- * The data field holds a number that was originally specified in
- * decimal.
- */
- public static final int TYPE_INT_DEC = 0x10;
- /**
- * The data field holds a number that was originally specified in
- * hexadecimal (0xn).
- */
- public static final int TYPE_INT_HEX = 0x11;
- /**
- * The data field holds 0 or 1 that was originally specified as
- * "false" or "true".
- */
- public static final int TYPE_INT_BOOLEAN = 0x12;
+ /**
+ * The data field holds a number that was originally specified in
+ * decimal.
+ */
+ public static final int TYPE_INT_DEC = 0x10;
+ /**
+ * The data field holds a number that was originally specified in
+ * hexadecimal (0xn).
+ */
+ public static final int TYPE_INT_HEX = 0x11;
+ /**
+ * The data field holds 0 or 1 that was originally specified as
+ * "false" or "true".
+ */
+ public static final int TYPE_INT_BOOLEAN = 0x12;
- /**
- * Identifies the start of integer values that were specified as color
- * constants (starting with '#').
- */
- public static final int TYPE_FIRST_COLOR_INT = 0x1c;
+ /**
+ * Identifies the start of integer values that were specified as color
+ * constants (starting with '#').
+ */
+ public static final int TYPE_FIRST_COLOR_INT = 0x1c;
- /**
- * The data field holds a color that was originally specified as
- * #aarrggbb.
- */
- public static final int TYPE_INT_COLOR_ARGB8 = 0x1c;
- /**
- * The data field holds a color that was originally specified as
- * #rrggbb.
- */
- public static final int TYPE_INT_COLOR_RGB8 = 0x1d;
- /**
- * The data field holds a color that was originally specified as
- * #argb.
- */
- public static final int TYPE_INT_COLOR_ARGB4 = 0x1e;
- /**
- * The data field holds a color that was originally specified as
- * #rgb.
- */
- public static final int TYPE_INT_COLOR_RGB4 = 0x1f;
+ /**
+ * The data field holds a color that was originally specified as
+ * #aarrggbb.
+ */
+ public static final int TYPE_INT_COLOR_ARGB8 = 0x1c;
+ /**
+ * The data field holds a color that was originally specified as
+ * #rrggbb.
+ */
+ public static final int TYPE_INT_COLOR_RGB8 = 0x1d;
+ /**
+ * The data field holds a color that was originally specified as
+ * #argb.
+ */
+ public static final int TYPE_INT_COLOR_ARGB4 = 0x1e;
+ /**
+ * The data field holds a color that was originally specified as
+ * #rgb.
+ */
+ public static final int TYPE_INT_COLOR_RGB4 = 0x1f;
- /**
- * Identifies the end of integer values that were specified as color
- * constants.
- */
- public static final int TYPE_LAST_COLOR_INT = 0x1f;
+ /**
+ * Identifies the end of integer values that were specified as color
+ * constants.
+ */
+ public static final int TYPE_LAST_COLOR_INT = 0x1f;
- /** Identifies the end of plain integer values. */
- public static final int TYPE_LAST_INT = 0x1f;
+ /** Identifies the end of plain integer values. */
+ public static final int TYPE_LAST_INT = 0x1f;
/* ------------------------------------------------------------ */
- /** Complex data: bit location of unit information. */
- public static final int COMPLEX_UNIT_SHIFT = 0;
- /**
- * Complex data: mask to extract unit information (after shifting by
- * {@link #COMPLEX_UNIT_SHIFT}). This gives us 16 possible types, as defined
- * below.
- */
- public static final int COMPLEX_UNIT_MASK = 0xf;
+ /** Complex data: bit location of unit information. */
+ public static final int COMPLEX_UNIT_SHIFT = 0;
+ /**
+ * Complex data: mask to extract unit information (after shifting by
+ * {@link #COMPLEX_UNIT_SHIFT}). This gives us 16 possible types, as defined
+ * below.
+ */
+ public static final int COMPLEX_UNIT_MASK = 0xf;
- /** {@link #TYPE_DIMENSION} complex unit: Value is raw pixels. */
- public static final int COMPLEX_UNIT_PX = 0;
- /**
- * {@link #TYPE_DIMENSION} complex unit: Value is Device Independent Pixels.
- */
- public static final int COMPLEX_UNIT_DIP = 1;
- /** {@link #TYPE_DIMENSION} complex unit: Value is a scaled pixel. */
- public static final int COMPLEX_UNIT_SP = 2;
- /** {@link #TYPE_DIMENSION} complex unit: Value is in points. */
- public static final int COMPLEX_UNIT_PT = 3;
- /** {@link #TYPE_DIMENSION} complex unit: Value is in inches. */
- public static final int COMPLEX_UNIT_IN = 4;
- /** {@link #TYPE_DIMENSION} complex unit: Value is in millimeters. */
- public static final int COMPLEX_UNIT_MM = 5;
+ /** {@link #TYPE_DIMENSION} complex unit: Value is raw pixels. */
+ public static final int COMPLEX_UNIT_PX = 0;
+ /**
+ * {@link #TYPE_DIMENSION} complex unit: Value is Device Independent Pixels.
+ */
+ public static final int COMPLEX_UNIT_DIP = 1;
+ /** {@link #TYPE_DIMENSION} complex unit: Value is a scaled pixel. */
+ public static final int COMPLEX_UNIT_SP = 2;
+ /** {@link #TYPE_DIMENSION} complex unit: Value is in points. */
+ public static final int COMPLEX_UNIT_PT = 3;
+ /** {@link #TYPE_DIMENSION} complex unit: Value is in inches. */
+ public static final int COMPLEX_UNIT_IN = 4;
+ /** {@link #TYPE_DIMENSION} complex unit: Value is in millimeters. */
+ public static final int COMPLEX_UNIT_MM = 5;
- /**
- * {@link #TYPE_FRACTION} complex unit: A basic fraction of the overall size.
- */
- public static final int COMPLEX_UNIT_FRACTION = 0;
- /** {@link #TYPE_FRACTION} complex unit: A fraction of the parent size. */
- public static final int COMPLEX_UNIT_FRACTION_PARENT = 1;
+ /**
+ * {@link #TYPE_FRACTION} complex unit: A basic fraction of the overall size.
+ */
+ public static final int COMPLEX_UNIT_FRACTION = 0;
+ /** {@link #TYPE_FRACTION} complex unit: A fraction of the parent size. */
+ public static final int COMPLEX_UNIT_FRACTION_PARENT = 1;
- /**
- * Complex data: where the radix information is, telling where the decimal
- * place appears in the mantissa.
- */
- public static final int COMPLEX_RADIX_SHIFT = 4;
- /**
- * Complex data: mask to extract radix information (after shifting by
- * {@link #COMPLEX_RADIX_SHIFT}). This give us 4 possible fixed point
- * representations as defined below.
- */
- public static final int COMPLEX_RADIX_MASK = 0x3;
+ /**
+ * Complex data: where the radix information is, telling where the decimal
+ * place appears in the mantissa.
+ */
+ public static final int COMPLEX_RADIX_SHIFT = 4;
+ /**
+ * Complex data: mask to extract radix information (after shifting by
+ * {@link #COMPLEX_RADIX_SHIFT}). This give us 4 possible fixed point
+ * representations as defined below.
+ */
+ public static final int COMPLEX_RADIX_MASK = 0x3;
- /** Complex data: the mantissa is an integral number -- i.e., 0xnnnnnn.0 */
- public static final int COMPLEX_RADIX_23p0 = 0;
- /** Complex data: the mantissa magnitude is 16 bits -- i.e, 0xnnnn.nn */
- public static final int COMPLEX_RADIX_16p7 = 1;
- /** Complex data: the mantissa magnitude is 8 bits -- i.e, 0xnn.nnnn */
- public static final int COMPLEX_RADIX_8p15 = 2;
- /** Complex data: the mantissa magnitude is 0 bits -- i.e, 0x0.nnnnnn */
- public static final int COMPLEX_RADIX_0p23 = 3;
+ /** Complex data: the mantissa is an integral number -- i.e., 0xnnnnnn.0 */
+ public static final int COMPLEX_RADIX_23p0 = 0;
+ /** Complex data: the mantissa magnitude is 16 bits -- i.e, 0xnnnn.nn */
+ public static final int COMPLEX_RADIX_16p7 = 1;
+ /** Complex data: the mantissa magnitude is 8 bits -- i.e, 0xnn.nnnn */
+ public static final int COMPLEX_RADIX_8p15 = 2;
+ /** Complex data: the mantissa magnitude is 0 bits -- i.e, 0x0.nnnnnn */
+ public static final int COMPLEX_RADIX_0p23 = 3;
- /** Complex data: bit location of mantissa information. */
- public static final int COMPLEX_MANTISSA_SHIFT = 8;
- /**
- * Complex data: mask to extract mantissa information (after shifting by
- * {@link #COMPLEX_MANTISSA_SHIFT}). This gives us 23 bits of precision; the
- * top bit is the sign.
- */
- public static final int COMPLEX_MANTISSA_MASK = 0xffffff;
+ /** Complex data: bit location of mantissa information. */
+ public static final int COMPLEX_MANTISSA_SHIFT = 8;
+ /**
+ * Complex data: mask to extract mantissa information (after shifting by
+ * {@link #COMPLEX_MANTISSA_SHIFT}). This gives us 23 bits of precision; the
+ * top bit is the sign.
+ */
+ public static final int COMPLEX_MANTISSA_MASK = 0xffffff;
/* ------------------------------------------------------------ */
- /**
- * If {@link #density} is equal to this value, then the density should be
- * treated as the system's default density value:
- * {@link DisplayMetrics#DENSITY_DEFAULT}.
- */
- public static final int DENSITY_DEFAULT = 0;
+ /**
+ * If {@link #density} is equal to this value, then the density should be
+ * treated as the system's default density value:
+ * {@link DisplayMetrics#DENSITY_DEFAULT}.
+ */
+ public static final int DENSITY_DEFAULT = 0;
- /**
- * If {@link #density} is equal to this value, then there is no density
- * associated with the resource and it should not be scaled.
- */
- public static final int DENSITY_NONE = 0xffff;
+ /**
+ * If {@link #density} is equal to this value, then there is no density
+ * associated with the resource and it should not be scaled.
+ */
+ public static final int DENSITY_NONE = 0xffff;
/* ------------------------------------------------------------ */
- /**
- * The type held by this value, as defined by the constants here. This tells
- * you how to interpret the other fields in the object.
- */
- public int type;
+ /**
+ * The type held by this value, as defined by the constants here. This tells
+ * you how to interpret the other fields in the object.
+ */
+ public int type;
- private static final float MANTISSA_MULT = 1.0f / (1 << TypedValue.COMPLEX_MANTISSA_SHIFT);
- private static final float[] RADIX_MULTS = new float[] {
- 1.0f * MANTISSA_MULT, 1.0f / (1 << 7) * MANTISSA_MULT,
- 1.0f / (1 << 15) * MANTISSA_MULT, 1.0f / (1 << 23) * MANTISSA_MULT };
+ private static final float MANTISSA_MULT = 1.0f / (1 << TypedValue.COMPLEX_MANTISSA_SHIFT);
+ private static final float[] RADIX_MULTS = new float[] {
+ 1.0f * MANTISSA_MULT, 1.0f / (1 << 7) * MANTISSA_MULT,
+ 1.0f / (1 << 15) * MANTISSA_MULT, 1.0f / (1 << 23) * MANTISSA_MULT };
- /**
- * Retrieve the base value from a complex data integer. This uses the
- * {@link #COMPLEX_MANTISSA_MASK} and {@link #COMPLEX_RADIX_MASK} fields of
- * the data to compute a floating point representation of the number they
- * describe. The units are ignored.
- *
- * @param complex
- * A complex data value.
- *
- * @return A floating point value corresponding to the complex data.
- */
- public static float complexToFloat(int complex) {
- return (complex & (TypedValue.COMPLEX_MANTISSA_MASK << TypedValue.COMPLEX_MANTISSA_SHIFT))
- * RADIX_MULTS[(complex >> TypedValue.COMPLEX_RADIX_SHIFT)
- & TypedValue.COMPLEX_RADIX_MASK];
- }
+ /**
+ * Retrieve the base value from a complex data integer. This uses the
+ * {@link #COMPLEX_MANTISSA_MASK} and {@link #COMPLEX_RADIX_MASK} fields of
+ * the data to compute a floating point representation of the number they
+ * describe. The units are ignored.
+ *
+ * @param complex
+ * A complex data value.
+ *
+ * @return A floating point value corresponding to the complex data.
+ */
+ public static float complexToFloat(int complex) {
+ return (complex & (TypedValue.COMPLEX_MANTISSA_MASK << TypedValue.COMPLEX_MANTISSA_SHIFT))
+ * RADIX_MULTS[(complex >> TypedValue.COMPLEX_RADIX_SHIFT)
+ & TypedValue.COMPLEX_RADIX_MASK];
+ }
- private static final String[] DIMENSION_UNIT_STRS = new String[] { "px",
- "dip", "sp", "pt", "in", "mm" };
- private static final String[] FRACTION_UNIT_STRS = new String[] { "%", "%p" };
+ private static final String[] DIMENSION_UNIT_STRS = new String[] { "px",
+ "dip", "sp", "pt", "in", "mm" };
+ private static final String[] FRACTION_UNIT_STRS = new String[] { "%", "%p" };
- /**
- * Perform type conversion as per {@link #coerceToString()} on an explicitly
- * supplied type and data.
- *
- * @param type
- * The data type identifier.
- * @param data
- * The data value.
- *
- * @return String The coerced string value. If the value is null or the type
- * is not known, null is returned.
- */
- public static final String coerceToString(int type, int data) {
- switch (type) {
- case TYPE_NULL:
- return null;
- case TYPE_REFERENCE:
- return "@" + data;
- case TYPE_ATTRIBUTE:
- return "?" + data;
- case TYPE_FLOAT:
- return Float.toString(Float.intBitsToFloat(data));
- case TYPE_DIMENSION:
- return Float.toString(complexToFloat(data))
- + DIMENSION_UNIT_STRS[(data >> COMPLEX_UNIT_SHIFT)
- & COMPLEX_UNIT_MASK];
- case TYPE_FRACTION:
- return Float.toString(complexToFloat(data) * 100)
- + FRACTION_UNIT_STRS[(data >> COMPLEX_UNIT_SHIFT)
- & COMPLEX_UNIT_MASK];
- case TYPE_INT_HEX:
- return "0x" + Integer.toHexString(data);
- case TYPE_INT_BOOLEAN:
- return data != 0 ? "true" : "false";
- }
+ /**
+ * Perform type conversion as per {@link #coerceToString()} on an explicitly
+ * supplied type and data.
+ *
+ * @param type
+ * The data type identifier.
+ * @param data
+ * The data value.
+ *
+ * @return String The coerced string value. If the value is null or the type
+ * is not known, null is returned.
+ */
+ public static final String coerceToString(int type, int data) {
+ switch (type) {
+ case TYPE_NULL:
+ return null;
+ case TYPE_REFERENCE:
+ return "@" + data;
+ case TYPE_ATTRIBUTE:
+ return "?" + data;
+ case TYPE_FLOAT:
+ return Float.toString(Float.intBitsToFloat(data));
+ case TYPE_DIMENSION:
+ return Float.toString(complexToFloat(data))
+ + DIMENSION_UNIT_STRS[(data >> COMPLEX_UNIT_SHIFT)
+ & COMPLEX_UNIT_MASK];
+ case TYPE_FRACTION:
+ return Float.toString(complexToFloat(data) * 100)
+ + FRACTION_UNIT_STRS[(data >> COMPLEX_UNIT_SHIFT)
+ & COMPLEX_UNIT_MASK];
+ case TYPE_INT_HEX:
+ return "0x" + Integer.toHexString(data);
+ case TYPE_INT_BOOLEAN:
+ return data != 0 ? "true" : "false";
+ }
- if (type >= TYPE_FIRST_COLOR_INT && type <= TYPE_LAST_COLOR_INT) {
- String res = String.format("%08x", data);
- char[] vals = res.toCharArray();
- switch (type) {
- default:
- case TYPE_INT_COLOR_ARGB8:// #AaRrGgBb
- break;
- case TYPE_INT_COLOR_RGB8:// #FFRrGgBb->#RrGgBb
- res = res.substring(2);
- break;
- case TYPE_INT_COLOR_ARGB4:// #AARRGGBB->#ARGB
- res = new StringBuffer().append(vals[0]).append(vals[2])
- .append(vals[4]).append(vals[6]).toString();
- break;
- case TYPE_INT_COLOR_RGB4:// #FFRRGGBB->#RGB
- res = new StringBuffer().append(vals[2]).append(vals[4])
- .append(vals[6]).toString();
- break;
- }
- return "#" + res;
- } else if (type >= TYPE_FIRST_INT && type <= TYPE_LAST_INT) {
- String res;
- switch (type) {
- default:
- case TYPE_INT_DEC:
- res = Integer.toString(data);
- break;
- // defined before
- /*
- * case TYPE_INT_HEX: res = "0x" + Integer.toHexString(data); break;
- * case TYPE_INT_BOOLEAN: res = (data != 0) ? "true":"false"; break;
- */
- }
- return res;
- }
+ if (type >= TYPE_FIRST_COLOR_INT && type <= TYPE_LAST_COLOR_INT) {
+ String res = String.format("%08x", data);
+ char[] vals = res.toCharArray();
+ switch (type) {
+ default:
+ case TYPE_INT_COLOR_ARGB8:// #AaRrGgBb
+ break;
+ case TYPE_INT_COLOR_RGB8:// #FFRrGgBb->#RrGgBb
+ res = res.substring(2);
+ break;
+ case TYPE_INT_COLOR_ARGB4:// #AARRGGBB->#ARGB
+ res = new StringBuffer().append(vals[0]).append(vals[2])
+ .append(vals[4]).append(vals[6]).toString();
+ break;
+ case TYPE_INT_COLOR_RGB4:// #FFRRGGBB->#RGB
+ res = new StringBuffer().append(vals[2]).append(vals[4])
+ .append(vals[6]).toString();
+ break;
+ }
+ return "#" + res;
+ } else if (type >= TYPE_FIRST_INT && type <= TYPE_LAST_INT) {
+ String res;
+ switch (type) {
+ default:
+ case TYPE_INT_DEC:
+ res = Integer.toString(data);
+ break;
+ }
+ return res;
+ }
- return null;
- }
+ return null;
+ }
-};
+}