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

Commit ad48decd authored by Schneider Victor-tulias's avatar Schneider Victor-tulias Committed by Android (Google) Code Review
Browse files

Merge "Revert "Cancel gestures on launcher destroy"" into tm-qpr-dev

parents 11786572 f0de6cc2
Loading
Loading
Loading
Loading
+7 −14
Original line number Original line Diff line number Diff line
/*
/*
 * Copyright (C) 2022 The Android Open Source Project
 * Copyright (C) 2018 The Android Open Source Project
 *
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * you may not use this file except in compliance with the License.
@@ -16,23 +16,19 @@
package com.android.launcher3;
package com.android.launcher3;


import android.animation.AnimatorSet;
import android.animation.AnimatorSet;
import android.annotation.Nullable;
import android.annotation.TargetApi;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Build;
import android.os.CancellationSignal;
import android.os.CancellationSignal;
import android.view.RemoteAnimationTarget;
import android.view.RemoteAnimationTarget;


import com.android.launcher3.uioverrides.QuickstepLauncher;
import com.android.launcher3.uioverrides.QuickstepLauncher;
import com.android.quickstep.util.ActivityLifecycleListener;
import com.android.quickstep.util.ActivityInitListener;
import com.android.quickstep.util.RemoteAnimationProvider;
import com.android.quickstep.util.RemoteAnimationProvider;


import java.util.function.BiPredicate;
import java.util.function.BiPredicate;


/**
 * {@link ActivityLifecycleListener} for the in-launcher recents.
 */
@TargetApi(Build.VERSION_CODES.P)
@TargetApi(Build.VERSION_CODES.P)
public class LauncherLifecycleListener extends ActivityLifecycleListener<Launcher> {
public class LauncherInitListener extends ActivityInitListener<Launcher> {


    private RemoteAnimationProvider mRemoteAnimationProvider;
    private RemoteAnimationProvider mRemoteAnimationProvider;


@@ -40,16 +36,13 @@ public class LauncherLifecycleListener extends ActivityLifecycleListener<Launche
     * @param onInitListener a callback made when the activity is initialized. The callback should
     * @param onInitListener a callback made when the activity is initialized. The callback should
     *                       return true to continue receiving callbacks (ie. for if the activity is
     *                       return true to continue receiving callbacks (ie. for if the activity is
     *                       recreated).
     *                       recreated).
     * @param onDestroyListener a callback made when the activity is destroyed.
     */
     */
    public LauncherLifecycleListener(
    public LauncherInitListener(BiPredicate<Launcher, Boolean> onInitListener) {
            @Nullable BiPredicate<Launcher, Boolean> onInitListener,
        super(onInitListener, Launcher.ACTIVITY_TRACKER);
            @Nullable Runnable onDestroyListener) {
        super(onInitListener, onDestroyListener, Launcher.ACTIVITY_TRACKER);
    }
    }


    @Override
    @Override
    public boolean handleActivityReady(Launcher launcher, boolean alreadyOnHome) {
    public boolean handleInit(Launcher launcher, boolean alreadyOnHome) {
        if (mRemoteAnimationProvider != null) {
        if (mRemoteAnimationProvider != null) {
            QuickstepTransitionManager appTransitionManager =
            QuickstepTransitionManager appTransitionManager =
                    ((QuickstepLauncher) launcher).getAppTransitionManager();
                    ((QuickstepLauncher) launcher).getAppTransitionManager();
@@ -75,7 +68,7 @@ public class LauncherLifecycleListener extends ActivityLifecycleListener<Launche
            }, cancellationSignal);
            }, cancellationSignal);
        }
        }
        launcher.deferOverlayCallbacksUntilNextResumeOrStop();
        launcher.deferOverlayCallbacksUntilNextResumeOrStop();
        return super.handleActivityReady(launcher, alreadyOnHome);
        return super.handleInit(launcher, alreadyOnHome);
    }
    }


    @Override
    @Override
+3 −10
Original line number Original line Diff line number Diff line
@@ -50,7 +50,6 @@ import static com.android.quickstep.GestureState.STATE_RECENTS_SCROLLING_FINISHE
import static com.android.quickstep.MultiStateCallback.DEBUG_STATES;
import static com.android.quickstep.MultiStateCallback.DEBUG_STATES;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.CANCEL_RECENTS_ANIMATION;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.CANCEL_RECENTS_ANIMATION;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.EXPECTING_TASK_APPEARED;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.EXPECTING_TASK_APPEARED;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.LAUNCHER_DESTROYED;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.ON_SETTLED_ON_END_TARGET;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.ON_SETTLED_ON_END_TARGET;
import static com.android.quickstep.util.VibratorWrapper.OVERVIEW_HAPTIC;
import static com.android.quickstep.util.VibratorWrapper.OVERVIEW_HAPTIC;
import static com.android.quickstep.views.RecentsView.UPDATE_SYSUI_FLAGS_THRESHOLD;
import static com.android.quickstep.views.RecentsView.UPDATE_SYSUI_FLAGS_THRESHOLD;
@@ -114,7 +113,7 @@ import com.android.quickstep.GestureState.GestureEndTarget;
import com.android.quickstep.RemoteTargetGluer.RemoteTargetHandle;
import com.android.quickstep.RemoteTargetGluer.RemoteTargetHandle;
import com.android.quickstep.util.ActiveGestureErrorDetector;
import com.android.quickstep.util.ActiveGestureErrorDetector;
import com.android.quickstep.util.ActiveGestureLog;
import com.android.quickstep.util.ActiveGestureLog;
import com.android.quickstep.util.ActivityLifecycleListener;
import com.android.quickstep.util.ActivityInitListener;
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.util.InputConsumerProxy;
import com.android.quickstep.util.InputConsumerProxy;
import com.android.quickstep.util.InputProxyHandlerFactory;
import com.android.quickstep.util.InputProxyHandlerFactory;
@@ -160,7 +159,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,


    protected final BaseActivityInterface<S, T> mActivityInterface;
    protected final BaseActivityInterface<S, T> mActivityInterface;
    protected final InputConsumerProxy mInputConsumerProxy;
    protected final InputConsumerProxy mInputConsumerProxy;
    protected final ActivityLifecycleListener mActivityInitListener;
    protected final ActivityInitListener mActivityInitListener;
    // Callbacks to be made once the recents animation starts
    // Callbacks to be made once the recents animation starts
    private final ArrayList<Runnable> mRecentsAnimationStartCallbacks = new ArrayList<>();
    private final ArrayList<Runnable> mRecentsAnimationStartCallbacks = new ArrayList<>();
    private final OnScrollChangedListener mOnRecentsScrollListener = this::onRecentsViewScroll;
    private final OnScrollChangedListener mOnRecentsScrollListener = this::onRecentsViewScroll;
@@ -330,8 +329,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
            InputConsumerController inputConsumer) {
            InputConsumerController inputConsumer) {
        super(context, deviceState, gestureState);
        super(context, deviceState, gestureState);
        mActivityInterface = gestureState.getActivityInterface();
        mActivityInterface = gestureState.getActivityInterface();
        mActivityInitListener = mActivityInterface.createActivityLifecycleListener(
        mActivityInitListener = mActivityInterface.createActivityInitListener(this::onActivityInit);
                this::onActivityInit, this::onActivityDestroy);
        mInputConsumerProxy =
        mInputConsumerProxy =
                new InputConsumerProxy(context, /* rotationSupplier = */ () -> {
                new InputConsumerProxy(context, /* rotationSupplier = */ () -> {
                    if (mRecentsView == null) {
                    if (mRecentsView == null) {
@@ -522,11 +520,6 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
        return true;
        return true;
    }
    }


    private void onActivityDestroy() {
        ActiveGestureLog.INSTANCE.addLog("Launcher activity destroyed", LAUNCHER_DESTROYED);
        onGestureCancelled();
    }

    /**
    /**
     * Return true if the window should be translated horizontally if the recents view scrolls
     * Return true if the window should be translated horizontally if the recents view scrolls
     */
     */
+3 −12
Original line number Original line Diff line number Diff line
@@ -60,7 +60,7 @@ import com.android.launcher3.touch.PagedOrientationHandler;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.NavigationMode;
import com.android.launcher3.util.NavigationMode;
import com.android.launcher3.views.ScrimView;
import com.android.launcher3.views.ScrimView;
import com.android.quickstep.util.ActivityLifecycleListener;
import com.android.quickstep.util.ActivityInitListener;
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.RecentsView;
import com.android.systemui.shared.recents.model.ThumbnailData;
import com.android.systemui.shared.recents.model.ThumbnailData;
@@ -123,17 +123,8 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
    public abstract AnimationFactory prepareRecentsUI(RecentsAnimationDeviceState deviceState,
    public abstract AnimationFactory prepareRecentsUI(RecentsAnimationDeviceState deviceState,
            boolean activityVisible, Consumer<AnimatorControllerWithResistance> callback);
            boolean activityVisible, Consumer<AnimatorControllerWithResistance> callback);


    /**
    public abstract ActivityInitListener createActivityInitListener(
     * Creates a activity listener for activity initialized and/or destroyed. One or both of these
            Predicate<Boolean> onInitListener);
     * listeners must be provided.
     *
     * @param onInitListener a callback made when the activity is initialized. The callback should
     *                       return true to continue receiving callbacks (ie. for if the activity is
     *                       recreated).
     * @param onDestroyListener a callback made when the activity is destroyed.
     */
    public abstract ActivityLifecycleListener createActivityLifecycleListener(
            @Nullable Predicate<Boolean> onInitListener, @Nullable Runnable onDestroyListener);


    /**
    /**
     * Sets a callback to be run when an activity launch happens while launcher is not yet resumed.
     * Sets a callback to be run when an activity launch happens while launcher is not yet resumed.
+5 −7
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@ import com.android.launcher3.touch.PagedOrientationHandler;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.DisplayController;
import com.android.quickstep.GestureState.GestureEndTarget;
import com.android.quickstep.GestureState.GestureEndTarget;
import com.android.quickstep.fallback.RecentsState;
import com.android.quickstep.fallback.RecentsState;
import com.android.quickstep.util.ActivityLifecycleListener;
import com.android.quickstep.util.ActivityInitListener;
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.RecentsView;


@@ -88,12 +88,10 @@ public final class FallbackActivityInterface extends
    }
    }


    @Override
    @Override
    public ActivityLifecycleListener createActivityLifecycleListener(
    public ActivityInitListener createActivityInitListener(
            @Nullable Predicate<Boolean> onInitListener, @Nullable Runnable onDestroyListener) {
            Predicate<Boolean> onInitListener) {
        return new ActivityLifecycleListener<>(
        return new ActivityInitListener<>((activity, alreadyOnHome) ->
                (activity, alreadyOnHome) -> onInitListener.test(alreadyOnHome),
                onInitListener.test(alreadyOnHome), RecentsActivity.ACTIVITY_TRACKER);
                onDestroyListener,
                RecentsActivity.ACTIVITY_TRACKER);
    }
    }


    @Nullable
    @Nullable
+5 −6
Original line number Original line Diff line number Diff line
@@ -37,7 +37,7 @@ import androidx.annotation.UiThread;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Launcher;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAnimUtils;
import com.android.launcher3.LauncherAnimUtils;
import com.android.launcher3.LauncherLifecycleListener;
import com.android.launcher3.LauncherInitListener;
import com.android.launcher3.LauncherState;
import com.android.launcher3.LauncherState;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.statehandlers.DepthController;
import com.android.launcher3.statehandlers.DepthController;
@@ -49,7 +49,7 @@ import com.android.launcher3.uioverrides.QuickstepLauncher;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.NavigationMode;
import com.android.launcher3.util.NavigationMode;
import com.android.quickstep.GestureState.GestureEndTarget;
import com.android.quickstep.GestureState.GestureEndTarget;
import com.android.quickstep.util.ActivityLifecycleListener;
import com.android.quickstep.util.ActivityInitListener;
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.util.LayoutUtils;
import com.android.quickstep.util.LayoutUtils;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.RecentsView;
@@ -136,10 +136,9 @@ public final class LauncherActivityInterface extends
    }
    }


    @Override
    @Override
    public ActivityLifecycleListener createActivityLifecycleListener(
    public ActivityInitListener createActivityInitListener(Predicate<Boolean> onInitListener) {
            @Nullable Predicate<Boolean> onInitListener, @Nullable Runnable onDestroyListener) {
        return new LauncherInitListener((activity, alreadyOnHome) ->
        return new LauncherLifecycleListener((activity, alreadyOnHome) ->
                onInitListener.test(alreadyOnHome));
                onInitListener.test(alreadyOnHome), onDestroyListener);
    }
    }


    @Override
    @Override
Loading