Merge "Removing 'override' from nav bar mode APIs." into tm-dev
This commit is contained in:
@@ -915,10 +915,10 @@ package android.app {
|
|||||||
|
|
||||||
public class StatusBarManager {
|
public class StatusBarManager {
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.STATUS_BAR) public android.app.StatusBarManager.DisableInfo getDisableInfo();
|
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 int getNavBarMode();
|
||||||
method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void registerNearbyMediaDevicesProvider(@NonNull android.media.NearbyMediaDevicesProvider);
|
method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void registerNearbyMediaDevicesProvider(@NonNull android.media.NearbyMediaDevicesProvider);
|
||||||
method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setDisabledForSetup(boolean);
|
method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setDisabledForSetup(boolean);
|
||||||
method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setNavBarModeOverride(int);
|
method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setNavBarMode(int);
|
||||||
method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void unregisterNearbyMediaDevicesProvider(@NonNull android.media.NearbyMediaDevicesProvider);
|
method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void unregisterNearbyMediaDevicesProvider(@NonNull android.media.NearbyMediaDevicesProvider);
|
||||||
method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void updateMediaTapToTransferReceiverDisplay(int, @NonNull android.media.MediaRoute2Info, @Nullable android.graphics.drawable.Icon, @Nullable CharSequence);
|
method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void updateMediaTapToTransferReceiverDisplay(int, @NonNull android.media.MediaRoute2Info, @Nullable android.graphics.drawable.Icon, @Nullable CharSequence);
|
||||||
method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void updateMediaTapToTransferSenderDisplay(int, @NonNull android.media.MediaRoute2Info, @Nullable java.util.concurrent.Executor, @Nullable Runnable);
|
method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void updateMediaTapToTransferSenderDisplay(int, @NonNull android.media.MediaRoute2Info, @Nullable java.util.concurrent.Executor, @Nullable Runnable);
|
||||||
@@ -933,8 +933,8 @@ package android.app {
|
|||||||
field public static final int MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_FAILED = 7; // 0x7
|
field public static final int MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_FAILED = 7; // 0x7
|
||||||
field public static final int MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_SUCCEEDED = 5; // 0x5
|
field public static final int MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_SUCCEEDED = 5; // 0x5
|
||||||
field public static final int MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_TRIGGERED = 3; // 0x3
|
field public static final int MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_TRIGGERED = 3; // 0x3
|
||||||
field public static final int NAV_BAR_MODE_OVERRIDE_KIDS = 1; // 0x1
|
field public static final int NAV_BAR_MODE_DEFAULT = 0; // 0x0
|
||||||
field public static final int NAV_BAR_MODE_OVERRIDE_NONE = 0; // 0x0
|
field public static final int NAV_BAR_MODE_KIDS = 1; // 0x1
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final class StatusBarManager.DisableInfo {
|
public static final class StatusBarManager.DisableInfo {
|
||||||
|
|||||||
@@ -324,15 +324,15 @@ public class StatusBarManager {
|
|||||||
public @interface RequestResult {}
|
public @interface RequestResult {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constant for {@link #setNavBarModeOverride(int)} indicating the default navbar mode.
|
* Constant for {@link #setNavBarMode(int)} indicating the default navbar mode.
|
||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
public static final int NAV_BAR_MODE_OVERRIDE_NONE = 0;
|
public static final int NAV_BAR_MODE_DEFAULT = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constant for {@link #setNavBarModeOverride(int)} indicating kids navbar mode.
|
* Constant for {@link #setNavBarMode(int)} indicating kids navbar mode.
|
||||||
*
|
*
|
||||||
* <p>When used, back and home icons will change drawables and layout, recents will be hidden,
|
* <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.
|
* and the navbar will remain visible when apps are in immersive mode.
|
||||||
@@ -340,15 +340,15 @@ public class StatusBarManager {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
public static final int NAV_BAR_MODE_OVERRIDE_KIDS = 1;
|
public static final int NAV_BAR_MODE_KIDS = 1;
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@IntDef(prefix = {"NAV_BAR_MODE_OVERRIDE_"}, value = {
|
@IntDef(prefix = {"NAV_BAR_MODE_"}, value = {
|
||||||
NAV_BAR_MODE_OVERRIDE_NONE,
|
NAV_BAR_MODE_DEFAULT,
|
||||||
NAV_BAR_MODE_OVERRIDE_KIDS
|
NAV_BAR_MODE_KIDS
|
||||||
})
|
})
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface NavBarModeOverride {}
|
public @interface NavBarMode {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* State indicating that this sender device is close to a receiver device, so the user can
|
* State indicating that this sender device is close to a receiver device, so the user can
|
||||||
@@ -926,25 +926,23 @@ public class StatusBarManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets or removes the navigation bar mode override.
|
* Sets or removes the navigation bar mode.
|
||||||
*
|
*
|
||||||
* @param navBarModeOverride the mode of the navigation bar override to be set.
|
* @param navBarMode the mode of the navigation bar to be set.
|
||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(android.Manifest.permission.STATUS_BAR)
|
@RequiresPermission(android.Manifest.permission.STATUS_BAR)
|
||||||
public void setNavBarModeOverride(@NavBarModeOverride int navBarModeOverride) {
|
public void setNavBarMode(@NavBarMode int navBarMode) {
|
||||||
if (navBarModeOverride != NAV_BAR_MODE_OVERRIDE_NONE
|
if (navBarMode != NAV_BAR_MODE_DEFAULT && navBarMode != NAV_BAR_MODE_KIDS) {
|
||||||
&& navBarModeOverride != NAV_BAR_MODE_OVERRIDE_KIDS) {
|
throw new IllegalArgumentException("Supplied navBarMode not supported: " + navBarMode);
|
||||||
throw new IllegalArgumentException(
|
|
||||||
"Supplied navBarModeOverride not supported: " + navBarModeOverride);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final IStatusBarService svc = getService();
|
final IStatusBarService svc = getService();
|
||||||
if (svc != null) {
|
if (svc != null) {
|
||||||
svc.setNavBarModeOverride(navBarModeOverride);
|
svc.setNavBarMode(navBarMode);
|
||||||
}
|
}
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
@@ -952,23 +950,23 @@ public class StatusBarManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the navigation bar mode override. Returns default value if no override is set.
|
* Gets the navigation bar mode. Returns default value if no mode is set.
|
||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(android.Manifest.permission.STATUS_BAR)
|
@RequiresPermission(android.Manifest.permission.STATUS_BAR)
|
||||||
public @NavBarModeOverride int getNavBarModeOverride() {
|
public @NavBarMode int getNavBarMode() {
|
||||||
int navBarModeOverride = NAV_BAR_MODE_OVERRIDE_NONE;
|
int navBarMode = NAV_BAR_MODE_DEFAULT;
|
||||||
try {
|
try {
|
||||||
final IStatusBarService svc = getService();
|
final IStatusBarService svc = getService();
|
||||||
if (svc != null) {
|
if (svc != null) {
|
||||||
navBarModeOverride = svc.getNavBarModeOverride();
|
navBarMode = svc.getNavBarMode();
|
||||||
}
|
}
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
}
|
}
|
||||||
return navBarModeOverride;
|
return navBarMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -175,20 +175,20 @@ interface IStatusBarService
|
|||||||
void cancelRequestAddTile(in String packageName);
|
void cancelRequestAddTile(in String packageName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overrides the navigation bar mode.
|
* Sets the navigation bar mode.
|
||||||
*
|
*
|
||||||
* @param navBarModeOverride the mode of the navigation bar override to be set.
|
* @param navBarMode the mode of the navigation bar to be set.
|
||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
void setNavBarModeOverride(int navBarModeOverride);
|
void setNavBarMode(int navBarMode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the navigation bar mode override.
|
* Gets the navigation bar mode.
|
||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
int getNavBarModeOverride();
|
int getNavBarMode();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register a listener for certain sessions. Each session may be guarded by its own permission.
|
* Register a listener for certain sessions. Each session may be guarded by its own permission.
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ package com.android.server.statusbar;
|
|||||||
|
|
||||||
import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS;
|
import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS;
|
||||||
import static android.app.StatusBarManager.DISABLE2_NOTIFICATION_SHADE;
|
import static android.app.StatusBarManager.DISABLE2_NOTIFICATION_SHADE;
|
||||||
import static android.app.StatusBarManager.NAV_BAR_MODE_OVERRIDE_KIDS;
|
import static android.app.StatusBarManager.NAV_BAR_MODE_DEFAULT;
|
||||||
import static android.app.StatusBarManager.NAV_BAR_MODE_OVERRIDE_NONE;
|
import static android.app.StatusBarManager.NAV_BAR_MODE_KIDS;
|
||||||
import static android.app.StatusBarManager.NavBarModeOverride;
|
import static android.app.StatusBarManager.NavBarMode;
|
||||||
import static android.app.StatusBarManager.SessionFlags;
|
import static android.app.StatusBarManager.SessionFlags;
|
||||||
import static android.view.Display.DEFAULT_DISPLAY;
|
import static android.view.Display.DEFAULT_DISPLAY;
|
||||||
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY;
|
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY;
|
||||||
@@ -1945,26 +1945,25 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets or removes the navigation bar mode override.
|
* Sets or removes the navigation bar mode.
|
||||||
*
|
*
|
||||||
* @param navBarModeOverride the mode of the navigation bar override to be set.
|
* @param navBarMode the mode of the navigation bar to be set.
|
||||||
*/
|
*/
|
||||||
public void setNavBarModeOverride(@NavBarModeOverride int navBarModeOverride) {
|
public void setNavBarMode(@NavBarMode int navBarMode) {
|
||||||
enforceStatusBar();
|
enforceStatusBar();
|
||||||
if (navBarModeOverride != NAV_BAR_MODE_OVERRIDE_NONE
|
if (navBarMode != NAV_BAR_MODE_DEFAULT && navBarMode != NAV_BAR_MODE_KIDS) {
|
||||||
&& navBarModeOverride != NAV_BAR_MODE_OVERRIDE_KIDS) {
|
|
||||||
throw new UnsupportedOperationException(
|
throw new UnsupportedOperationException(
|
||||||
"Supplied navBarModeOverride not supported: " + navBarModeOverride);
|
"Supplied navBarMode not supported: " + navBarMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
final int userId = mCurrentUserId;
|
final int userId = mCurrentUserId;
|
||||||
final long userIdentity = Binder.clearCallingIdentity();
|
final long userIdentity = Binder.clearCallingIdentity();
|
||||||
try {
|
try {
|
||||||
Settings.Secure.putIntForUser(mContext.getContentResolver(),
|
Settings.Secure.putIntForUser(mContext.getContentResolver(),
|
||||||
Settings.Secure.NAV_BAR_KIDS_MODE, navBarModeOverride, userId);
|
Settings.Secure.NAV_BAR_KIDS_MODE, navBarMode, userId);
|
||||||
|
|
||||||
IOverlayManager overlayManager = getOverlayManager();
|
IOverlayManager overlayManager = getOverlayManager();
|
||||||
if (overlayManager != null && navBarModeOverride == NAV_BAR_MODE_OVERRIDE_KIDS
|
if (overlayManager != null && navBarMode == NAV_BAR_MODE_KIDS
|
||||||
&& isPackageSupported(NAV_BAR_MODE_3BUTTON_OVERLAY)) {
|
&& isPackageSupported(NAV_BAR_MODE_3BUTTON_OVERLAY)) {
|
||||||
overlayManager.setEnabledExclusiveInCategory(NAV_BAR_MODE_3BUTTON_OVERLAY, userId);
|
overlayManager.setEnabledExclusiveInCategory(NAV_BAR_MODE_3BUTTON_OVERLAY, userId);
|
||||||
}
|
}
|
||||||
@@ -1976,14 +1975,14 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the navigation bar mode override. Returns default value if no override is set.
|
* Gets the navigation bar mode. Returns default value if no mode is set.
|
||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public @NavBarModeOverride int getNavBarModeOverride() {
|
public @NavBarMode int getNavBarMode() {
|
||||||
enforceStatusBar();
|
enforceStatusBar();
|
||||||
|
|
||||||
int navBarKidsMode = NAV_BAR_MODE_OVERRIDE_NONE;
|
int navBarKidsMode = NAV_BAR_MODE_DEFAULT;
|
||||||
final int userId = mCurrentUserId;
|
final int userId = mCurrentUserId;
|
||||||
final long userIdentity = Binder.clearCallingIdentity();
|
final long userIdentity = Binder.clearCallingIdentity();
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -584,55 +584,55 @@ public class StatusBarManagerServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetNavBarModeOverride_setsOverrideModeKids() throws RemoteException {
|
public void testSetNavBarMode_setsModeKids() throws RemoteException {
|
||||||
int navBarModeOverrideKids = StatusBarManager.NAV_BAR_MODE_OVERRIDE_KIDS;
|
int navBarModeKids = StatusBarManager.NAV_BAR_MODE_KIDS;
|
||||||
|
|
||||||
mStatusBarManagerService.setNavBarModeOverride(navBarModeOverrideKids);
|
mStatusBarManagerService.setNavBarMode(navBarModeKids);
|
||||||
|
|
||||||
assertEquals(navBarModeOverrideKids, mStatusBarManagerService.getNavBarModeOverride());
|
assertEquals(navBarModeKids, mStatusBarManagerService.getNavBarMode());
|
||||||
verify(mOverlayManager).setEnabledExclusiveInCategory(anyString(), anyInt());
|
verify(mOverlayManager).setEnabledExclusiveInCategory(anyString(), anyInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetNavBarModeOverride_setsOverrideModeNone() throws RemoteException {
|
public void testSetNavBarMode_setsModeNone() throws RemoteException {
|
||||||
int navBarModeOverrideNone = StatusBarManager.NAV_BAR_MODE_OVERRIDE_NONE;
|
int navBarModeNone = StatusBarManager.NAV_BAR_MODE_DEFAULT;
|
||||||
|
|
||||||
mStatusBarManagerService.setNavBarModeOverride(navBarModeOverrideNone);
|
mStatusBarManagerService.setNavBarMode(navBarModeNone);
|
||||||
|
|
||||||
assertEquals(navBarModeOverrideNone, mStatusBarManagerService.getNavBarModeOverride());
|
assertEquals(navBarModeNone, mStatusBarManagerService.getNavBarMode());
|
||||||
verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt());
|
verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetNavBarModeOverride_invalidInputThrowsError() throws RemoteException {
|
public void testSetNavBarMode_invalidInputThrowsError() throws RemoteException {
|
||||||
int navBarModeOverrideInvalid = -1;
|
int navBarModeInvalid = -1;
|
||||||
|
|
||||||
assertThrows(UnsupportedOperationException.class,
|
assertThrows(UnsupportedOperationException.class,
|
||||||
() -> mStatusBarManagerService.setNavBarModeOverride(navBarModeOverrideInvalid));
|
() -> mStatusBarManagerService.setNavBarMode(navBarModeInvalid));
|
||||||
verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt());
|
verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetNavBarModeOverride_noOverlayManagerDoesNotEnable() throws RemoteException {
|
public void testSetNavBarMode_noOverlayManagerDoesNotEnable() throws RemoteException {
|
||||||
mOverlayManager = null;
|
mOverlayManager = null;
|
||||||
int navBarModeOverrideKids = StatusBarManager.NAV_BAR_MODE_OVERRIDE_KIDS;
|
int navBarModeKids = StatusBarManager.NAV_BAR_MODE_KIDS;
|
||||||
|
|
||||||
mStatusBarManagerService.setNavBarModeOverride(navBarModeOverrideKids);
|
mStatusBarManagerService.setNavBarMode(navBarModeKids);
|
||||||
|
|
||||||
assertEquals(navBarModeOverrideKids, mStatusBarManagerService.getNavBarModeOverride());
|
assertEquals(navBarModeKids, mStatusBarManagerService.getNavBarMode());
|
||||||
verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt());
|
verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetNavBarModeOverride_noPackageDoesNotEnable() throws Exception {
|
public void testSetNavBarMode_noPackageDoesNotEnable() throws Exception {
|
||||||
mContext.setMockPackageManager(mPackageManager);
|
mContext.setMockPackageManager(mPackageManager);
|
||||||
when(mPackageManager.getPackageInfo(anyString(),
|
when(mPackageManager.getPackageInfo(anyString(),
|
||||||
any(PackageManager.PackageInfoFlags.class))).thenReturn(null);
|
any(PackageManager.PackageInfoFlags.class))).thenReturn(null);
|
||||||
int navBarModeOverrideKids = StatusBarManager.NAV_BAR_MODE_OVERRIDE_KIDS;
|
int navBarModeKids = StatusBarManager.NAV_BAR_MODE_KIDS;
|
||||||
|
|
||||||
mStatusBarManagerService.setNavBarModeOverride(navBarModeOverrideKids);
|
mStatusBarManagerService.setNavBarMode(navBarModeKids);
|
||||||
|
|
||||||
assertEquals(navBarModeOverrideKids, mStatusBarManagerService.getNavBarModeOverride());
|
assertEquals(navBarModeKids, mStatusBarManagerService.getNavBarMode());
|
||||||
verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt());
|
verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user