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

Commit c4f95108 authored by Jagrut Desai's avatar Jagrut Desai Committed by Android Build Coastguard Worker
Browse files

Fix Taskbar to Hotseat Animation for Non-Predective back apps

- Refactored Taskbar animation duration to under one method and added logic to sync animation duration according to enableScalingRevealHomeAnimation.
- Change the interpolator for TaskbarLauncherStateController based on enableScalingRevealHomeAnimation.

Test: Presubmit, Manual
Bug: 369378541
Flag: EXEMPT Bug Fix
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:0a65c5bd72d755856148faeb070a5d2ad2c79cb0)
Merged-In: I942829b475f91e9102801b758eb7ee0d27eee912
Change-Id: I942829b475f91e9102801b758eb7ee0d27eee912
parent 98a8922e
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ package com.android.launcher3.taskbar;

import static android.window.flags.DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY;

import static com.android.launcher3.QuickstepTransitionManager.TASKBAR_TO_APP_DURATION;
import static com.android.launcher3.QuickstepTransitionManager.getTaskbarToHomeDuration;
import static com.android.launcher3.QuickstepTransitionManager.TRANSIENT_TASKBAR_TRANSITION_DURATION;
import static com.android.launcher3.statemanager.BaseState.FLAG_NON_INTERACTIVE;
import static com.android.launcher3.taskbar.TaskbarEduTooltipControllerKt.TOOLTIP_STEP_FEATURES;
@@ -32,7 +34,6 @@ import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Flags;
import com.android.launcher3.LauncherState;
import com.android.launcher3.QuickstepTransitionManager;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimatedFloat;
import com.android.launcher3.logging.InstanceId;
@@ -204,11 +205,17 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
                isVisible,
                fromInitOrDestroy,
                /* startAnimation= */ true,
                DisplayController.isTransientTaskbar(mLauncher)
                getTaskbarAnimationDuration(isVisible));
    }

    private int getTaskbarAnimationDuration(boolean isVisible) {
        if (isVisible && !mLauncher.getPredictiveBackToHomeInProgress()) {
            return getTaskbarToHomeDuration();
        } else {
            return DisplayController.isTransientTaskbar(mLauncher)
                    ? TRANSIENT_TASKBAR_TRANSITION_DURATION
                        : (!isVisible
                                ? QuickstepTransitionManager.TASKBAR_TO_APP_DURATION
                                : QuickstepTransitionManager.getTaskbarToHomeDuration()));
                    : TASKBAR_TO_APP_DURATION;
        }
    }

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

import static com.android.app.animation.Interpolators.EMPHASIZED;
import static com.android.launcher3.Flags.enableScalingRevealHomeAnimation;
import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_ALIGNMENT;
import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_STASH;
import static com.android.launcher3.LauncherState.HOTSEAT_ICONS;
@@ -39,6 +40,7 @@ import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.os.SystemClock;
import android.util.Log;
import android.view.animation.Interpolator;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -58,6 +60,7 @@ import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.MultiPropertyFactory.MultiProperty;
import com.android.quickstep.RecentsAnimationCallbacks;
import com.android.quickstep.RecentsAnimationController;
import com.android.quickstep.util.ScalingWorkspaceRevealAnim;
import com.android.quickstep.util.SystemUiFlagUtils;
import com.android.quickstep.views.RecentsView;
import com.android.systemui.animation.ViewRootSync;
@@ -666,7 +669,9 @@ public class TaskbarLauncherStateController {
            animatorSet.play(iconAlignAnim);
        }

        animatorSet.setInterpolator(EMPHASIZED);
        Interpolator interpolator = enableScalingRevealHomeAnimation()
                ? ScalingWorkspaceRevealAnim.SCALE_INTERPOLATOR : EMPHASIZED;
        animatorSet.setInterpolator(interpolator);

        if (start) {
            animatorSet.start();
+4 −0
Original line number Diff line number Diff line
@@ -1300,6 +1300,10 @@ public class QuickstepLauncher extends Launcher implements RecentsViewContainer,
        mTISBindHelper.setPredictiveBackToHomeInProgress(isInProgress);
    }

    public boolean getPredictiveBackToHomeInProgress() {
        return mIsPredictiveBackToHomeInProgress;
    }

    @Override
    public boolean areDesktopTasksVisible() {
        DesktopVisibilityController desktopVisibilityController = getDesktopVisibilityController();
+2 −1
Original line number Diff line number Diff line
@@ -60,7 +60,8 @@ class ScalingWorkspaceRevealAnim(
         * Custom interpolator for both the home and wallpaper scaling. Necessary because EMPHASIZED
         * is too aggressive, but EMPHASIZED_DECELERATE is too soft.
         */
        private val SCALE_INTERPOLATOR =
        @JvmField
        val SCALE_INTERPOLATOR =
            PathInterpolator(
                Path().apply {
                    moveTo(0f, 0f)