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

Commit f8d55e0e authored by Vinit Nayak's avatar Vinit Nayak Committed by Android (Google) Code Review
Browse files

Merge "Respect StatusBarManager back/home disable flags" into sc-v2-dev

parents 6e2d149a 54dccc24
Loading
Loading
Loading
Loading
+22 −3
Original line number Original line Diff line number Diff line
@@ -25,8 +25,11 @@ import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_IM
import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_KEYGUARD;
import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_KEYGUARD;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_CLICKABLE;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_CLICKABLE;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BACK_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_HOME_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_SWITCHER_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_SWITCHER_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;


import android.animation.ObjectAnimator;
import android.animation.ObjectAnimator;
import android.annotation.DrawableRes;
import android.annotation.DrawableRes;
@@ -69,6 +72,9 @@ public class NavbarButtonsViewController {
    private static final int FLAG_A11Y_VISIBLE = 1 << 3;
    private static final int FLAG_A11Y_VISIBLE = 1 << 3;
    private static final int FLAG_ONLY_BACK_FOR_BOUNCER_VISIBLE = 1 << 4;
    private static final int FLAG_ONLY_BACK_FOR_BOUNCER_VISIBLE = 1 << 4;
    private static final int FLAG_KEYGUARD_VISIBLE = 1 << 5;
    private static final int FLAG_KEYGUARD_VISIBLE = 1 << 5;
    private static final int FLAG_DISABLE_HOME = 1 << 6;
    private static final int FLAG_DISABLE_RECENTS = 1 << 7;
    private static final int FLAG_DISABLE_BACK = 1 << 8;


    private static final int MASK_IME_SWITCHER_VISIBLE = FLAG_SWITCHER_SUPPORTED | FLAG_IME_VISIBLE;
    private static final int MASK_IME_SWITCHER_VISIBLE = FLAG_SWITCHER_SUPPORTED | FLAG_IME_VISIBLE;


@@ -169,7 +175,8 @@ public class NavbarButtonsViewController {
        mBackButton = addButton(R.drawable.ic_sysbar_back, BUTTON_BACK,
        mBackButton = addButton(R.drawable.ic_sysbar_back, BUTTON_BACK,
                mNavButtonContainer, mControllers.navButtonController, R.id.back);
                mNavButtonContainer, mControllers.navButtonController, R.id.back);
        mPropertyHolders.add(new StatePropertyHolder(mBackButton,
        mPropertyHolders.add(new StatePropertyHolder(mBackButton,
                flags -> (flags & FLAG_IME_VISIBLE) == 0));
                flags -> (flags & FLAG_IME_VISIBLE) == 0 &&
                        (flags & FLAG_DISABLE_BACK) == 0));
        // Hide when keyguard is showing, show when bouncer is showing
        // Hide when keyguard is showing, show when bouncer is showing
        mPropertyHolders.add(new StatePropertyHolder(mBackButton,
        mPropertyHolders.add(new StatePropertyHolder(mBackButton,
                flags -> (flags & FLAG_KEYGUARD_VISIBLE) == 0 ||
                flags -> (flags & FLAG_KEYGUARD_VISIBLE) == 0 ||
@@ -180,12 +187,14 @@ public class NavbarButtonsViewController {
                navButtonController, R.id.home);
                navButtonController, R.id.home);
        mPropertyHolders.add(new StatePropertyHolder(homeButton,
        mPropertyHolders.add(new StatePropertyHolder(homeButton,
                flags -> (flags & FLAG_IME_VISIBLE) == 0 &&
                flags -> (flags & FLAG_IME_VISIBLE) == 0 &&
                        (flags & FLAG_KEYGUARD_VISIBLE) == 0));
                        (flags & FLAG_KEYGUARD_VISIBLE) == 0 &&
                        (flags & FLAG_DISABLE_HOME) == 0));
        View recentsButton = addButton(R.drawable.ic_sysbar_recent, BUTTON_RECENTS,
        View recentsButton = addButton(R.drawable.ic_sysbar_recent, BUTTON_RECENTS,
                navContainer, navButtonController, R.id.recent_apps);
                navContainer, navButtonController, R.id.recent_apps);
        mPropertyHolders.add(new StatePropertyHolder(recentsButton,
        mPropertyHolders.add(new StatePropertyHolder(recentsButton,
                flags -> (flags & FLAG_IME_VISIBLE) == 0 &&
                flags -> (flags & FLAG_IME_VISIBLE) == 0 &&
                        (flags & FLAG_KEYGUARD_VISIBLE) == 0));
                        (flags & FLAG_KEYGUARD_VISIBLE) == 0 &&
                        (flags & FLAG_DISABLE_RECENTS) == 0));


        // A11y button
        // A11y button
        mA11yButton = addButton(R.drawable.ic_sysbar_accessibility_button, BUTTON_A11Y,
        mA11yButton = addButton(R.drawable.ic_sysbar_accessibility_button, BUTTON_A11Y,
@@ -202,6 +211,12 @@ public class NavbarButtonsViewController {
        boolean a11yVisible = (systemUiStateFlags & SYSUI_STATE_A11Y_BUTTON_CLICKABLE) != 0;
        boolean a11yVisible = (systemUiStateFlags & SYSUI_STATE_A11Y_BUTTON_CLICKABLE) != 0;
        boolean a11yLongClickable =
        boolean a11yLongClickable =
                (systemUiStateFlags & SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE) != 0;
                (systemUiStateFlags & SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE) != 0;
        boolean isHomeDisabled =
                (systemUiStateFlags & SYSUI_STATE_HOME_DISABLED) != 0;
        boolean isRecentsDisabled =
                (systemUiStateFlags & SYSUI_STATE_OVERVIEW_DISABLED) != 0;
        boolean isBackDisabled =
                (systemUiStateFlags & SYSUI_STATE_BACK_DISABLED) != 0;


        if (!forceUpdate && systemUiStateFlags == mSysuiStateFlags) {
        if (!forceUpdate && systemUiStateFlags == mSysuiStateFlags) {
            return;
            return;
@@ -211,6 +226,10 @@ public class NavbarButtonsViewController {
        updateStateForFlag(FLAG_IME_VISIBLE, isImeVisible);
        updateStateForFlag(FLAG_IME_VISIBLE, isImeVisible);
        updateStateForFlag(FLAG_SWITCHER_SUPPORTED, isImeSwitcherShowing);
        updateStateForFlag(FLAG_SWITCHER_SUPPORTED, isImeSwitcherShowing);
        updateStateForFlag(FLAG_A11Y_VISIBLE, a11yVisible);
        updateStateForFlag(FLAG_A11Y_VISIBLE, a11yVisible);
        updateStateForFlag(FLAG_DISABLE_HOME, isHomeDisabled);
        updateStateForFlag(FLAG_DISABLE_RECENTS, isRecentsDisabled);
        updateStateForFlag(FLAG_DISABLE_BACK, isBackDisabled);

        if (mA11yButton != null) {
        if (mA11yButton != null) {
            // Only used in 3 button
            // Only used in 3 button
            mA11yButton.setLongClickable(a11yLongClickable);
            mA11yButton.setLongClickable(a11yLongClickable);
+0 −1
Original line number Original line Diff line number Diff line
@@ -235,7 +235,6 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
            return;
            return;
        }
        }
        mControllers.rotationButtonController.onDisable2FlagChanged(state2);
        mControllers.rotationButtonController.onDisable2FlagChanged(state2);
        mControllers.taskbarKeyguardController.disableNavbarElements(state1, state2);
    }
    }


    public void onSystemBarAttributesChanged(int displayId, int behavior) {
    public void onSystemBarAttributesChanged(int displayId, int behavior) {
+9 −15
Original line number Original line Diff line number Diff line
package com.android.launcher3.taskbar;
package com.android.launcher3.taskbar;


import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BACK_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DOZING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DOZING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_HOME_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING;


import android.app.KeyguardManager;
import android.app.KeyguardManager;
@@ -9,7 +12,6 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter;
import android.view.View;


/**
/**
 * Controller for managing keyguard state for taskbar
 * Controller for managing keyguard state for taskbar
@@ -17,10 +19,11 @@ import android.view.View;
public class TaskbarKeyguardController {
public class TaskbarKeyguardController {


    private static final int KEYGUARD_SYSUI_FLAGS = SYSUI_STATE_BOUNCER_SHOWING |
    private static final int KEYGUARD_SYSUI_FLAGS = SYSUI_STATE_BOUNCER_SHOWING |
            SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING | SYSUI_STATE_DEVICE_DOZING;
            SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING | SYSUI_STATE_DEVICE_DOZING |
            SYSUI_STATE_OVERVIEW_DISABLED | SYSUI_STATE_HOME_DISABLED |
            SYSUI_STATE_BACK_DISABLED;


    private final TaskbarActivityContext mContext;
    private final TaskbarActivityContext mContext;
    private int mDisabledNavIcons;
    private int mKeyguardSysuiFlags;
    private int mKeyguardSysuiFlags;
    private boolean mBouncerShowing;
    private boolean mBouncerShowing;
    private NavbarButtonsViewController mNavbarButtonsViewController;
    private NavbarButtonsViewController mNavbarButtonsViewController;
@@ -70,22 +73,13 @@ public class TaskbarKeyguardController {
        mIsScreenOff = false;
        mIsScreenOff = false;
    }
    }


    public void disableNavbarElements(int state1, int state2) {
        if (mDisabledNavIcons == state1) {
            // no change
            return;
        }
        mDisabledNavIcons = state1;
        updateIconsForBouncer();
    }

    /**
    /**
     * Hides/shows taskbar when keyguard is up
     * Hides/shows taskbar when keyguard is up
     */
     */
    private void updateIconsForBouncer() {
    private void updateIconsForBouncer() {
        boolean disableBack = (mDisabledNavIcons & View.STATUS_BAR_DISABLE_BACK) != 0;
        boolean disableBack = (mKeyguardSysuiFlags & SYSUI_STATE_BACK_DISABLED) != 0;
        boolean disableRecent = (mDisabledNavIcons & View.STATUS_BAR_DISABLE_RECENT) != 0;
        boolean disableRecent = (mKeyguardSysuiFlags & SYSUI_STATE_OVERVIEW_DISABLED) != 0;
        boolean disableHome = (mDisabledNavIcons & View.STATUS_BAR_DISABLE_HOME) != 0;
        boolean disableHome = (mKeyguardSysuiFlags & SYSUI_STATE_HOME_DISABLED) != 0;
        boolean onlyBackEnabled = !disableBack && disableRecent && disableHome;
        boolean onlyBackEnabled = !disableBack && disableRecent && disableHome;


        boolean showBackForBouncer = onlyBackEnabled &&
        boolean showBackForBouncer = onlyBackEnabled &&