Loading services/core/java/com/android/server/UiModeManagerService.java +4 −10 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ import android.annotation.Nullable; import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityTaskManager; import android.app.ActivityThread; import android.app.AlarmManager; import android.app.IOnProjectionStateChangedListener; import android.app.IUiModeManager; Loading Loading @@ -1445,12 +1444,13 @@ final class UiModeManagerService extends SystemService { * * @hide */ private int getForceInvertStateInternal() { @VisibleForTesting int getForceInvertStateInternal() { if (!android.view.accessibility.Flags.forceInvertColor()) { return FORCE_INVERT_TYPE_OFF; } if (!isSystemInDarkTheme()) { if (!mComputedNightMode) { return FORCE_INVERT_TYPE_OFF; } Loading @@ -1461,13 +1461,6 @@ final class UiModeManagerService extends SystemService { return FORCE_INVERT_TYPE_DARK; } private boolean isSystemInDarkTheme() { Context sysUiContext = ActivityThread.currentActivityThread().getSystemUiContext(); int sysUiNightMode = sysUiContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; return sysUiNightMode == Configuration.UI_MODE_NIGHT_YES; } private boolean isForceInvert() { return Settings.Secure.getIntForUser( getContext().getContentResolver(), Loading Loading @@ -2215,6 +2208,7 @@ final class UiModeManagerService extends SystemService { case (UiModeManager.MODE_ATTENTION_THEME_OVERLAY_DAY) -> false; default -> newComputedValue; // case OFF }; updateForceInvertStates(); if (appliedOverrides) { return; Loading services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java +41 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.server; import static android.Manifest.permission.MODIFY_DAY_NIGHT_MODE; import static android.app.UiModeManager.FORCE_INVERT_TYPE_DARK; import static android.app.UiModeManager.FORCE_INVERT_TYPE_OFF; import static android.app.UiModeManager.MODE_ATTENTION_THEME_OVERLAY_DAY; import static android.app.UiModeManager.MODE_ATTENTION_THEME_OVERLAY_NIGHT; import static android.app.UiModeManager.MODE_ATTENTION_THEME_OVERLAY_OFF; Loading Loading @@ -89,6 +91,7 @@ import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; import android.os.test.FakePermissionEnforcer; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.service.dreams.DreamManagerInternal; Loading Loading @@ -1514,6 +1517,44 @@ public class UiModeManagerServiceTest extends UiServiceTestCase { testAttentionModeThemeOverlay(true); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR) public void getForceInvertState_nightModeFalse_returnsOff() throws RemoteException { mService.setNightModeActivated(false); assertThat(mUiManagerService.getForceInvertStateInternal()) .isEqualTo(FORCE_INVERT_TYPE_OFF); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR) public void getForceInvertState_nightModeTrueAndForceInvertOff_returnsOff() throws RemoteException { mService.setNightModeActivated(true); Settings.Secure.putInt( mContentResolver, Settings.Secure.ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED, /* value= */ 0); assertThat(mUiManagerService.getForceInvertStateInternal()) .isEqualTo(FORCE_INVERT_TYPE_OFF); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR) public void getForceInvertState_nightModeTrueAndForceInvertOn_returnsDark() throws Exception { mService.setNightModeActivated(true); Settings.Secure.putInt( mContentResolver, Settings.Secure.ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED, /* value= */ 1); assertThat(mUiManagerService.getForceInvertStateInternal()) .isEqualTo(FORCE_INVERT_TYPE_DARK); } private void triggerDockIntent() { final Intent dockedIntent = new Intent(Intent.ACTION_DOCK_EVENT) Loading Loading
services/core/java/com/android/server/UiModeManagerService.java +4 −10 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ import android.annotation.Nullable; import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityTaskManager; import android.app.ActivityThread; import android.app.AlarmManager; import android.app.IOnProjectionStateChangedListener; import android.app.IUiModeManager; Loading Loading @@ -1445,12 +1444,13 @@ final class UiModeManagerService extends SystemService { * * @hide */ private int getForceInvertStateInternal() { @VisibleForTesting int getForceInvertStateInternal() { if (!android.view.accessibility.Flags.forceInvertColor()) { return FORCE_INVERT_TYPE_OFF; } if (!isSystemInDarkTheme()) { if (!mComputedNightMode) { return FORCE_INVERT_TYPE_OFF; } Loading @@ -1461,13 +1461,6 @@ final class UiModeManagerService extends SystemService { return FORCE_INVERT_TYPE_DARK; } private boolean isSystemInDarkTheme() { Context sysUiContext = ActivityThread.currentActivityThread().getSystemUiContext(); int sysUiNightMode = sysUiContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; return sysUiNightMode == Configuration.UI_MODE_NIGHT_YES; } private boolean isForceInvert() { return Settings.Secure.getIntForUser( getContext().getContentResolver(), Loading Loading @@ -2215,6 +2208,7 @@ final class UiModeManagerService extends SystemService { case (UiModeManager.MODE_ATTENTION_THEME_OVERLAY_DAY) -> false; default -> newComputedValue; // case OFF }; updateForceInvertStates(); if (appliedOverrides) { return; Loading
services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java +41 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.server; import static android.Manifest.permission.MODIFY_DAY_NIGHT_MODE; import static android.app.UiModeManager.FORCE_INVERT_TYPE_DARK; import static android.app.UiModeManager.FORCE_INVERT_TYPE_OFF; import static android.app.UiModeManager.MODE_ATTENTION_THEME_OVERLAY_DAY; import static android.app.UiModeManager.MODE_ATTENTION_THEME_OVERLAY_NIGHT; import static android.app.UiModeManager.MODE_ATTENTION_THEME_OVERLAY_OFF; Loading Loading @@ -89,6 +91,7 @@ import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; import android.os.test.FakePermissionEnforcer; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.service.dreams.DreamManagerInternal; Loading Loading @@ -1514,6 +1517,44 @@ public class UiModeManagerServiceTest extends UiServiceTestCase { testAttentionModeThemeOverlay(true); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR) public void getForceInvertState_nightModeFalse_returnsOff() throws RemoteException { mService.setNightModeActivated(false); assertThat(mUiManagerService.getForceInvertStateInternal()) .isEqualTo(FORCE_INVERT_TYPE_OFF); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR) public void getForceInvertState_nightModeTrueAndForceInvertOff_returnsOff() throws RemoteException { mService.setNightModeActivated(true); Settings.Secure.putInt( mContentResolver, Settings.Secure.ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED, /* value= */ 0); assertThat(mUiManagerService.getForceInvertStateInternal()) .isEqualTo(FORCE_INVERT_TYPE_OFF); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR) public void getForceInvertState_nightModeTrueAndForceInvertOn_returnsDark() throws Exception { mService.setNightModeActivated(true); Settings.Secure.putInt( mContentResolver, Settings.Secure.ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED, /* value= */ 1); assertThat(mUiManagerService.getForceInvertStateInternal()) .isEqualTo(FORCE_INVERT_TYPE_DARK); } private void triggerDockIntent() { final Intent dockedIntent = new Intent(Intent.ACTION_DOCK_EVENT) Loading