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

Commit 6c6c2f45 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Adding a separate state for QuickScrub

Bug: 74014237
Change-Id: Ie86ac589f0ad0e1470fb6b0b71263ec6593eb1e3
parent ae9e85b8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
    private LauncherTransitionAnimator composeRecentsLaunchAnimator(View v,
            RemoteAnimationTargetCompat[] targets) {
        // Ensure recents is actually visible
        if (!mLauncher.isInState(LauncherState.OVERVIEW)) {
        if (!mLauncher.getStateManager().getState().overviewUi) {
            return null;
        }

@@ -720,7 +720,7 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
                postAtFrontOfQueueAsynchronously(handler, () -> {
                    if ((Utilities.getPrefs(mLauncher)
                            .getBoolean("pref_use_screenshot_for_swipe_up", false)
                            && mLauncher.isInState(LauncherState.OVERVIEW))
                            && mLauncher.getStateManager().getState().overviewUi)
                            || !launcherIsATargetWithMode(targets, MODE_OPENING)) {
                        // We use a separate transition for Overview mode. And we can skip the
                        // animation in cases where Launcher is not in the set of opening targets.
+41 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.launcher3.uioverrides;

import com.android.launcher3.Launcher;

/**
 * Extension of overview state used for QuickScrub
 */
public class FastOverviewState extends OverviewState {

    private static final int STATE_FLAGS = FLAG_SHOW_SCRIM | FLAG_DISABLE_RESTORE
            | FLAG_PAGE_BACKGROUNDS | FLAG_DISABLE_INTERACTION | FLAG_OVERVIEW_UI;

    private static final boolean DEBUG_DIFFERENT_UI = false;

    public FastOverviewState(int id) {
        super(id, STATE_FLAGS);
    }

    @Override
    public float getHoseatAlpha(Launcher launcher) {
        if (DEBUG_DIFFERENT_UI) {
            return 0;
        }
        return super.getHoseatAlpha(launcher);
    }
}
+6 −2
Original line number Diff line number Diff line
@@ -34,10 +34,14 @@ import com.android.quickstep.RecentsView;
public class OverviewState extends LauncherState {

    private static final int STATE_FLAGS = FLAG_SHOW_SCRIM | FLAG_WORKSPACE_ICONS_CAN_BE_DRAGGED
            | FLAG_DISABLE_RESTORE | FLAG_PAGE_BACKGROUNDS;
            | FLAG_DISABLE_RESTORE | FLAG_PAGE_BACKGROUNDS | FLAG_OVERVIEW_UI;

    public OverviewState(int id) {
        super(id, ContainerType.TASKSWITCHER, OVERVIEW_TRANSITION_MS, STATE_FLAGS);
        this(id, STATE_FLAGS);
    }

    protected OverviewState(int id, int stateFlags) {
        super(id, ContainerType.TASKSWITCHER, OVERVIEW_TRANSITION_MS, stateFlags);
    }

    @Override
+7 −7
Original line number Diff line number Diff line
@@ -60,10 +60,10 @@ public class RecentsViewStateController implements StateHandler {

    @Override
    public void setState(LauncherState state) {
        mWorkspaceCard.setWorkspaceScrollingEnabled(state == OVERVIEW);
        setVisibility(state == OVERVIEW);
        setTransitionProgress(state == OVERVIEW ? 1 : 0);
        if (state == OVERVIEW) {
        mWorkspaceCard.setWorkspaceScrollingEnabled(state.overviewUi);
        setVisibility(state.overviewUi);
        setTransitionProgress(state.overviewUi ? 1 : 0);
        if (state.overviewUi) {
            for (int i = mRecentsView.getFirstTaskIndex(); i < mRecentsView.getPageCount(); i++) {
                ((TaskView) mRecentsView.getPageAt(i)).resetVisualProperties();
            }
@@ -92,20 +92,20 @@ public class RecentsViewStateController implements StateHandler {
        }

        ObjectAnimator progressAnim =
                mTransitionProgress.animateToValue(toState == OVERVIEW ? 1 : 0);
                mTransitionProgress.animateToValue(toState.overviewUi ? 1 : 0);
        progressAnim.setDuration(config.duration);
        progressAnim.setInterpolator(Interpolators.LINEAR);
        progressAnim.addListener(new AnimationSuccessListener() {

            @Override
            public void onAnimationSuccess(Animator animator) {
                mWorkspaceCard.setWorkspaceScrollingEnabled(toState == OVERVIEW);
                mWorkspaceCard.setWorkspaceScrollingEnabled(toState.overviewUi);
                mRecentsView.setCurrentPage(mRecentsView.getPageNearestToCenterOfScreen());
            }
        });
        builder.play(progressAnim);

        ObjectAnimator visibilityAnim = animateVisibility(toState == OVERVIEW);
        ObjectAnimator visibilityAnim = animateVisibility(toState.overviewUi);
        visibilityAnim.setDuration(config.duration);
        visibilityAnim.setInterpolator(Interpolators.LINEAR);
        builder.play(visibilityAnim);
+0 −2
Original line number Diff line number Diff line
@@ -43,13 +43,11 @@ public class UiFactory {
    public static TouchController[] createTouchControllers(Launcher launcher) {
        if (FeatureFlags.ENABLE_TWO_SWIPE_TARGETS) {
            return new TouchController[] {
                    new IgnoreTouchesInQuickScrub(),
                    new EdgeSwipeController(launcher),
                    new TwoStepSwipeController(launcher),
                    new OverviewSwipeController(launcher)};
        } else {
            return new TouchController[] {
                    new IgnoreTouchesInQuickScrub(),
                    new TwoStepSwipeController(launcher),
                    new OverviewSwipeController(launcher)};
        }
Loading