diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayPolicy.java | 88 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowStateAnimator.java | 20 |
2 files changed, 11 insertions, 97 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 42a3ec6abbc5..2688ff757f64 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -81,11 +81,7 @@ import static android.window.DisplayAreaOrganizer.FEATURE_UNDEFINED; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SCREEN_ON; import static com.android.server.policy.PhoneWindowManager.TOAST_WINDOW_TIMEOUT; -import static com.android.server.policy.WindowManagerPolicy.TRANSIT_ENTER; -import static com.android.server.policy.WindowManagerPolicy.TRANSIT_EXIT; -import static com.android.server.policy.WindowManagerPolicy.TRANSIT_HIDE; import static com.android.server.policy.WindowManagerPolicy.TRANSIT_PREVIEW_DONE; -import static com.android.server.policy.WindowManagerPolicy.TRANSIT_SHOW; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; @@ -1439,90 +1435,6 @@ public class DisplayPolicy { */ int selectAnimation(WindowState win, int transit) { ProtoLog.i(WM_DEBUG_ANIM, "selectAnimation in %s: transit=%d", win, transit); - if (win == mStatusBar) { - if (transit == TRANSIT_EXIT - || transit == TRANSIT_HIDE) { - return R.anim.dock_top_exit; - } else if (transit == TRANSIT_ENTER - || transit == TRANSIT_SHOW) { - return R.anim.dock_top_enter; - } - } else if (win == mNavigationBar) { - if (win.getAttrs().windowAnimations != 0) { - return ANIMATION_STYLEABLE; - } - // This can be on either the bottom or the right or the left. - if (mNavigationBarPosition == NAV_BAR_BOTTOM) { - if (transit == TRANSIT_EXIT - || transit == TRANSIT_HIDE) { - if (mService.mPolicy.isKeyguardShowingAndNotOccluded()) { - return R.anim.dock_bottom_exit_keyguard; - } else { - return R.anim.dock_bottom_exit; - } - } else if (transit == TRANSIT_ENTER - || transit == TRANSIT_SHOW) { - return R.anim.dock_bottom_enter; - } - } else if (mNavigationBarPosition == NAV_BAR_RIGHT) { - if (transit == TRANSIT_EXIT - || transit == TRANSIT_HIDE) { - return R.anim.dock_right_exit; - } else if (transit == TRANSIT_ENTER - || transit == TRANSIT_SHOW) { - return R.anim.dock_right_enter; - } - } else if (mNavigationBarPosition == NAV_BAR_LEFT) { - if (transit == TRANSIT_EXIT - || transit == TRANSIT_HIDE) { - return R.anim.dock_left_exit; - } else if (transit == TRANSIT_ENTER - || transit == TRANSIT_SHOW) { - return R.anim.dock_left_enter; - } - } - } else if (win == mStatusBarAlt || win == mNavigationBarAlt || win == mClimateBarAlt - || win == mExtraNavBarAlt) { - if (win.getAttrs().windowAnimations != 0) { - return ANIMATION_STYLEABLE; - } - - int pos = (win == mStatusBarAlt) ? mStatusBarAltPosition : mNavigationBarAltPosition; - - boolean isExitOrHide = transit == TRANSIT_EXIT || transit == TRANSIT_HIDE; - boolean isEnterOrShow = transit == TRANSIT_ENTER || transit == TRANSIT_SHOW; - - switch (pos) { - case ALT_BAR_LEFT: - if (isExitOrHide) { - return R.anim.dock_left_exit; - } else if (isEnterOrShow) { - return R.anim.dock_left_enter; - } - break; - case ALT_BAR_RIGHT: - if (isExitOrHide) { - return R.anim.dock_right_exit; - } else if (isEnterOrShow) { - return R.anim.dock_right_enter; - } - break; - case ALT_BAR_BOTTOM: - if (isExitOrHide) { - return R.anim.dock_bottom_exit; - } else if (isEnterOrShow) { - return R.anim.dock_bottom_enter; - } - break; - case ALT_BAR_TOP: - if (isExitOrHide) { - return R.anim.dock_top_exit; - } else if (isEnterOrShow) { - return R.anim.dock_top_enter; - } - break; - } - } if (transit == TRANSIT_PREVIEW_DONE) { if (win.hasAppShownWindows()) { diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 5c0557f2d1f4..6e16b5de1d85 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -602,11 +602,17 @@ class WindowStateAnimator { return true; } - final boolean isImeWindow = mWin.mAttrs.type == TYPE_INPUT_METHOD; - if (isEntrance && isImeWindow) { + if (mWin.mAttrs.type == TYPE_INPUT_METHOD) { mWin.getDisplayContent().adjustForImeIfNeeded(); - mWin.setDisplayLayoutNeeded(); - mService.mWindowPlacerLocked.requestTraversal(); + if (isEntrance) { + mWin.setDisplayLayoutNeeded(); + mService.mWindowPlacerLocked.requestTraversal(); + } + } + + if (mWin.mControllableInsetProvider != null) { + // All our animations should be driven by the insets control target. + return false; } // Only apply an animation if the display isn't frozen. If it is @@ -654,14 +660,10 @@ class WindowStateAnimator { Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); mAnimationIsEntrance = isEntrance; } - } else if (!isImeWindow) { + } else { mWin.cancelAnimation(); } - if (!isEntrance && isImeWindow) { - mWin.getDisplayContent().adjustForImeIfNeeded(); - } - return mWin.isAnimating(0 /* flags */, ANIMATION_TYPE_WINDOW_ANIMATION); } |