diff options
4 files changed, 46 insertions, 20 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 35f71ec..dde9db9 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -4397,7 +4397,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { pw.print(prefix); pw.print("mUserRotationMode="); pw.print(mUserRotationMode); pw.print(" mUserRotation="); pw.print(mUserRotation); pw.print(" mAllowAllRotations="); pw.println(mAllowAllRotations); - pw.print(prefix); pw.print(" mCurrentAppOrientation="); pw.println(mCurrentAppOrientation); + pw.print(prefix); pw.print("mCurrentAppOrientation="); pw.println(mCurrentAppOrientation); pw.print(prefix); pw.print("mCarDockEnablesAccelerometer="); pw.print(mCarDockEnablesAccelerometer); pw.print(" mDeskDockEnablesAccelerometer="); @@ -4405,12 +4405,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { pw.print(prefix); pw.print("mLidKeyboardAccessibility="); pw.print(mLidKeyboardAccessibility); pw.print(" mLidNavigationAccessibility="); pw.print(mLidNavigationAccessibility); - pw.print(" mLidControlsSleep="); pw.print(mLidControlsSleep); - pw.print(" mLongPressOnPowerBehavior="); pw.println(mLongPressOnPowerBehavior); + pw.print(" mLidControlsSleep="); pw.println(mLidControlsSleep); + pw.print(prefix); pw.print("mLongPressOnPowerBehavior="); + pw.print(mLongPressOnPowerBehavior); + pw.print(" mHasSoftInput="); pw.println(mHasSoftInput); pw.print(prefix); pw.print("mScreenOnEarly="); pw.print(mScreenOnEarly); pw.print(" mScreenOnFully="); pw.print(mScreenOnFully); - pw.print(" mOrientationSensorEnabled="); pw.print(mOrientationSensorEnabled); - pw.print(" mHasSoftInput="); pw.println(mHasSoftInput); + pw.print(" mOrientationSensorEnabled="); pw.println(mOrientationSensorEnabled); pw.print(prefix); pw.print("mUnrestrictedScreen=("); pw.print(mUnrestrictedScreenLeft); pw.print(","); pw.print(mUnrestrictedScreenTop); pw.print(") "); pw.print(mUnrestrictedScreenWidth); diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 5efbe2c..e101377 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -9537,12 +9537,14 @@ public class WindowManagerService extends IWindowManager.Stub } } } - pw.println(); - if (mOpeningApps.size() > 0) { - pw.print(" mOpeningApps="); pw.println(mOpeningApps); - } - if (mClosingApps.size() > 0) { - pw.print(" mClosingApps="); pw.println(mClosingApps); + if (mOpeningApps.size() > 0 || mClosingApps.size() > 0) { + pw.println(); + if (mOpeningApps.size() > 0) { + pw.print(" mOpeningApps="); pw.println(mOpeningApps); + } + if (mClosingApps.size() > 0) { + pw.print(" mClosingApps="); pw.println(mClosingApps); + } } } @@ -9756,7 +9758,7 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" mTransitionWindowAnimationScale="); pw.print(mTransitionAnimationScale); pw.print(" mAnimatorDurationScale="); pw.println(mAnimatorDurationScale); pw.print(" mTraversalScheduled="); pw.print(mTraversalScheduled); - pw.print(" mNextAppTransition=0x"); + pw.print(" mNextAppTransition=0x"); pw.print(Integer.toHexString(mNextAppTransition)); pw.print(" mAppTransitionReady="); pw.println(mAppTransitionReady); pw.print(" mAppTransitionRunning="); pw.print(mAppTransitionRunning); @@ -9798,7 +9800,7 @@ public class WindowManagerService extends IWindowManager.Stub pw.println(mNextAppTransitionCallback); } pw.print(" mStartingIconInTransition="); pw.print(mStartingIconInTransition); - pw.print(", mSkipAppTransitionAnimation="); pw.println(mSkipAppTransitionAnimation); + pw.print(" mSkipAppTransitionAnimation="); pw.println(mSkipAppTransitionAnimation); } } @@ -9966,30 +9968,31 @@ public class WindowManagerService extends IWindowManager.Stub } synchronized(mWindowMap) { + pw.println(); if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } - dumpPolicyLocked(pw, args, dumpAll); + dumpLastANRLocked(pw); pw.println(); if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } - dumpSessionsLocked(pw, dumpAll); + dumpPolicyLocked(pw, args, dumpAll); pw.println(); if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } - dumpTokensLocked(pw, dumpAll); + dumpSessionsLocked(pw, dumpAll); pw.println(); if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } - dumpWindowsLocked(pw, dumpAll, null); + dumpTokensLocked(pw, dumpAll); pw.println(); if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } - dumpLastANRLocked(pw); + dumpWindowsLocked(pw, dumpAll, null); } } diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java index 8f2ef76..f94bacd 100644 --- a/services/java/com/android/server/wm/WindowState.java +++ b/services/java/com/android/server/wm/WindowState.java @@ -719,6 +719,28 @@ final class WindowState implements WindowManagerPolicy.WindowState { } /** + * Like isReadyForDisplay(), but ignores any force hiding of the window due + * to the keyguard. + */ + boolean isReadyForDisplayIgnoringKeyguard() { + if (mRootToken.waitingToShow && + mService.mNextAppTransition != WindowManagerPolicy.TRANSIT_UNSET) { + return false; + } + final AppWindowToken atoken = mAppToken; + if (atoken == null && !mPolicyVisibility) { + // If this is not an app window, and the policy has asked to force + // hide, then we really do want to hide. + return false; + } + return mHasSurface && !mDestroying + && ((!mAttachedHidden && mViewVisibility == View.VISIBLE + && !mRootToken.hidden) + || mWinAnimator.mAnimation != null + || ((atoken != null) && (atoken.mAppAnimator.animation != null))); + } + + /** * Like isOnScreen, but returns false if the surface hasn't yet * been drawn. */ diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java index 579cbb7..f2dd335 100644 --- a/services/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/java/com/android/server/wm/WindowStateAnimator.java @@ -1218,10 +1218,10 @@ class WindowStateAnimator { } Slog.v(TAG, "performShow on " + this + ": mDrawState=" + mDrawState + " readyForDisplay=" - + mWin.isReadyForDisplay() + + mWin.isReadyForDisplayIgnoringKeyguard() + " starting=" + (mWin.mAttrs.type == TYPE_APPLICATION_STARTING), e); } - if (mDrawState == READY_TO_SHOW && mWin.isReadyForDisplay()) { + if (mDrawState == READY_TO_SHOW && mWin.isReadyForDisplayIgnoringKeyguard()) { if (SHOW_TRANSACTIONS || DEBUG_ORIENTATION) WindowManagerService.logSurface(mWin, "SHOW (performShowLocked)", null); if (DEBUG_VISIBILITY) Slog.v(TAG, "Showing " + this |