summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rwxr-xr-xcore/java/android/content/res/Resources.java4
-rw-r--r--core/java/android/view/View.java2
2 files changed, 4 insertions, 2 deletions
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index 42a6bdc..b316f23 100755
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -1897,12 +1897,14 @@ public class Resources {
}
}
- final long key = (((long) value.assetCookie) << 32) | value.data;
boolean isColorDrawable = false;
if (value.type >= TypedValue.TYPE_FIRST_COLOR_INT &&
value.type <= TypedValue.TYPE_LAST_COLOR_INT) {
isColorDrawable = true;
}
+ final long key = isColorDrawable ? value.data :
+ (((long) value.assetCookie) << 32) | value.data;
+
Drawable dr = getCachedDrawable(isColorDrawable ? mColorDrawableCache : mDrawableCache, key);
if (dr != null) {
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index d735b7d..d268fd2 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -14118,7 +14118,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
@RemotableViewMethod
public void setBackgroundColor(int color) {
if (mBackground instanceof ColorDrawable) {
- ((ColorDrawable) mBackground).setColor(color);
+ ((ColorDrawable) mBackground.mutate()).setColor(color);
computeOpaqueFlags();
} else {
setBackground(new ColorDrawable(color));