diff options
Diffstat (limited to 'core/java')
-rwxr-xr-x | core/java/android/content/res/Resources.java | 4 | ||||
-rw-r--r-- | core/java/android/view/View.java | 2 |
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)); |