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

Commit d807724d authored by Tony Wickham's avatar Tony Wickham Committed by Android (Google) Code Review
Browse files

Merge "Track window for 2 button nav as well as 0 button" into ub-launcher3-qt-dev

parents 25138354 8e5c13f3
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -75,12 +75,4 @@ public class BackgroundAppState extends OverviewState {
        return new ScaleAndTranslation(scale, 0f, 0f);
    }

    @Override
    public int getVisibleElements(Launcher launcher) {
        if (SysUINavigationMode.getMode(launcher) == Mode.NO_BUTTON) {
            return super.getVisibleElements(launcher);
        }
        // Hide shelf content (e.g. QSB) because we fade it in when swiping up.
        return ALL_APPS_HEADER_EXTRA;
    }
}
+5 −23
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.OVERVIEW;
import static com.android.launcher3.allapps.AllAppsTransitionController.SPRING_DAMPING_RATIO;
import static com.android.launcher3.allapps.AllAppsTransitionController.SPRING_STIFFNESS;
import static com.android.launcher3.anim.Interpolators.DEACCEL_3;
import static com.android.launcher3.anim.Interpolators.LINEAR;

import android.animation.Animator;
@@ -44,11 +43,8 @@ import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherInitListener;
import com.android.launcher3.LauncherState;
import com.android.launcher3.LauncherStateManager;
import com.android.launcher3.allapps.AllAppsTransitionController;
import com.android.launcher3.allapps.DiscoveryBounce;
import com.android.launcher3.anim.AnimatorPlaybackController;
import com.android.launcher3.anim.AnimatorSetBuilder;
import com.android.launcher3.anim.SpringObjectAnimator;
import com.android.launcher3.compat.AccessibilityManagerCompat;
import com.android.launcher3.userevent.nano.LauncherLogProto;
@@ -220,7 +216,7 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe
                        : mShelfState == ShelfAnimState.PEEK
                                ? shelfPeekingProgress
                                : shelfOverviewProgress;
                mShelfAnim = createShelfProgressAnim(activity, toProgress);
                mShelfAnim = createShelfAnim(activity, toProgress);
                mShelfAnim.addListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
@@ -238,10 +234,10 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe
            LauncherState fromState, long transitionLength,
            Consumer<AnimatorPlaybackController> callback) {
        LauncherState endState = OVERVIEW;
        DeviceProfile dp = activity.getDeviceProfile();
        long accuracy = 2 * Math.max(dp.widthPx, dp.heightPx);
        if (wasVisible && fromState != BACKGROUND_APP) {
            // If a translucent app was launched fom launcher, animate launcher states.
            DeviceProfile dp = activity.getDeviceProfile();
            long accuracy = 2 * Math.max(dp.widthPx, dp.heightPx);
            callback.accept(activity.getStateManager()
                    .createAnimationToNewWorkspace(fromState, endState, accuracy));
            return;
@@ -254,11 +250,10 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe
        if (!activity.getDeviceProfile().isVerticalBarLayout()
                && SysUINavigationMode.getMode(activity) != Mode.NO_BUTTON) {
            // Don't animate the shelf when the mode is NO_BUTTON, because we update it atomically.
            Animator shiftAnim = createShelfProgressAnim(activity,
            Animator shiftAnim = createShelfAnim(activity,
                    fromState.getVerticalProgress(activity),
                    endState.getVerticalProgress(activity));
            anim.play(shiftAnim);
            anim.play(createShelfAlphaAnim(activity, endState, accuracy));
        }
        playScaleDownAnim(anim, activity, endState);

@@ -275,7 +270,7 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe
        callback.accept(controller);
    }

    private Animator createShelfProgressAnim(Launcher activity, float ... progressValues) {
    private Animator createShelfAnim(Launcher activity, float ... progressValues) {
        Animator shiftAnim = new SpringObjectAnimator<>(activity.getAllAppsController(),
                "allAppsSpringFromACH", activity.getAllAppsController().getShiftRange(),
                SPRING_DAMPING_RATIO, SPRING_STIFFNESS, progressValues);
@@ -283,19 +278,6 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe
        return shiftAnim;
    }

    /**
     * Very quickly fade the alpha of shelf content.
     */
    private Animator createShelfAlphaAnim(Launcher activity, LauncherState toState, long accuracy) {
        AllAppsTransitionController allAppsController = activity.getAllAppsController();
        AnimatorSetBuilder animBuilder = new AnimatorSetBuilder();
        animBuilder.setInterpolator(AnimatorSetBuilder.ANIM_ALL_APPS_FADE, DEACCEL_3);
        LauncherStateManager.AnimationConfig config = new LauncherStateManager.AnimationConfig();
        config.duration = accuracy;
        allAppsController.setAlphas(toState.getVisibleElements(activity), config, animBuilder);
        return animBuilder.build();
    }

    /**
     * Scale down recents from the center task being full screen to being in overview.
     */
+5 −11
Original line number Diff line number Diff line
@@ -27,8 +27,6 @@ import androidx.annotation.IntDef;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.R;
import com.android.launcher3.config.FeatureFlags;
import com.android.quickstep.SysUINavigationMode;
import com.android.quickstep.SysUINavigationMode.Mode;

import java.lang.annotation.Retention;

@@ -118,14 +116,10 @@ public class LayoutUtils {
    }

    public static int getShelfTrackingDistance(Context context, DeviceProfile dp) {
        if (SysUINavigationMode.getMode(context) == Mode.NO_BUTTON) {
            // Track the bottom of the window rather than the top of the shelf.
        // Track the bottom of the window.
        int shelfHeight = dp.hotseatBarSizePx + dp.getInsets().bottom;
        int spaceBetweenShelfAndRecents = (int) context.getResources().getDimension(
                R.dimen.task_card_vert_space);
        return shelfHeight + spaceBetweenShelfAndRecents;
    }
        // Start from a third of bottom inset to provide some shelf overlap.
        return dp.hotseatBarSizePx + dp.getInsets().bottom / 3 - dp.edgeMarginPx * 2;
    }
}