summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java14
2 files changed, 19 insertions, 1 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
index 4663a9afcd3d..b827356e952c 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
@@ -116,6 +116,8 @@ public class QuickStepContract {
public static final int SYSUI_STATE_IME_SWITCHER_SHOWING = 1 << 20;
// Device dozing/AOD state
public static final int SYSUI_STATE_DEVICE_DOZING = 1 << 21;
+ // The home feature is disabled (either by SUW/SysUI/device policy)
+ public static final int SYSUI_STATE_BACK_DISABLED = 1 << 22;
@Retention(RetentionPolicy.SOURCE)
@IntDef({SYSUI_STATE_SCREEN_PINNING,
@@ -139,7 +141,8 @@ public class QuickStepContract {
SYSUI_STATE_IME_SHOWING,
SYSUI_STATE_MAGNIFICATION_OVERLAP,
SYSUI_STATE_IME_SWITCHER_SHOWING,
- SYSUI_STATE_DEVICE_DOZING
+ SYSUI_STATE_DEVICE_DOZING,
+ SYSUI_STATE_BACK_DISABLED
})
public @interface SystemUiStateFlags {}
@@ -170,6 +173,7 @@ public class QuickStepContract {
str.add((flags & SYSUI_STATE_MAGNIFICATION_OVERLAP) != 0 ? "magnification_overlap" : "");
str.add((flags & SYSUI_STATE_IME_SWITCHER_SHOWING) != 0 ? "ime_switcher_showing" : "");
str.add((flags & SYSUI_STATE_DEVICE_DOZING) != 0 ? "device_dozing" : "");
+ str.add((flags & SYSUI_STATE_BACK_DISABLED) != 0 ? "back_disabled" : "");
return str.toString();
}
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java
index fe24ecd62a91..5a04355406e5 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java
@@ -21,12 +21,16 @@ import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SHOWN;
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.inputmethodservice.InputMethodService;
import android.os.IBinder;
import android.view.InsetsVisibilities;
+import android.view.View;
import com.android.internal.view.AppearanceRegion;
import com.android.systemui.model.SysUiState;
@@ -47,6 +51,8 @@ public class TaskbarDelegate implements CommandQueue.Callbacks {
private int mNavigationIconHints;
private final NavigationBarA11yHelper.NavA11yEventListener mNavA11yEventListener =
this::updateSysuiFlags;
+ private int mDisabledFlags;
+
@Inject
public TaskbarDelegate() { /* no-op */ }
@@ -81,6 +87,12 @@ public class TaskbarDelegate implements CommandQueue.Callbacks {
(mNavigationIconHints & NAVIGATION_HINT_BACK_ALT) != 0)
.setFlag(SYSUI_STATE_IME_SWITCHER_SHOWING,
(mNavigationIconHints & NAVIGATION_HINT_IME_SHOWN) != 0)
+ .setFlag(SYSUI_STATE_OVERVIEW_DISABLED,
+ (mDisabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0)
+ .setFlag(SYSUI_STATE_HOME_DISABLED,
+ (mDisabledFlags & View.STATUS_BAR_DISABLE_HOME) != 0)
+ .setFlag(SYSUI_STATE_BACK_DISABLED,
+ (mDisabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0)
.commitUpdate(mDisplayId);
}
@@ -103,6 +115,8 @@ public class TaskbarDelegate implements CommandQueue.Callbacks {
@Override
public void disable(int displayId, int state1, int state2, boolean animate) {
+ mDisabledFlags = state1;
+ updateSysuiFlags();
mOverviewProxyService.disable(displayId, state1, state2, animate);
}