summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Winson Chung <winsonc@google.com> 2021-01-07 15:45:27 -0800
committer Colin Cross <ccross@android.com> 2021-05-24 13:52:27 -0700
commit5a9716fa45cf59338746bccb56a2e1e1ecf258b8 (patch)
tree73438523c24f07701eafae958be583c7bf1d957a
parent9144eaf12f4163d0640acaa31a86be231699faed (diff)
Make Pip usage of FrameCallbackScheduler an actual class
Bug: 175330528 Test: Builds with new dynamic-animation library Change-Id: I1632bd87a0f02940317a38a87b074d303f80b8c7 Merged-In: I1632bd87a0f02940317a38a87b074d303f80b8c7 (cherry picked from commit c6c603078b9a32f00b205b23919faea47343f54d)
-rw-r--r--packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java13
1 files changed, 12 insertions, 1 deletions
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 9f0b1de21b52..e5da23ad0842 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
@@ -23,6 +23,7 @@ import android.content.Context;
import android.graphics.PointF;
import android.graphics.Rect;
import android.os.Debug;
+import android.os.Looper;
import android.util.Log;
import android.view.Choreographer;
@@ -94,8 +95,18 @@ public class PipMotionHelper implements PipAppOpsListener.Callback,
private ThreadLocal<AnimationHandler> mSfAnimationHandlerThreadLocal =
ThreadLocal.withInitial(() -> {
- FrameCallbackScheduler scheduler = runnable ->
+ final Looper initialLooper = Looper.myLooper();
+ final FrameCallbackScheduler scheduler = new FrameCallbackScheduler() {
+ @Override
+ public void postFrameCallback(@androidx.annotation.NonNull Runnable runnable) {
Choreographer.getSfInstance().postFrameCallback(t -> runnable.run());
+ }
+
+ @Override
+ public boolean isCurrentThread() {
+ return Looper.myLooper() == initialLooper;
+ }
+ };
AnimationHandler handler = new AnimationHandler(scheduler);
return handler;
});