Loading core/api/system-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -859,7 +859,11 @@ package android.app { public class StatusBarManager { method @NonNull @RequiresPermission(android.Manifest.permission.STATUS_BAR) public android.app.StatusBarManager.DisableInfo getDisableInfo(); method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public int getNavBarModeOverride(); method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setDisabledForSetup(boolean); method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setNavBarModeOverride(int); field public static final int NAV_BAR_MODE_OVERRIDE_KIDS = 1; // 0x1 field public static final int NAV_BAR_MODE_OVERRIDE_NONE = 0; // 0x0 } public static final class StatusBarManager.DisableInfo { core/java/android/app/StatusBarManager.java +73 −0 Original line number Diff line number Diff line Loading @@ -282,6 +282,33 @@ public class StatusBarManager { @Retention(RetentionPolicy.SOURCE) public @interface RequestResult {} /** * Constant for {@link #setNavBarModeOverride(int)} indicating the default navbar mode. * * @hide */ @SystemApi public static final int NAV_BAR_MODE_OVERRIDE_NONE = 0; /** * Constant for {@link #setNavBarModeOverride(int)} indicating kids navbar mode. * * <p>When used, back and home icons will change drawables and layout, recents will be hidden, * and the navbar will remain visible when apps are in immersive mode. * * @hide */ @SystemApi public static final int NAV_BAR_MODE_OVERRIDE_KIDS = 1; /** @hide */ @IntDef(prefix = {"NAV_BAR_MODE_OVERRIDE_"}, value = { NAV_BAR_MODE_OVERRIDE_NONE, NAV_BAR_MODE_OVERRIDE_KIDS }) @Retention(RetentionPolicy.SOURCE) public @interface NavBarModeOverride {} @UnsupportedAppUsage private Context mContext; private IStatusBarService mService; Loading Loading @@ -687,6 +714,52 @@ public class StatusBarManager { } } /** * Sets or removes the navigation bar mode override. * * @param navBarModeOverride the mode of the navigation bar override to be set. * * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setNavBarModeOverride(@NavBarModeOverride int navBarModeOverride) { if (navBarModeOverride != NAV_BAR_MODE_OVERRIDE_NONE && navBarModeOverride != NAV_BAR_MODE_OVERRIDE_KIDS) { throw new UnsupportedOperationException( "Supplied navBarModeOverride not supported: " + navBarModeOverride); } try { final IStatusBarService svc = getService(); if (svc != null) { svc.setNavBarModeOverride(navBarModeOverride); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Gets the navigation bar mode override. Returns default value if no override is set. * * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.STATUS_BAR) public @NavBarModeOverride int getNavBarModeOverride() { int navBarModeOverride = NAV_BAR_MODE_OVERRIDE_NONE; try { final IStatusBarService svc = getService(); if (svc != null) { navBarModeOverride = svc.getNavBarModeOverride(); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } return navBarModeOverride; } /** @hide */ public static String windowStateToString(int state) { if (state == WINDOW_STATE_HIDING) return "WINDOW_STATE_HIDING"; Loading core/java/android/provider/Settings.java +8 −0 Original line number Diff line number Diff line Loading @@ -10118,6 +10118,14 @@ public final class Settings { public static final String THEME_CUSTOMIZATION_OVERLAY_PACKAGES = "theme_customization_overlay_packages"; /** * Indicates whether the device is in kids nav mode. * <p>Type: int (0 for false, 1 for true) * * @hide */ public static final String NAV_BAR_KIDS_MODE = "nav_bar_kids_mode"; /** * Navigation bar mode. * 0 = 3 button Loading core/java/com/android/internal/statusbar/IStatusBarService.aidl +16 −0 Original line number Diff line number Diff line Loading @@ -162,4 +162,20 @@ interface IStatusBarService void requestAddTile(in ComponentName componentName, in CharSequence label, in Icon icon, int userId, in IAddTileResultCallback callback); void cancelRequestAddTile(in String packageName); /** * Overrides the navigation bar mode. * * @param navBarModeOverride the mode of the navigation bar override to be set. * * @hide */ void setNavBarModeOverride(int navBarModeOverride); /** * Gets the navigation bar mode override. * * @hide */ int getNavBarModeOverride(); } core/proto/android/providers/settings/secure.proto +2 −1 Original line number Diff line number Diff line Loading @@ -383,6 +383,7 @@ message SecureSettingsProto { optional SettingProto multi_press_timeout = 38 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto nav_bar_kids_mode = 91 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto navigation_mode = 76 [ (android.privacy).dest = DEST_AUTOMATIC ]; message NfcPayment { Loading Loading @@ -665,5 +666,5 @@ message SecureSettingsProto { // Please insert fields in alphabetical order and group them into messages // if possible (to avoid reaching the method limit). // Next tag = 91; // Next tag = 92; } Loading
core/api/system-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -859,7 +859,11 @@ package android.app { public class StatusBarManager { method @NonNull @RequiresPermission(android.Manifest.permission.STATUS_BAR) public android.app.StatusBarManager.DisableInfo getDisableInfo(); method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public int getNavBarModeOverride(); method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setDisabledForSetup(boolean); method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setNavBarModeOverride(int); field public static final int NAV_BAR_MODE_OVERRIDE_KIDS = 1; // 0x1 field public static final int NAV_BAR_MODE_OVERRIDE_NONE = 0; // 0x0 } public static final class StatusBarManager.DisableInfo {
core/java/android/app/StatusBarManager.java +73 −0 Original line number Diff line number Diff line Loading @@ -282,6 +282,33 @@ public class StatusBarManager { @Retention(RetentionPolicy.SOURCE) public @interface RequestResult {} /** * Constant for {@link #setNavBarModeOverride(int)} indicating the default navbar mode. * * @hide */ @SystemApi public static final int NAV_BAR_MODE_OVERRIDE_NONE = 0; /** * Constant for {@link #setNavBarModeOverride(int)} indicating kids navbar mode. * * <p>When used, back and home icons will change drawables and layout, recents will be hidden, * and the navbar will remain visible when apps are in immersive mode. * * @hide */ @SystemApi public static final int NAV_BAR_MODE_OVERRIDE_KIDS = 1; /** @hide */ @IntDef(prefix = {"NAV_BAR_MODE_OVERRIDE_"}, value = { NAV_BAR_MODE_OVERRIDE_NONE, NAV_BAR_MODE_OVERRIDE_KIDS }) @Retention(RetentionPolicy.SOURCE) public @interface NavBarModeOverride {} @UnsupportedAppUsage private Context mContext; private IStatusBarService mService; Loading Loading @@ -687,6 +714,52 @@ public class StatusBarManager { } } /** * Sets or removes the navigation bar mode override. * * @param navBarModeOverride the mode of the navigation bar override to be set. * * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setNavBarModeOverride(@NavBarModeOverride int navBarModeOverride) { if (navBarModeOverride != NAV_BAR_MODE_OVERRIDE_NONE && navBarModeOverride != NAV_BAR_MODE_OVERRIDE_KIDS) { throw new UnsupportedOperationException( "Supplied navBarModeOverride not supported: " + navBarModeOverride); } try { final IStatusBarService svc = getService(); if (svc != null) { svc.setNavBarModeOverride(navBarModeOverride); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Gets the navigation bar mode override. Returns default value if no override is set. * * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.STATUS_BAR) public @NavBarModeOverride int getNavBarModeOverride() { int navBarModeOverride = NAV_BAR_MODE_OVERRIDE_NONE; try { final IStatusBarService svc = getService(); if (svc != null) { navBarModeOverride = svc.getNavBarModeOverride(); } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } return navBarModeOverride; } /** @hide */ public static String windowStateToString(int state) { if (state == WINDOW_STATE_HIDING) return "WINDOW_STATE_HIDING"; Loading
core/java/android/provider/Settings.java +8 −0 Original line number Diff line number Diff line Loading @@ -10118,6 +10118,14 @@ public final class Settings { public static final String THEME_CUSTOMIZATION_OVERLAY_PACKAGES = "theme_customization_overlay_packages"; /** * Indicates whether the device is in kids nav mode. * <p>Type: int (0 for false, 1 for true) * * @hide */ public static final String NAV_BAR_KIDS_MODE = "nav_bar_kids_mode"; /** * Navigation bar mode. * 0 = 3 button Loading
core/java/com/android/internal/statusbar/IStatusBarService.aidl +16 −0 Original line number Diff line number Diff line Loading @@ -162,4 +162,20 @@ interface IStatusBarService void requestAddTile(in ComponentName componentName, in CharSequence label, in Icon icon, int userId, in IAddTileResultCallback callback); void cancelRequestAddTile(in String packageName); /** * Overrides the navigation bar mode. * * @param navBarModeOverride the mode of the navigation bar override to be set. * * @hide */ void setNavBarModeOverride(int navBarModeOverride); /** * Gets the navigation bar mode override. * * @hide */ int getNavBarModeOverride(); }
core/proto/android/providers/settings/secure.proto +2 −1 Original line number Diff line number Diff line Loading @@ -383,6 +383,7 @@ message SecureSettingsProto { optional SettingProto multi_press_timeout = 38 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto nav_bar_kids_mode = 91 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto navigation_mode = 76 [ (android.privacy).dest = DEST_AUTOMATIC ]; message NfcPayment { Loading Loading @@ -665,5 +666,5 @@ message SecureSettingsProto { // Please insert fields in alphabetical order and group them into messages // if possible (to avoid reaching the method limit). // Next tag = 91; // Next tag = 92; }