diff options
| author | 2024-01-10 23:15:52 +0000 | |
|---|---|---|
| committer | 2024-01-10 23:15:52 +0000 | |
| commit | 6236c01aee06e9d8cf73bcd0ff31e66f2467b9ed (patch) | |
| tree | 0592c7f047ecbcb3a2c4f5d18241ca1c7f4b63b1 | |
| parent | 08214cc58f70516da7ef2eb14870f896d9a5ecb0 (diff) | |
| parent | 8ca90fd1e882dcf7e6d291899c17aa564aef5307 (diff) | |
Merge "Prevent duplicate release same transaction from TransactionPool" into main am: bdb639ea06 am: 8ca90fd1e8
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2809333
Change-Id: Ia8173b995ab0ac2fee9a6e0a0e85f4f9c7fd1399
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java index 7dec12aac39b..2c0ba92524ad 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java @@ -479,18 +479,20 @@ class SplitScreenTransitions { private void startFadeAnimation(@NonNull SurfaceControl leash, boolean show) { final float end = show ? 1.f : 0.f; final float start = 1.f - end; - final SurfaceControl.Transaction transaction = mTransactionPool.acquire(); final ValueAnimator va = ValueAnimator.ofFloat(start, end); va.setDuration(FADE_DURATION); va.setInterpolator(show ? ALPHA_IN : ALPHA_OUT); va.addUpdateListener(animation -> { float fraction = animation.getAnimatedFraction(); + final SurfaceControl.Transaction transaction = mTransactionPool.acquire(); transaction.setAlpha(leash, start * (1.f - fraction) + end * fraction); transaction.apply(); + mTransactionPool.release(transaction); }); va.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { + final SurfaceControl.Transaction transaction = mTransactionPool.acquire(); transaction.setAlpha(leash, end); transaction.apply(); mTransactionPool.release(transaction); |