From 487737b876b5a2d2ffc2f3a875243efdbe0fb48b Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Wed, 5 Apr 2017 14:17:08 -0700 Subject: [PATCH] Use vsync choreographer when moving PIP. Bug: 36371375 Test: Enter PIP, move PIP Change-Id: I5956a3ed9e92a4cdd4bf0a55723b9f1574c1a86f --- .../com/android/systemui/pip/phone/PipMotionHelper.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java index fb8574da8e812..127296cd7f8e3 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java +++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java @@ -37,10 +37,12 @@ import android.graphics.Rect; import android.os.Handler; import android.os.RemoteException; import android.util.Log; +import android.view.Choreographer; import android.view.animation.Interpolator; import com.android.internal.os.BackgroundThread; import com.android.internal.policy.PipSnapAlgorithm; +import com.android.internal.view.SurfaceFlingerVsyncChoreographer; import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.statusbar.FlingAnimationUtils; @@ -72,6 +74,7 @@ public class PipMotionHelper { private Context mContext; private IActivityManager mActivityManager; + private SurfaceFlingerVsyncChoreographer mVsyncChoreographer; private Handler mHandler; private PipSnapAlgorithm mSnapAlgorithm; @@ -96,6 +99,8 @@ public class PipMotionHelper { mActivityManager = activityManager; mSnapAlgorithm = snapAlgorithm; mFlingAnimationUtils = flingAnimationUtils; + mVsyncChoreographer = new SurfaceFlingerVsyncChoreographer(mHandler, mContext.getDisplay(), + Choreographer.getInstance()); onConfigurationChanged(); } @@ -394,7 +399,7 @@ public class PipMotionHelper { */ private void resizePipUnchecked(Rect toBounds) { if (!toBounds.equals(mBounds)) { - mHandler.post(() -> { + mVsyncChoreographer.scheduleAtSfVsync(() -> { try { mActivityManager.resizePinnedStack(toBounds, null /* tempPinnedTaskBounds */); mBounds.set(toBounds);