Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4dfac94 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Waiting until post draw before calling finish on the recent transition"...

Merge "Waiting until post draw before calling finish on the recent transition" into ub-launcher3-master
parents eeaa8ee6 fceb82d4
Loading
Loading
Loading
Loading
+1.44 KiB (119 KiB)

File changed.

No diff preview for this file type.

+14 −6
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.annotation.TargetApi;
import android.app.ActivityManager.RunningTaskInfo;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.Rect;
import android.os.Build;
@@ -73,6 +74,7 @@ import com.android.systemui.shared.system.LatencyTrackerCompat;
import com.android.systemui.shared.system.RecentsAnimationControllerCompat;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
import com.android.systemui.shared.system.TransactionCompat;
import com.android.systemui.shared.system.WindowCallbacksCompat;
import com.android.systemui.shared.system.WindowManagerWrapper;

import java.util.StringJoiner;
@@ -645,24 +647,30 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> {

        synchronized (mRecentsAnimationWrapper) {
            if (mRecentsAnimationWrapper.controller != null) {
                TransactionCompat transaction = new TransactionCompat();
                for (RemoteAnimationTargetCompat app : mRecentsAnimationWrapper.targets) {
                    if (app.mode == MODE_CLOSING) {
                        // Update the screenshot of the task
                        ThumbnailData thumbnail =
                                mRecentsAnimationWrapper.controller.screenshotTask(app.taskId);
                        TaskView taskView = mRecentsView.updateThumbnail(app.taskId, thumbnail);
                        final TaskView taskView =
                                mRecentsView.updateThumbnail(app.taskId, thumbnail);
                        if (taskView != null) {
                            taskView.setAlpha(1);

                            // Defer finishing the animation until the next launcher frame with the
                            // new thumbnail
                            mActivityControlHelper.executeOnNextDraw(mActivity, taskView,
                                    finishTransitionRunnable);
                            finishTransitionPosted = true;
                            finishTransitionPosted = new WindowCallbacksCompat(taskView) {

                                @Override
                                public void onPostDraw(Canvas canvas) {
                                    finishTransitionRunnable.run();
                                    detach();
                                }
                            }.attach();
                            break;
                        }
                    }
                }
                transaction.apply();
            }
        }
        if (!finishTransitionPosted) {