Merge "Change DimAnimator to reflect rotations." into jb-dev
diff --git a/services/java/com/android/server/wm/DimAnimator.java b/services/java/com/android/server/wm/DimAnimator.java
index f9f9d1a..e8f56c8 100644
--- a/services/java/com/android/server/wm/DimAnimator.java
+++ b/services/java/com/android/server/wm/DimAnimator.java
@@ -68,8 +68,10 @@
* {@link #updateSurface} after all windows are examined.
*/
void updateParameters(final Resources res, final Parameters params, final long currentTime) {
- final int dw = params.mDimWidth;
- final int dh = params.mDimHeight;
+ // Multiply by 1.5 so that rotating a frozen surface that includes this does not expose a
+ // corner.
+ final int dw = (int) (params.mDimWidth * 1.5);
+ final int dh = (int) (params.mDimHeight * 1.5);
final WindowStateAnimator winAnimator = params.mDimWinAnimator;
final float target = params.mDimTarget;
if (!mDimShown) {
@@ -79,7 +81,8 @@
try {
mLastDimWidth = dw;
mLastDimHeight = dh;
- mDimSurface.setPosition(0, 0);
+ // back off position so mDimXXX/4 is before and mDimXXX/4 is after
+ mDimSurface.setPosition(-1 * dw / 6, -1 * dh /6);
mDimSurface.setSize(dw, dh);
mDimSurface.show();
} catch (RuntimeException e) {
@@ -89,6 +92,8 @@
mLastDimWidth = dw;
mLastDimHeight = dh;
mDimSurface.setSize(dw, dh);
+ // back off position so mDimXXX/4 is before and mDimXXX/4 is after
+ mDimSurface.setPosition(-1 * dw / 6, -1 * dh /6);
}
mDimSurface.setLayer(winAnimator.mAnimLayer - WindowManagerService.LAYER_OFFSET_DIM);
diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java
index 2e38332..4f08d92 100644
--- a/services/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/java/com/android/server/wm/WindowStateAnimator.java
@@ -951,6 +951,10 @@
mSurface.setSize(width, height);
mAnimator.mPendingLayoutChanges |=
WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
+ if ((w.mAttrs.flags & LayoutParams.FLAG_DIM_BEHIND) != 0) {
+ mAnimator.startDimming(this, w.mExiting ? 0 : w.mAttrs.dimAmount,
+ mService.mAppDisplayWidth, mService.mAppDisplayHeight);
+ }
} catch (RuntimeException e) {
// If something goes wrong with the surface (such
// as running out of memory), don't take down the