summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt1
-rw-r--r--core/java/android/content/res/Configuration.java10
-rw-r--r--core/tests/coretests/src/android/content/res/ConfigurationTest.java9
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();