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

Commit c97138e9 authored by Tracy Zhou's avatar Tracy Zhou
Browse files

Fix task bar transitions applied to unfolded task bar

Bug: 350102824
Test: Task bar scrim doesn't happen
Flag: com.android.wm.shell.enable_taskbar_on_phones
Change-Id: Ib0510d9e01b30b50bd5d295b23688547b1decef3
parent adcb3d67
Loading
Loading
Loading
Loading
+32 −15
Original line number Diff line number Diff line
@@ -247,8 +247,10 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
                ? context.getColor(R.color.taskbar_nav_icon_light_color)
                : context.getColor(R.color.taskbar_nav_icon_dark_color);

        if (enableTaskbarOnPhones() && mContext.isPhoneButtonNavMode()) {
            mTaskbarTransitions = new TaskbarTransitions(mContext, mNavButtonsView);
        }
    }

    /**
     * Initializes the controller
@@ -359,7 +361,9 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
                R.bool.floating_rotation_button_position_left);
        mControllers.rotationButtonController.setRotationButton(mFloatingRotationButton,
                mRotationButtonListener);
        if (enableTaskbarOnPhones() && mContext.isPhoneButtonNavMode()) {
            mTaskbarTransitions.init();
        }

        applyState();
        mPropertyHolders.forEach(StatePropertyHolder::endAnimation);
@@ -621,8 +625,10 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
    }

    public void setWallpaperVisible(boolean isVisible) {
        if (enableTaskbarOnPhones() && mContext.isPhoneButtonNavMode()) {
            mTaskbarTransitions.setWallpaperVisibility(isVisible);
        }
    }

    public void onTransitionModeUpdated(int barMode, boolean checkBarModes) {
        mTransitionMode = barMode;
@@ -632,26 +638,33 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
    }

    public void checkNavBarModes() {
        if (enableTaskbarOnPhones() && mContext.isPhoneButtonNavMode()) {
            boolean isBarHidden = (mSysuiStateFlags & SYSUI_STATE_NAV_BAR_HIDDEN) != 0;
            mTaskbarTransitions.transitionTo(mTransitionMode, !isBarHidden);
        }
    }

    public void finishBarAnimations() {
        if (enableTaskbarOnPhones() && mContext.isPhoneButtonNavMode()) {
            mTaskbarTransitions.finishAnimations();
        }
    }

    public void touchAutoDim(boolean reset) {
        if (enableTaskbarOnPhones() && mContext.isPhoneButtonNavMode()) {
            mTaskbarTransitions.setAutoDim(false);
            mHandler.removeCallbacks(mAutoDim);
            if (reset) {
                mHandler.postDelayed(mAutoDim, AUTODIM_TIMEOUT_MS);
            }
        }
    }

    public void transitionTo(@BarTransitions.TransitionMode int barMode,
            boolean animate) {
    public void transitionTo(@BarTransitions.TransitionMode int barMode, boolean animate) {
        if (enableTaskbarOnPhones() && mContext.isPhoneButtonNavMode()) {
            mTaskbarTransitions.transitionTo(barMode, animate);
        }
    }

    /** Use to set the translationY for the all nav+contextual buttons */
    public AnimatedFloat getTaskbarNavButtonTranslationY() {
@@ -752,8 +765,10 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT

    private void onDarkIntensityChanged() {
        updateNavButtonColor();
        if (enableTaskbarOnPhones() && mContext.isPhoneButtonNavMode()) {
            mTaskbarTransitions.onDarkIntensityChanged(mTaskbarNavButtonDarkIntensity.value);
        }
    }

    protected ImageView addButton(@DrawableRes int drawableId, @TaskbarButton int buttonType,
            ViewGroup parent, TaskbarNavButtonController navButtonController, @IdRes int id) {
@@ -1100,8 +1115,10 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
                + mOnBackgroundNavButtonColorOverrideMultiplier.value);

        mNavButtonsView.dumpLogs(prefix + "\t", pw);
        if (enableTaskbarOnPhones() && mContext.isPhoneButtonNavMode()) {
            mTaskbarTransitions.dumpLogs(prefix + "\t", pw);
        }
    }

    private static String getStateString(int flags) {
        StringJoiner str = new StringJoiner("|");