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

Commit 52d47645 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Modify Taskbar code to accommodate bubble bar gesture to...

Merge "Revert "Modify Taskbar code to accommodate bubble bar gesture to stash/unstash"" into udc-dev
parents 04a62111 66278754
Loading
Loading
Loading
Loading
+3 −21
Original line number Diff line number Diff line
@@ -444,11 +444,6 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
        return mControllers.taskbarDragController;
    }

    @Nullable
    public BubbleControllers getBubbleControllers() {
        return mControllers.bubbleControllers.orElse(null);
    }

    @Override
    public ViewCache getViewCache() {
        return mViewCache;
@@ -625,12 +620,8 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
        mControllers.taskbarForceVisibleImmersiveController.updateSysuiFlags(systemUiStateFlags);
        mControllers.voiceInteractionWindowController.setIsVoiceInteractionWindowVisible(
                (systemUiStateFlags & SYSUI_STATE_VOICE_INTERACTION_WINDOW_SHOWING) != 0, fromInit);

        mControllers.uiController.updateStateForSysuiFlags(systemUiStateFlags);
        mControllers.bubbleControllers.ifPresent(controllers -> {
            controllers.bubbleBarController.updateStateForSysuiFlags(systemUiStateFlags);
            controllers.bubbleStashedHandleViewController.setIsHomeButtonDisabled(
                    mControllers.navbarButtonsViewController.isHomeDisabled());
        });
    }

    /**
@@ -726,7 +717,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
            }
        }
        mWindowLayoutParams.height = height;
        mControllers.taskbarInsetsController.onTaskbarOrBubblebarWindowHeightOrInsetsChanged();
        mControllers.taskbarInsetsController.onTaskbarWindowHeightOrInsetsChanged();
        mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams);
    }

@@ -984,19 +975,10 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
     * Called when we want to unstash taskbar when user performs swipes up gesture.
     */
    public void onSwipeToUnstashTaskbar() {
        mControllers.taskbarStashController.updateAndAnimateTransientTaskbar(/* stash= */ false);
        mControllers.taskbarStashController.updateAndAnimateTransientTaskbar(false);
        mControllers.taskbarEduTooltipController.hide();
    }

    /**
     * Called when we want to open bubblebar when user performs swipes up gesture.
     */
    public void onSwipeToOpenBubblebar() {
        mControllers.bubbleControllers.ifPresent(controllers -> {
            controllers.bubbleStashController.showBubbleBar(/* expandBubbles= */ true);
        });
    }

    /** Returns {@code true} if taskbar All Apps is open. */
    public boolean isTaskbarAllAppsOpen() {
        return mControllers.taskbarAllAppsController.isOpen();
+12 −37
Original line number Diff line number Diff line
@@ -55,13 +55,13 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
    private val touchableRegion: Region = Region()
    private val insetsOwner: IBinder = Binder()
    private val deviceProfileChangeListener = { _: DeviceProfile ->
        onTaskbarOrBubblebarWindowHeightOrInsetsChanged()
        onTaskbarWindowHeightOrInsetsChanged()
    }
    private val gestureNavSettingsObserver =
        GestureNavigationSettingsObserver(
            context.mainThreadHandler,
            context,
            this::onTaskbarOrBubblebarWindowHeightOrInsetsChanged
            this::onTaskbarWindowHeightOrInsetsChanged
        )

    // Initialized in init.
@@ -71,7 +71,7 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
    fun init(controllers: TaskbarControllers) {
        this.controllers = controllers
        windowLayoutParams = context.windowLayoutParams
        onTaskbarOrBubblebarWindowHeightOrInsetsChanged()
        onTaskbarWindowHeightOrInsetsChanged()

        context.addOnDeviceProfileChangeListener(deviceProfileChangeListener)
        gestureNavSettingsObserver.registerForCallingUser()
@@ -82,7 +82,7 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
        gestureNavSettingsObserver.unregister()
    }

    fun onTaskbarOrBubblebarWindowHeightOrInsetsChanged() {
    fun onTaskbarWindowHeightOrInsetsChanged() {
        if (context.isGestureNav) {
            windowLayoutParams.providedInsets =
                arrayOf(
@@ -104,33 +104,13 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
                )
        }

        val taskbarTouchableHeight = controllers.taskbarStashController.touchableHeight
        val bubblesTouchableHeight =
            if (controllers.bubbleControllers.isPresent)
                controllers.bubbleControllers.get().bubbleStashController.touchableHeight
            else 0
        val touchableHeight = Math.max(taskbarTouchableHeight, bubblesTouchableHeight)

        if (
            controllers.bubbleControllers.isPresent &&
                controllers.bubbleControllers.get().bubbleStashController.isBubblesShowingOnHome
        ) {
            val iconBounds =
                controllers.bubbleControllers.get().bubbleBarViewController.bubbleBarBounds
            touchableRegion.set(
                iconBounds.left,
                iconBounds.top,
                iconBounds.right,
                iconBounds.bottom
            )
        } else {
        val touchableHeight = controllers.taskbarStashController.touchableHeight
        touchableRegion.set(
            0,
            windowLayoutParams.height - touchableHeight,
            context.deviceProfile.widthPx,
            windowLayoutParams.height
        )
        }
        val contentHeight = controllers.taskbarStashController.contentHeightToReportToApps
        val tappableHeight = controllers.taskbarStashController.tappableHeightToReportToApps
        val res = context.resources
@@ -219,9 +199,6 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
            context.dragLayer,
            insetsInfo.touchableRegion
        )
        val bubbleBarVisible =
            controllers.bubbleControllers.isPresent &&
                controllers.bubbleControllers.get().bubbleBarViewController.isBubbleBarVisible()
        var insetsIsTouchableRegion = true
        if (context.dragLayer.alpha < AlphaUpdateListener.ALPHA_CUTOFF_THRESHOLD) {
            // Let touches pass through us.
@@ -242,9 +219,7 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
            insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_FRAME)
            insetsIsTouchableRegion = false
        } else if (
            controllers.taskbarViewController.areIconsVisible() ||
                context.isNavBarKidsModeActive ||
                bubbleBarVisible
            controllers.taskbarViewController.areIconsVisible() || context.isNavBarKidsModeActive
        ) {
            // Taskbar has some touchable elements, take over the full taskbar area
            if (
+1 −9
Original line number Diff line number Diff line
@@ -408,14 +408,6 @@ public class TaskbarLauncherStateController {
                    + ", mLauncherState: " + mLauncherState
                    + ", toAlignment: " + toAlignment);
        }
        mControllers.bubbleControllers.ifPresent(controllers -> {
            // Show the bubble bar when on launcher home or in overview.
            boolean onHome = isInLauncher && mLauncherState == LauncherState.NORMAL;
            boolean onOverview = mLauncherState == LauncherState.OVERVIEW;
            controllers.bubbleStashController.setBubblesShowingOnHome(onHome);
            controllers.bubbleStashController.setBubblesShowingOnOverview(onOverview);
        });

        AnimatorSet animatorSet = new AnimatorSet();

        if (hasAnyFlag(changedFlags, FLAG_LAUNCHER_IN_STATE_TRANSITION)) {
@@ -487,7 +479,7 @@ public class TaskbarLauncherStateController {
                        TaskbarStashController stashController =
                                mControllers.taskbarStashController;
                        stashController.updateAndAnimateTransientTaskbar(
                                /* stash */ true, /* duration */ 0, true /* bubblesShouldFollow */);
                                /* stash */ true, /* duration */ 0);
                    }
                });
            } else {
+0 −6
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
 */
package com.android.launcher3.taskbar;

import static com.android.launcher3.taskbar.bubbles.BubbleBarController.BUBBLE_BAR_ENABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BUBBLES_EXPANDED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BUBBLES_MANAGE_MENU_EXPANDED;

@@ -24,7 +23,6 @@ import android.view.animation.Interpolator;
import android.view.animation.PathInterpolator;

import com.android.launcher3.anim.AnimatedFloat;
import com.android.launcher3.util.DisplayController;
import com.android.quickstep.SystemUiProxy;

import java.io.PrintWriter;
@@ -65,10 +63,6 @@ public class TaskbarScrimViewController implements TaskbarControllers.LoggableTa
     * Updates the scrim state based on the flags.
     */
    public void updateStateForSysuiFlags(int stateFlags, boolean skipAnim) {
        if (BUBBLE_BAR_ENABLED && DisplayController.isTransientTaskbar(mActivity)) {
            // These scrims aren't used if bubble bar & transient taskbar are active.
            return;
        }
        final boolean bubblesExpanded = (stateFlags & SYSUI_STATE_BUBBLES_EXPANDED) != 0;
        final boolean manageMenuExpanded =
                (stateFlags & SYSUI_STATE_BUBBLES_MANAGE_MENU_EXPANDED) != 0;
+11 −54
Original line number Diff line number Diff line
@@ -255,15 +255,14 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
    private boolean mEnableBlockingTimeoutDuringTests = false;

    // Evaluate whether the handle should be stashed
    private final IntPredicate mIsStashedPredicate = flags -> {
    private final StatePropertyHolder mStatePropertyHolder = new StatePropertyHolder(
            flags -> {
                boolean inApp = hasAnyFlag(flags, FLAGS_IN_APP);
                boolean stashedInApp = hasAnyFlag(flags, FLAGS_STASHED_IN_APP);
                boolean stashedLauncherState = hasAnyFlag(flags, FLAG_IN_STASHED_LAUNCHER_STATE);
                boolean forceStashed = hasAnyFlag(flags, FLAGS_FORCE_STASHED);
                return (inApp && stashedInApp) || (!inApp && stashedLauncherState) || forceStashed;
    };
    private final StatePropertyHolder mStatePropertyHolder = new StatePropertyHolder(
            mIsStashedPredicate);
            });

    private boolean mIsTaskbarSystemActionRegistered = false;
    private TaskbarSharedState mTaskbarSharedState;
@@ -503,29 +502,15 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba

    /**
     * Stash or unstashes the transient taskbar, using the default TASKBAR_STASH_DURATION.
     * If bubble bar exists, it will match taskbars stashing behavior.
     */
    public void updateAndAnimateTransientTaskbar(boolean stash) {
        updateAndAnimateTransientTaskbar(stash, TASKBAR_STASH_DURATION,
                /* shouldBubblesFollow= */ true);
    }

    /**
     * Stash or unstashes the transient taskbar, using the default TASKBAR_STASH_DURATION.
     * If bubble bar exists, it will match taskbars stashing behavior.
     */
    public void updateAndAnimateTransientTaskbar(boolean stash, boolean shouldBubblesFollow) {
        updateAndAnimateTransientTaskbar(stash, TASKBAR_STASH_DURATION, shouldBubblesFollow);
        updateAndAnimateTransientTaskbar(stash, TASKBAR_STASH_DURATION);
    }

    /**
     * Stash or unstashes the transient taskbar.
     * @param stash whether transient taskbar should be stashed.
     * @param duration how long the duration of the stash should take.
     * @param shouldBubblesFollow whether bubbles should match taskbars behavior.
     */
    public void updateAndAnimateTransientTaskbar(boolean stash, long duration,
            boolean shouldBubblesFollow) {
    public void updateAndAnimateTransientTaskbar(boolean stash, long duration) {
        if (!DisplayController.isTransientTaskbar(mActivity)) {
            return;
        }
@@ -541,34 +526,6 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
            updateStateForFlag(FLAG_STASHED_IN_APP_AUTO, stash);
            applyState();
        }

        mControllers.bubbleControllers.ifPresent(controllers -> {
            if (shouldBubblesFollow) {
                final boolean willStash = mIsStashedPredicate.test(mState);
                if (willStash != controllers.bubbleStashController.isStashed()) {
                    // Typically bubbles gets stashed / unstashed along with Taskbar, however, if
                    // taskbar is becoming stashed because bubbles is being expanded, we don't want
                    // to stash bubbles.
                    if (willStash) {
                        controllers.bubbleStashController.stashBubbleBar();
                    } else {
                        controllers.bubbleStashController.showBubbleBar(false /* expandBubbles */);
                    }
                }
            }
        });
    }

    /**
     * Stashes transient taskbar after it has timed out.
     */
    private void updateAndAnimateTransientTaskbarForTimeout() {
        // If bubbles are expanded we shouldn't stash them when taskbar is hidden
        // for the timeout.
        boolean bubbleBarExpanded = mControllers.bubbleControllers.isPresent()
                && mControllers.bubbleControllers.get().bubbleBarViewController.isExpanded();
        updateAndAnimateTransientTaskbar(/* stash= */ true,
                /* shouldBubblesFollow= */ !bubbleBarExpanded);
    }

    /**
@@ -923,7 +880,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
    private void onIsStashedChanged(boolean isStashed) {
        mControllers.runAfterInit(() -> {
            mControllers.stashedHandleViewController.onIsStashedChanged(isStashed);
            mControllers.taskbarInsetsController.onTaskbarOrBubblebarWindowHeightOrInsetsChanged();
            mControllers.taskbarInsetsController.onTaskbarWindowHeightOrInsetsChanged();
        });
    }

@@ -1170,7 +1127,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
        if (mControllers.taskbarAutohideSuspendController.isSuspended()) {
            return;
        }
        updateAndAnimateTransientTaskbarForTimeout();
        updateAndAnimateTransientTaskbar(true);
    }

    @Override
Loading