diff options
| -rw-r--r-- | api/current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/content/res/Configuration.java | 10 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/content/res/ConfigurationTest.java | 9 |
3 files changed, 20 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt index 826d409b0a2d..a7367e8c4943 100644 --- a/api/current.txt +++ b/api/current.txt @@ -12575,6 +12575,7 @@ package android.content.res { method public int getLayoutDirection(); method @NonNull public android.os.LocaleList getLocales(); method public boolean isLayoutSizeAtLeast(int); + method public boolean isNightModeActive(); method public boolean isScreenHdr(); method public boolean isScreenRound(); method public boolean isScreenWideColorGamut(); diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java index 8c358cc522d6..6a9e0aa047d1 100644 --- a/core/java/android/content/res/Configuration.java +++ b/core/java/android/content/res/Configuration.java @@ -45,6 +45,7 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; +import android.app.UiModeManager; import android.app.WindowConfiguration; import android.compat.annotation.UnsupportedAppUsage; import android.content.LocaleProto; @@ -1975,6 +1976,15 @@ public final class Configuration implements Parcelable, Comparable<Configuration readFromParcel(source); } + + /** + * Retuns whether the configuration is in night mode + * @return true if night mode is active and false otherwise + */ + public boolean isNightModeActive() { + return (uiMode & UI_MODE_NIGHT_MASK) == UI_MODE_NIGHT_YES; + } + public int compareTo(Configuration that) { int n; float a = this.fontScale; diff --git a/core/tests/coretests/src/android/content/res/ConfigurationTest.java b/core/tests/coretests/src/android/content/res/ConfigurationTest.java index 2c956c990e97..669138c15698 100644 --- a/core/tests/coretests/src/android/content/res/ConfigurationTest.java +++ b/core/tests/coretests/src/android/content/res/ConfigurationTest.java @@ -148,6 +148,15 @@ public class ConfigurationTest extends TestCase { assertEquals(SMALLEST_SCREEN_WIDTH_DP_UNDEFINED, config.smallestScreenWidthDp); } + @Test + public void testNightModeHelper() { + Configuration config = new Configuration(); + config.uiMode = Configuration.UI_MODE_NIGHT_YES; + assertTrue(config.isNightModeActive()); + config.uiMode = Configuration.UI_MODE_NIGHT_NO; + assertFalse(config.isNightModeActive()); + } + private void dumpDebug(File f, Configuration config) throws Exception { final AtomicFile af = new AtomicFile(f); FileOutputStream fos = af.startWrite(); |