Merge "Don't play or cancel window animations of controllable insets sources" into tm-qpr-dev
This commit is contained in:
@@ -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()) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user