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

Commit 5de87a89 authored by Liana Kazanova's avatar Liana Kazanova Committed by Android (Google) Code Review
Browse files

Merge "Revert "Add CUJ instrumentation for KQS"" into main

parents 87ba51b6 0947d9f6
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.res.ResourcesCompat;

import com.android.app.animation.Interpolators;
import com.android.internal.jank.Cuj;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimatedFloat;
@@ -54,7 +53,6 @@ import com.android.launcher3.testing.TestLogging;
import com.android.launcher3.testing.shared.TestProtocol;
import com.android.quickstep.util.DesktopTask;
import com.android.quickstep.util.GroupTask;
import com.android.systemui.shared.system.InteractionJankMonitorWrapper;

import java.util.HashMap;
import java.util.List;
@@ -333,8 +331,6 @@ public class KeyboardQuickSwitchView extends ConstraintLayout {
            @Override
            public void onAnimationStart(Animator animation) {
                super.onAnimationStart(animation);
                InteractionJankMonitorWrapper.begin(
                        KeyboardQuickSwitchView.this, Cuj.CUJ_LAUNCHER_KEYBOARD_QUICK_SWITCH_OPEN);
                setClipToPadding(false);
                setOutlineProvider(new ViewOutlineProvider() {
                    @Override
@@ -369,12 +365,6 @@ public class KeyboardQuickSwitchView extends ConstraintLayout {
                requestFocus();
            }

            @Override
            public void onAnimationCancel(Animator animation) {
                super.onAnimationCancel(animation);
                InteractionJankMonitorWrapper.cancel(Cuj.CUJ_LAUNCHER_KEYBOARD_QUICK_SWITCH_OPEN);
            }

            @Override
            public void onAnimationEnd(Animator animation) {
                super.onAnimationEnd(animation);
@@ -382,7 +372,6 @@ public class KeyboardQuickSwitchView extends ConstraintLayout {
                setOutlineProvider(outlineProvider);
                invalidateOutline();
                mOpenAnimation = null;
                InteractionJankMonitorWrapper.end(Cuj.CUJ_LAUNCHER_KEYBOARD_QUICK_SWITCH_OPEN);
            }
        });

+3 −27
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@
package com.android.launcher3.taskbar;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.view.KeyEvent;
import android.view.animation.AnimationUtils;
import android.window.RemoteTransition;
@@ -24,7 +23,6 @@ import android.window.RemoteTransition;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.internal.jank.Cuj;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimatorListeners;
import com.android.launcher3.taskbar.overlay.TaskbarOverlayContext;
@@ -32,7 +30,6 @@ import com.android.quickstep.util.GroupTask;
import com.android.quickstep.util.SlideInRemoteTransition;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.recents.model.ThumbnailData;
import com.android.systemui.shared.system.InteractionJankMonitorWrapper;
import com.android.systemui.shared.system.QuickStepContract;

import java.io.PrintWriter;
@@ -96,28 +93,18 @@ public class KeyboardQuickSwitchViewController {

    protected void closeQuickSwitchView(boolean animate) {
        if (isCloseAnimationRunning()) {
            // Let currently-running animation finish.
            if (!animate) {
                mCloseAnimation.end();
            }
            // Let currently-running animation finish.
            return;
        }
        if (!animate) {
            InteractionJankMonitorWrapper.begin(
                    mKeyboardQuickSwitchView, Cuj.CUJ_LAUNCHER_KEYBOARD_QUICK_SWITCH_CLOSE);
            onCloseComplete();
            return;
        }
        mCloseAnimation = mKeyboardQuickSwitchView.getCloseAnimation();

        mCloseAnimation.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationStart(Animator animation) {
                super.onAnimationStart(animation);
                InteractionJankMonitorWrapper.begin(
                        mKeyboardQuickSwitchView, Cuj.CUJ_LAUNCHER_KEYBOARD_QUICK_SWITCH_CLOSE);
            }
        });
        mCloseAnimation.addListener(AnimatorListeners.forEndCallback(this::onCloseComplete));
        mCloseAnimation.start();
    }
@@ -155,26 +142,16 @@ public class KeyboardQuickSwitchViewController {
            return -1;
        }

        Runnable onStartCallback = () -> InteractionJankMonitorWrapper.begin(
                mKeyboardQuickSwitchView, Cuj.CUJ_LAUNCHER_KEYBOARD_QUICK_SWITCH_APP_LAUNCH);
        Runnable onFinishCallback = () -> InteractionJankMonitorWrapper.end(
                Cuj.CUJ_LAUNCHER_KEYBOARD_QUICK_SWITCH_APP_LAUNCH);
        TaskbarActivityContext context = mControllers.taskbarActivityContext;
        RemoteTransition remoteTransition = new RemoteTransition(new SlideInRemoteTransition(
                Utilities.isRtl(mControllers.taskbarActivityContext.getResources()),
                context.getDeviceProfile().overviewPageSpacing,
                QuickStepContract.getWindowCornerRadius(context),
                AnimationUtils.loadInterpolator(
                        context, android.R.interpolator.fast_out_extra_slow_in),
                onStartCallback,
                onFinishCallback),
                        context, android.R.interpolator.fast_out_extra_slow_in)),
                "SlideInTransition");
        mControllers.taskbarActivityContext.handleGroupTaskLaunch(
                task,
                remoteTransition,
                mOnDesktop,
                onStartCallback,
                onFinishCallback);
                task, remoteTransition, mOnDesktop);
        return -1;
    }

@@ -182,7 +159,6 @@ public class KeyboardQuickSwitchViewController {
        mCloseAnimation = null;
        mOverlayContext.getDragLayer().removeView(mKeyboardQuickSwitchView);
        mControllerCallbacks.onCloseComplete();
        InteractionJankMonitorWrapper.end(Cuj.CUJ_LAUNCHER_KEYBOARD_QUICK_SWITCH_CLOSE);
    }

    protected void onDestroy() {
+4 −26
Original line number Diff line number Diff line
@@ -1221,44 +1221,22 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
        }
    }

    public void handleGroupTaskLaunch(
            GroupTask task,
            @Nullable RemoteTransition remoteTransition,
            boolean onDesktop) {
        handleGroupTaskLaunch(task, remoteTransition, onDesktop, null, null);
    }

    /**
     * Launches the given GroupTask with the following behavior:
     * - If the GroupTask is a DesktopTask, launch the tasks in that Desktop.
     * - If {@code onDesktop}, bring the given GroupTask to the front.
     * - If the GroupTask is a single task, launch it via startActivityFromRecents.
     * - Otherwise, we assume the GroupTask is a Split pair and launch them together.
     * <p>
     * Given start and/or finish callbacks, they will be run before an after the app launch
     * respectively in cases where we can't use the remote transition, otherwise we will assume that
     * these callbacks are included in the remote transition.
     */
    public void handleGroupTaskLaunch(
            GroupTask task,
            @Nullable RemoteTransition remoteTransition,
            boolean onDesktop,
            @Nullable Runnable onStartCallback,
            @Nullable Runnable onFinishCallback) {
    public void handleGroupTaskLaunch(GroupTask task, @Nullable RemoteTransition remoteTransition,
            boolean onDesktop) {
        if (task instanceof DesktopTask) {
            UI_HELPER_EXECUTOR.execute(() ->
                    SystemUiProxy.INSTANCE.get(this).showDesktopApps(getDisplay().getDisplayId(),
                            remoteTransition));
        } else if (onDesktop) {
            UI_HELPER_EXECUTOR.execute(() -> {
                if (onStartCallback != null) {
                    onStartCallback.run();
                }
                SystemUiProxy.INSTANCE.get(this).showDesktopApp(task.task1.key.id);
                if (onFinishCallback != null) {
                    onFinishCallback.run();
                }
            });
            UI_HELPER_EXECUTOR.execute(() ->
                    SystemUiProxy.INSTANCE.get(this).showDesktopApp(task.task1.key.id));
        } else if (task.task2 == null) {
            UI_HELPER_EXECUTOR.execute(() -> {
                ActivityOptions activityOptions =
+0 −4
Original line number Diff line number Diff line
@@ -36,8 +36,6 @@ class SlideInRemoteTransition(
    private val pageSpacing: Int,
    private val cornerRadius: Float,
    private val interpolator: TimeInterpolator,
    private val onStartCallback: Runnable,
    private val onFinishCallback: Runnable,
) : RemoteTransitionStub() {
    private val animationDurationMs = 500L

@@ -70,7 +68,6 @@ class SlideInRemoteTransition(
                startT.setCrop(leash, chg.endAbsBounds).setCornerRadius(leash, cornerRadius)
            }
        }
        onStartCallback.run()
        startT.apply()

        anim.addUpdateListener {
@@ -100,7 +97,6 @@ class SlideInRemoteTransition(
                    val t = Transaction()
                    try {
                        finishCB.onTransitionFinished(null, t)
                        onFinishCallback.run()
                    } catch (e: RemoteException) {
                        // Ignore
                    }