Loading services/core/java/com/android/server/statusbar/StatusBarManagerService.java +20 −0 Original line number Diff line number Diff line Loading @@ -32,7 +32,9 @@ import static android.os.UserHandle.getCallingUserId; import static android.os.UserManager.isVisibleBackgroundUsersEnabled; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.ViewRootImpl.CLIENT_TRANSIENT; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON_OVERLAY; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY; import android.Manifest; import android.annotation.NonNull; Loading Loading @@ -132,8 +134,10 @@ import com.android.systemui.shared.Flags; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.Arrays; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; Loading Loading @@ -2601,6 +2605,22 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D if (overlayManager != null && navBarMode == NAV_BAR_MODE_KIDS && isPackageSupported(NAV_BAR_MODE_3BUTTON_OVERLAY)) { overlayManager.setEnabledExclusiveInCategory(NAV_BAR_MODE_3BUTTON_OVERLAY, userId); } else if (overlayManager != null && navBarMode == NAV_BAR_MODE_DEFAULT) { List<String> defaultOverlayPackages = Arrays.asList(overlayManager.getDefaultOverlayPackages()); if (defaultOverlayPackages.contains(NAV_BAR_MODE_3BUTTON_OVERLAY) && isPackageSupported(NAV_BAR_MODE_3BUTTON_OVERLAY)) { overlayManager.setEnabledExclusiveInCategory( NAV_BAR_MODE_3BUTTON_OVERLAY, userId); } else if (defaultOverlayPackages.contains(NAV_BAR_MODE_2BUTTON_OVERLAY) && isPackageSupported(NAV_BAR_MODE_2BUTTON_OVERLAY)) { overlayManager.setEnabledExclusiveInCategory( NAV_BAR_MODE_2BUTTON_OVERLAY, userId); } else if (defaultOverlayPackages.contains(NAV_BAR_MODE_GESTURAL_OVERLAY) && isPackageSupported(NAV_BAR_MODE_GESTURAL_OVERLAY)) { overlayManager.setEnabledExclusiveInCategory( NAV_BAR_MODE_GESTURAL_OVERLAY, userId); } } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java +8 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import static android.app.StatusBarManager.DISABLE_NONE; import static android.app.StatusBarManager.DISABLE_RECENT; import static android.app.StatusBarManager.DISABLE_SEARCH; import static android.app.StatusBarManager.DISABLE_SYSTEM_INFO; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; Loading Loading @@ -712,13 +713,18 @@ public class StatusBarManagerServiceTest { } @Test public void testSetNavBarMode_setsModeNone() throws RemoteException { public void testSetNavBarMode_setsModeGestural() throws Exception { when(mOverlayManager.getDefaultOverlayPackages()) .thenReturn(new String[] {NAV_BAR_MODE_GESTURAL_OVERLAY}); when(mPackageManager.getPackageInfo(eq(NAV_BAR_MODE_GESTURAL_OVERLAY), any(PackageManager.PackageInfoFlags.class))).thenReturn(new PackageInfo()); int navBarModeNone = StatusBarManager.NAV_BAR_MODE_DEFAULT; mStatusBarManagerService.setNavBarMode(navBarModeNone); assertEquals(navBarModeNone, mStatusBarManagerService.getNavBarMode()); verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt()); verify(mOverlayManager) .setEnabledExclusiveInCategory(eq(NAV_BAR_MODE_GESTURAL_OVERLAY), anyInt()); } @Test Loading Loading
services/core/java/com/android/server/statusbar/StatusBarManagerService.java +20 −0 Original line number Diff line number Diff line Loading @@ -32,7 +32,9 @@ import static android.os.UserHandle.getCallingUserId; import static android.os.UserManager.isVisibleBackgroundUsersEnabled; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.ViewRootImpl.CLIENT_TRANSIENT; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON_OVERLAY; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY; import android.Manifest; import android.annotation.NonNull; Loading Loading @@ -132,8 +134,10 @@ import com.android.systemui.shared.Flags; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.Arrays; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; Loading Loading @@ -2601,6 +2605,22 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D if (overlayManager != null && navBarMode == NAV_BAR_MODE_KIDS && isPackageSupported(NAV_BAR_MODE_3BUTTON_OVERLAY)) { overlayManager.setEnabledExclusiveInCategory(NAV_BAR_MODE_3BUTTON_OVERLAY, userId); } else if (overlayManager != null && navBarMode == NAV_BAR_MODE_DEFAULT) { List<String> defaultOverlayPackages = Arrays.asList(overlayManager.getDefaultOverlayPackages()); if (defaultOverlayPackages.contains(NAV_BAR_MODE_3BUTTON_OVERLAY) && isPackageSupported(NAV_BAR_MODE_3BUTTON_OVERLAY)) { overlayManager.setEnabledExclusiveInCategory( NAV_BAR_MODE_3BUTTON_OVERLAY, userId); } else if (defaultOverlayPackages.contains(NAV_BAR_MODE_2BUTTON_OVERLAY) && isPackageSupported(NAV_BAR_MODE_2BUTTON_OVERLAY)) { overlayManager.setEnabledExclusiveInCategory( NAV_BAR_MODE_2BUTTON_OVERLAY, userId); } else if (defaultOverlayPackages.contains(NAV_BAR_MODE_GESTURAL_OVERLAY) && isPackageSupported(NAV_BAR_MODE_GESTURAL_OVERLAY)) { overlayManager.setEnabledExclusiveInCategory( NAV_BAR_MODE_GESTURAL_OVERLAY, userId); } } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading
services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java +8 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import static android.app.StatusBarManager.DISABLE_NONE; import static android.app.StatusBarManager.DISABLE_RECENT; import static android.app.StatusBarManager.DISABLE_SEARCH; import static android.app.StatusBarManager.DISABLE_SYSTEM_INFO; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; Loading Loading @@ -712,13 +713,18 @@ public class StatusBarManagerServiceTest { } @Test public void testSetNavBarMode_setsModeNone() throws RemoteException { public void testSetNavBarMode_setsModeGestural() throws Exception { when(mOverlayManager.getDefaultOverlayPackages()) .thenReturn(new String[] {NAV_BAR_MODE_GESTURAL_OVERLAY}); when(mPackageManager.getPackageInfo(eq(NAV_BAR_MODE_GESTURAL_OVERLAY), any(PackageManager.PackageInfoFlags.class))).thenReturn(new PackageInfo()); int navBarModeNone = StatusBarManager.NAV_BAR_MODE_DEFAULT; mStatusBarManagerService.setNavBarMode(navBarModeNone); assertEquals(navBarModeNone, mStatusBarManagerService.getNavBarMode()); verify(mOverlayManager, never()).setEnabledExclusiveInCategory(anyString(), anyInt()); verify(mOverlayManager) .setEnabledExclusiveInCategory(eq(NAV_BAR_MODE_GESTURAL_OVERLAY), anyInt()); } @Test Loading