Merge "Respect StatusBarManager back/home disable flags" into sc-v2-dev am: f8d55e0e2a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15590495 Change-Id: I183d36b6cea375d05dacd11a998a7afafecb6ee6
This commit is contained in:
@@ -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.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_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_SWITCHER_SHOWING;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
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_ONLY_BACK_FOR_BOUNCER_VISIBLE = 1 << 4;
|
||||
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;
|
||||
|
||||
@@ -169,7 +175,8 @@ public class NavbarButtonsViewController {
|
||||
mBackButton = addButton(R.drawable.ic_sysbar_back, BUTTON_BACK,
|
||||
mNavButtonContainer, mControllers.navButtonController, R.id.back);
|
||||
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
|
||||
mPropertyHolders.add(new StatePropertyHolder(mBackButton,
|
||||
flags -> (flags & FLAG_KEYGUARD_VISIBLE) == 0 ||
|
||||
@@ -180,12 +187,14 @@ public class NavbarButtonsViewController {
|
||||
navButtonController, R.id.home);
|
||||
mPropertyHolders.add(new StatePropertyHolder(homeButton,
|
||||
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,
|
||||
navContainer, navButtonController, R.id.recent_apps);
|
||||
mPropertyHolders.add(new StatePropertyHolder(recentsButton,
|
||||
flags -> (flags & FLAG_IME_VISIBLE) == 0 &&
|
||||
(flags & FLAG_KEYGUARD_VISIBLE) == 0));
|
||||
(flags & FLAG_KEYGUARD_VISIBLE) == 0 &&
|
||||
(flags & FLAG_DISABLE_RECENTS) == 0));
|
||||
|
||||
// A11y button
|
||||
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 a11yLongClickable =
|
||||
(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) {
|
||||
return;
|
||||
@@ -211,6 +226,10 @@ public class NavbarButtonsViewController {
|
||||
updateStateForFlag(FLAG_IME_VISIBLE, isImeVisible);
|
||||
updateStateForFlag(FLAG_SWITCHER_SUPPORTED, isImeSwitcherShowing);
|
||||
updateStateForFlag(FLAG_A11Y_VISIBLE, a11yVisible);
|
||||
updateStateForFlag(FLAG_DISABLE_HOME, isHomeDisabled);
|
||||
updateStateForFlag(FLAG_DISABLE_RECENTS, isRecentsDisabled);
|
||||
updateStateForFlag(FLAG_DISABLE_BACK, isBackDisabled);
|
||||
|
||||
if (mA11yButton != null) {
|
||||
// Only used in 3 button
|
||||
mA11yButton.setLongClickable(a11yLongClickable);
|
||||
|
||||
@@ -235,7 +235,6 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
|
||||
return;
|
||||
}
|
||||
mControllers.rotationButtonController.onDisable2FlagChanged(state2);
|
||||
mControllers.taskbarKeyguardController.disableNavbarElements(state1, state2);
|
||||
}
|
||||
|
||||
public void onSystemBarAttributesChanged(int displayId, int behavior) {
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
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_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 android.app.KeyguardManager;
|
||||
@@ -9,7 +12,6 @@ import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.view.View;
|
||||
|
||||
/**
|
||||
* Controller for managing keyguard state for taskbar
|
||||
@@ -17,10 +19,11 @@ import android.view.View;
|
||||
public class TaskbarKeyguardController {
|
||||
|
||||
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 int mDisabledNavIcons;
|
||||
private int mKeyguardSysuiFlags;
|
||||
private boolean mBouncerShowing;
|
||||
private NavbarButtonsViewController mNavbarButtonsViewController;
|
||||
@@ -70,22 +73,13 @@ public class TaskbarKeyguardController {
|
||||
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
|
||||
*/
|
||||
private void updateIconsForBouncer() {
|
||||
boolean disableBack = (mDisabledNavIcons & View.STATUS_BAR_DISABLE_BACK) != 0;
|
||||
boolean disableRecent = (mDisabledNavIcons & View.STATUS_BAR_DISABLE_RECENT) != 0;
|
||||
boolean disableHome = (mDisabledNavIcons & View.STATUS_BAR_DISABLE_HOME) != 0;
|
||||
boolean disableBack = (mKeyguardSysuiFlags & SYSUI_STATE_BACK_DISABLED) != 0;
|
||||
boolean disableRecent = (mKeyguardSysuiFlags & SYSUI_STATE_OVERVIEW_DISABLED) != 0;
|
||||
boolean disableHome = (mKeyguardSysuiFlags & SYSUI_STATE_HOME_DISABLED) != 0;
|
||||
boolean onlyBackEnabled = !disableBack && disableRecent && disableHome;
|
||||
|
||||
boolean showBackForBouncer = onlyBackEnabled &&
|
||||
|
||||
Reference in New Issue
Block a user