summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/policy/DecorView.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java
index d50a70ed62ef..53c15e48fffa 100644
--- a/core/java/com/android/internal/policy/DecorView.java
+++ b/core/java/com/android/internal/policy/DecorView.java
@@ -630,7 +630,8 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
drawingBounds.bottom -= framePadding.bottom - frameOffsets.bottom;
}
- Drawable bg = getBackground();
+ // Need to call super here as we pretend to be having the original background.
+ Drawable bg = super.getBackground();
if (bg != null) {
bg.setBounds(drawingBounds);
}
@@ -975,6 +976,18 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
}
}
+ @Override
+ public void setBackgroundDrawable(Drawable background) {
+
+ // TODO: This should route through setWindowBackground, but late in the release to make this
+ // change.
+ if (mOriginalBackgroundDrawable != background) {
+ mOriginalBackgroundDrawable = background;
+ updateBackgroundDrawable();
+ drawableChanged();
+ }
+ }
+
public void setWindowFrame(Drawable drawable) {
if (getForeground() != drawable) {
setForeground(drawable);
@@ -1218,9 +1231,13 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
return;
}
if (mOriginalBackgroundDrawable == null || mBackgroundInsets.equals(Insets.NONE)) {
- setBackground(mOriginalBackgroundDrawable);
+
+ // Call super since we are intercepting setBackground on this class.
+ super.setBackgroundDrawable(mOriginalBackgroundDrawable);
} else {
- setBackground(new InsetDrawable(mOriginalBackgroundDrawable,
+
+ // Call super since we are intercepting setBackground on this class.
+ super.setBackgroundDrawable(new InsetDrawable(mOriginalBackgroundDrawable,
mBackgroundInsets.left, mBackgroundInsets.top,
mBackgroundInsets.right, mBackgroundInsets.bottom) {
@@ -1238,6 +1255,11 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
mLastOriginalBackgroundDrawable = mOriginalBackgroundDrawable;
}
+ @Override
+ public Drawable getBackground() {
+ return mOriginalBackgroundDrawable;
+ }
+
private int calculateStatusBarColor() {
return calculateBarColor(mWindow.getAttributes().flags, FLAG_TRANSLUCENT_STATUS,
mSemiTransparentBarColor, mWindow.mStatusBarColor,