diff options
| author | 2016-06-28 15:25:07 -0700 | |
|---|---|---|
| committer | 2016-06-28 16:09:35 -0700 | |
| commit | 8784be6fe485939c3ae758edbcbbcb85d2b123ae (patch) | |
| tree | 9a57b88cee962f96ed3b7379102f38a1ae002176 | |
| parent | 2cd8281a236a9c58bfdb22ce1e2e37303fdcd987 (diff) | |
Add a few trace points for animation loading.
Also make sure focusMayChange is set as before commit 8c5d42.
We only want to skip the applyAnimationLocked if animation is
already set, make sure the rest are equivalent.
bug: 29405575
Change-Id: I8342b82d9e6e02fab002e16ffcde4a7479bf6867
3 files changed, 13 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index b8accf547686..84173d26ef8b 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -3003,8 +3003,8 @@ public class WindowManagerService extends IWindowManager.Stub if (win.mAttrs.type == TYPE_APPLICATION_STARTING) { transit = WindowManagerPolicy.TRANSIT_PREVIEW_DONE; } - if (win.isWinVisibleLw() && !winAnimator.isAnimationSet() - && winAnimator.applyAnimationLocked(transit, false)) { + if (win.isWinVisibleLw() && (winAnimator.isAnimationSet() || + winAnimator.applyAnimationLocked(transit, false))) { focusMayChange = isDefaultDisplay; win.mAnimatingExit = true; win.mWinAnimator.mAnimating = true; @@ -3170,6 +3170,7 @@ public class WindowManagerService extends IWindowManager.Stub // frozen, there is no reason to animate and it can cause strange // artifacts when we unfreeze the display if some different animation // is running. + Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "WM#applyAnimationLocked"); if (okToDisplay()) { DisplayInfo displayInfo = getDefaultDisplayInfoLocked(); final int width = displayInfo.appWidth; @@ -3221,6 +3222,7 @@ public class WindowManagerService extends IWindowManager.Stub } else { atoken.mAppAnimator.clearAnimation(); } + Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); return atoken.mAppAnimator.animation != null; } diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 6c554954c6dc..e374ee91389f 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -55,6 +55,7 @@ import android.graphics.RectF; import android.graphics.Region; import android.os.Debug; import android.os.RemoteException; +import android.os.Trace; import android.util.Slog; import android.view.DisplayInfo; import android.view.MagnificationSpec; @@ -1863,6 +1864,7 @@ class WindowStateAnimator { // frozen, there is no reason to animate and it can cause strange // artifacts when we unfreeze the display if some different animation // is running. + Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "WSA#applyAnimationLocked"); if (mService.okToDisplay()) { int anim = mPolicy.selectAnimationLw(mWin, transit); int attr = -1; @@ -1902,6 +1904,8 @@ class WindowStateAnimator { } else { clearAnimation(); } + Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); + if (mWin.mAttrs.type == TYPE_INPUT_METHOD) { mService.adjustForImeIfNeeded(mWin.mDisplayContent); if (isEntrance) { diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java index 359063c80dbf..e5f972886ccf 100644 --- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java +++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java @@ -1074,6 +1074,8 @@ class WindowSurfacePlacer { if (!transitionGoodToGo(appsCount)) { return 0; } + Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "AppTransitionReady"); + if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, "**** GOOD TO GO"); int transit = mService.mAppTransition.getAppTransition(); if (mService.mSkipAppTransitionAnimation) { @@ -1207,6 +1209,9 @@ class WindowSurfacePlacer { true /*updateInputWindows*/); mService.mFocusMayChange = false; mService.notifyActivityDrawnForKeyguard(); + + Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); + return FINISH_LAYOUT_REDO_LAYOUT | FINISH_LAYOUT_REDO_CONFIG; } |