From 9d13264f6b5818812e61d66baaada599b8ad1faf Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 21 Apr 2011 17:26:39 -0700 Subject: Fix bug in deciding which rotation to use for an orientation. Change-Id: Icc928c2188a5865035cafcdab2efd5bae3132b1f --- core/java/android/content/res/Configuration.java | 4 +- core/java/android/view/WindowManagerPolicy.java | 6 ++ .../internal/policy/impl/PhoneWindowManager.java | 68 ++++++++++------------ .../java/com/android/server/wm/DimSurface.java | 2 +- .../android/server/wm/WindowManagerService.java | 13 +++-- 5 files changed, 47 insertions(+), 46 deletions(-) diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java index ad48786..93b3429 100644 --- a/core/java/android/content/res/Configuration.java +++ b/core/java/android/content/res/Configuration.java @@ -303,9 +303,9 @@ public final class Configuration implements Parcelable, Comparable height) { + mLandscapeRotation = Surface.ROTATION_0; + mSeascapeRotation = Surface.ROTATION_180; + if (mContext.getResources().getBoolean( + com.android.internal.R.bool.config_reverseDefaultRotation)) { + mPortraitRotation = Surface.ROTATION_90; + mUpsideDownRotation = Surface.ROTATION_270; + } else { + mPortraitRotation = Surface.ROTATION_270; + mUpsideDownRotation = Surface.ROTATION_90; + } + } else { + mPortraitRotation = Surface.ROTATION_0; + mUpsideDownRotation = Surface.ROTATION_180; + if (mContext.getResources().getBoolean( + com.android.internal.R.bool.config_reverseDefaultRotation)) { + mLandscapeRotation = Surface.ROTATION_270; + mSeascapeRotation = Surface.ROTATION_90; + } else { + mLandscapeRotation = Surface.ROTATION_90; + mSeascapeRotation = Surface.ROTATION_270; + } + } + } + public void updateSettings() { ContentResolver resolver = mContext.getContentResolver(); boolean updateRotation = false; @@ -2528,7 +2551,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } } - + public int rotationForOrientationLw(int orientation, int lastRotation, boolean displayEnabled) { @@ -2541,35 +2564,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { ); } - if (mPortraitRotation < 0) { - // Initialize the rotation angles for each orientation once. - Display d = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE)) - .getDefaultDisplay(); - if (d.getWidth() > d.getHeight()) { - mLandscapeRotation = Surface.ROTATION_0; - mSeascapeRotation = Surface.ROTATION_180; - if (mContext.getResources().getBoolean( - com.android.internal.R.bool.config_reverseDefaultRotation)) { - mPortraitRotation = Surface.ROTATION_90; - mUpsideDownRotation = Surface.ROTATION_270; - } else { - mPortraitRotation = Surface.ROTATION_270; - mUpsideDownRotation = Surface.ROTATION_90; - } - } else { - mPortraitRotation = Surface.ROTATION_0; - mUpsideDownRotation = Surface.ROTATION_180; - if (mContext.getResources().getBoolean( - com.android.internal.R.bool.config_reverseDefaultRotation)) { - mLandscapeRotation = Surface.ROTATION_270; - mSeascapeRotation = Surface.ROTATION_90; - } else { - mLandscapeRotation = Surface.ROTATION_90; - mSeascapeRotation = Surface.ROTATION_270; - } - } - } - synchronized (mLock) { switch (orientation) { case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT: diff --git a/services/java/com/android/server/wm/DimSurface.java b/services/java/com/android/server/wm/DimSurface.java index 084ac6f..220c7fb 100644 --- a/services/java/com/android/server/wm/DimSurface.java +++ b/services/java/com/android/server/wm/DimSurface.java @@ -89,7 +89,7 @@ class DimSurface { public void printTo(String prefix, PrintWriter pw) { pw.print(prefix); pw.print("mDimSurface="); pw.println(mDimSurface); pw.print(prefix); pw.print("mDimShown="); pw.print(mDimShown); - pw.print(" mLayer="); pw.println(mLayer); + pw.print(" mLayer="); pw.print(mLayer); pw.print(" mDimColor=0x"); pw.println(Integer.toHexString(mDimColor)); pw.print(prefix); pw.print("mLastDimWidth="); pw.print(mLastDimWidth); pw.print(" mLastDimWidth="); pw.println(mLastDimWidth); diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index b2e78f1..538e38c 100644 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -5853,6 +5853,7 @@ public class WindowManagerService extends IWindowManager.Stub mInitialDisplayWidth = mCurDisplayWidth = mDisplay.getRealWidth(); mInitialDisplayHeight = mCurDisplayHeight = mDisplay.getRealHeight(); mInputManager.setDisplaySize(0, mDisplay.getRawWidth(), mDisplay.getRawHeight()); + mPolicy.setInitialDisplaySize(mInitialDisplayWidth, mInitialDisplayHeight); } try { @@ -8711,21 +8712,21 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(", mForcedAppOrientation="); pw.print(mForcedAppOrientation); pw.print(", mRequestedRotation="); pw.println(mRequestedRotation); pw.print(" mDeferredRotation="); pw.print(mDeferredRotation); - pw.print(", mDeferredRotationAnimFlags="); pw.print(mDeferredRotationAnimFlags); + pw.print(", mDeferredRotationAnimFlags="); pw.println(mDeferredRotationAnimFlags); pw.print(" mAnimationPending="); pw.print(mAnimationPending); pw.print(" mWindowAnimationScale="); pw.print(mWindowAnimationScale); pw.print(" mTransitionWindowAnimationScale="); pw.println(mTransitionAnimationScale); pw.print(" mNextAppTransition=0x"); pw.print(Integer.toHexString(mNextAppTransition)); - pw.print(", mAppTransitionReady="); pw.print(mAppTransitionReady); - pw.print(", mAppTransitionRunning="); pw.print(mAppTransitionRunning); - pw.print(", mAppTransitionTimeout="); pw.println( mAppTransitionTimeout); + pw.print(" mAppTransitionReady="); pw.println(mAppTransitionReady); + pw.print(" mAppTransitionRunning="); pw.print(mAppTransitionRunning); + pw.print(" mAppTransitionTimeout="); pw.println( mAppTransitionTimeout); if (mNextAppTransitionPackage != null) { pw.print(" mNextAppTransitionPackage="); pw.print(mNextAppTransitionPackage); - pw.print(", mNextAppTransitionEnter=0x"); + pw.print(" mNextAppTransitionEnter=0x"); pw.print(Integer.toHexString(mNextAppTransitionEnter)); - pw.print(", mNextAppTransitionExit=0x"); + pw.print(" mNextAppTransitionExit=0x"); pw.print(Integer.toHexString(mNextAppTransitionExit)); } pw.print(" mStartingIconInTransition="); pw.print(mStartingIconInTransition); -- cgit v1.1