summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt33
-rw-r--r--api/system-current.txt33
-rw-r--r--api/test-current.txt33
-rw-r--r--core/java/android/app/Activity.java2
-rw-r--r--core/java/android/content/pm/ActivityInfo.java49
-rw-r--r--core/java/android/content/pm/PackageParser.java3
-rw-r--r--core/java/android/content/res/Configuration.java176
-rw-r--r--core/java/android/view/Window.java23
-rw-r--r--core/java/android/view/WindowManager.java47
-rw-r--r--core/res/res/values/attrs_manifest.xml15
-rw-r--r--core/res/res/values/public.xml1
-rw-r--r--libs/androidfw/ResourceTypes.cpp58
-rw-r--r--libs/androidfw/include/androidfw/ResourceTypes.h16
-rw-r--r--libs/androidfw/tests/Config_test.cpp8
-rw-r--r--tools/aapt/AaptConfig.cpp28
-rw-r--r--tools/aapt/tests/AaptConfig_test.cpp8
-rw-r--r--tools/aapt2/ConfigDescription.cpp42
-rw-r--r--tools/aapt2/ConfigDescription_test.cpp8
18 files changed, 364 insertions, 219 deletions
diff --git a/api/current.txt b/api/current.txt
index d8110203c8cd..a5062d87e935 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -408,6 +408,7 @@ package android {
field public static final int colorForeground = 16842800; // 0x1010030
field public static final int colorForegroundInverse = 16843270; // 0x1010206
field public static final int colorLongPressedHighlight = 16843662; // 0x101038e
+ field public static final int colorMode = 16844108; // 0x101054c
field public static final int colorMultiSelectHighlight = 16843665; // 0x1010391
field public static final int colorPressedHighlight = 16843661; // 0x101038d
field public static final int colorPrimary = 16843827; // 0x1010433
@@ -9575,7 +9576,10 @@ package android.content.pm {
method public int describeContents();
method public void dump(android.util.Printer, java.lang.String);
method public final int getThemeResource();
- field public static final int CONFIG_COLORIMETRY = 16384; // 0x4000
+ field public static final int COLOR_MODE_DEFAULT = 0; // 0x0
+ field public static final int COLOR_MODE_HDR = 2; // 0x2
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT = 1; // 0x1
+ field public static final int CONFIG_COLOR_MODE = 16384; // 0x4000
field public static final int CONFIG_DENSITY = 4096; // 0x1000
field public static final int CONFIG_FONT_SCALE = 1073741824; // 0x40000000
field public static final int CONFIG_KEYBOARD = 16; // 0x10
@@ -9636,6 +9640,7 @@ package android.content.pm {
field public static final int SCREEN_ORIENTATION_USER_LANDSCAPE = 11; // 0xb
field public static final int SCREEN_ORIENTATION_USER_PORTRAIT = 12; // 0xc
field public static final int UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW = 1; // 0x1
+ field public int colorMode;
field public int configChanges;
field public int documentLaunchMode;
field public int flags;
@@ -10611,16 +10616,16 @@ package android.content.res {
method public void setToDefaults();
method public int updateFrom(android.content.res.Configuration);
method public void writeToParcel(android.os.Parcel, int);
- field public static final int COLORIMETRY_HDR_MASK = 12; // 0xc
- field public static final int COLORIMETRY_HDR_NO = 4; // 0x4
- field public static final int COLORIMETRY_HDR_SHIFT = 2; // 0x2
- field public static final int COLORIMETRY_HDR_UNDEFINED = 0; // 0x0
- field public static final int COLORIMETRY_HDR_YES = 8; // 0x8
- field public static final int COLORIMETRY_UNDEFINED = 0; // 0x0
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_MASK = 3; // 0x3
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_NO = 1; // 0x1
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_UNDEFINED = 0; // 0x0
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_YES = 2; // 0x2
+ field public static final int COLOR_MODE_HDR_MASK = 12; // 0xc
+ field public static final int COLOR_MODE_HDR_NO = 4; // 0x4
+ field public static final int COLOR_MODE_HDR_SHIFT = 2; // 0x2
+ field public static final int COLOR_MODE_HDR_UNDEFINED = 0; // 0x0
+ field public static final int COLOR_MODE_HDR_YES = 8; // 0x8
+ field public static final int COLOR_MODE_UNDEFINED = 0; // 0x0
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_MASK = 3; // 0x3
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_NO = 1; // 0x1
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_UNDEFINED = 0; // 0x0
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_YES = 2; // 0x2
field public static final android.os.Parcelable.Creator<android.content.res.Configuration> CREATOR;
field public static final int DENSITY_DPI_UNDEFINED = 0; // 0x0
field public static final int HARDKEYBOARDHIDDEN_NO = 1; // 0x1
@@ -10686,7 +10691,7 @@ package android.content.res {
field public static final int UI_MODE_TYPE_UNDEFINED = 0; // 0x0
field public static final int UI_MODE_TYPE_VR_HEADSET = 7; // 0x7
field public static final int UI_MODE_TYPE_WATCH = 6; // 0x6
- field public int colorimetry;
+ field public int colorMode;
field public int densityDpi;
field public float fontScale;
field public int hardKeyboardHidden;
@@ -45006,6 +45011,7 @@ package android.view {
method public boolean getAllowReturnTransitionOverlap();
method public final android.view.WindowManager.LayoutParams getAttributes();
method public final android.view.Window.Callback getCallback();
+ method public int getColorMode();
method public final android.view.Window getContainer();
method public android.transition.Scene getContentScene();
method public final android.content.Context getContext();
@@ -45062,6 +45068,7 @@ package android.view {
method public abstract void setChildDrawable(int, android.graphics.drawable.Drawable);
method public abstract void setChildInt(int, int);
method public void setClipToOutline(boolean);
+ method public void setColorMode(int);
method public void setContainer(android.view.Window);
method public abstract void setContentView(int);
method public abstract void setContentView(android.view.View);
@@ -45260,8 +45267,10 @@ package android.view {
method public final int copyFrom(android.view.WindowManager.LayoutParams);
method public java.lang.String debug(java.lang.String);
method public int describeContents();
+ method public int getColorMode();
method public final java.lang.CharSequence getTitle();
method public static boolean mayUseInputMethod(int);
+ method public void setColorMode(int);
method public final void setTitle(java.lang.CharSequence);
method public void writeToParcel(android.os.Parcel, int);
field public static final int ALPHA_CHANGED = 128; // 0x80
diff --git a/api/system-current.txt b/api/system-current.txt
index 5cd33ba3d7d5..52c25c55fe5c 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -517,6 +517,7 @@ package android {
field public static final int colorForeground = 16842800; // 0x1010030
field public static final int colorForegroundInverse = 16843270; // 0x1010206
field public static final int colorLongPressedHighlight = 16843662; // 0x101038e
+ field public static final int colorMode = 16844108; // 0x101054c
field public static final int colorMultiSelectHighlight = 16843665; // 0x1010391
field public static final int colorPressedHighlight = 16843661; // 0x101038d
field public static final int colorPrimary = 16843827; // 0x1010433
@@ -9987,7 +9988,10 @@ package android.content.pm {
method public int describeContents();
method public void dump(android.util.Printer, java.lang.String);
method public final int getThemeResource();
- field public static final int CONFIG_COLORIMETRY = 16384; // 0x4000
+ field public static final int COLOR_MODE_DEFAULT = 0; // 0x0
+ field public static final int COLOR_MODE_HDR = 2; // 0x2
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT = 1; // 0x1
+ field public static final int CONFIG_COLOR_MODE = 16384; // 0x4000
field public static final int CONFIG_DENSITY = 4096; // 0x1000
field public static final int CONFIG_FONT_SCALE = 1073741824; // 0x40000000
field public static final int CONFIG_KEYBOARD = 16; // 0x10
@@ -10048,6 +10052,7 @@ package android.content.pm {
field public static final int SCREEN_ORIENTATION_USER_LANDSCAPE = 11; // 0xb
field public static final int SCREEN_ORIENTATION_USER_PORTRAIT = 12; // 0xc
field public static final int UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW = 1; // 0x1
+ field public int colorMode;
field public int configChanges;
field public int documentLaunchMode;
field public int flags;
@@ -11167,16 +11172,16 @@ package android.content.res {
method public void setToDefaults();
method public int updateFrom(android.content.res.Configuration);
method public void writeToParcel(android.os.Parcel, int);
- field public static final int COLORIMETRY_HDR_MASK = 12; // 0xc
- field public static final int COLORIMETRY_HDR_NO = 4; // 0x4
- field public static final int COLORIMETRY_HDR_SHIFT = 2; // 0x2
- field public static final int COLORIMETRY_HDR_UNDEFINED = 0; // 0x0
- field public static final int COLORIMETRY_HDR_YES = 8; // 0x8
- field public static final int COLORIMETRY_UNDEFINED = 0; // 0x0
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_MASK = 3; // 0x3
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_NO = 1; // 0x1
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_UNDEFINED = 0; // 0x0
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_YES = 2; // 0x2
+ field public static final int COLOR_MODE_HDR_MASK = 12; // 0xc
+ field public static final int COLOR_MODE_HDR_NO = 4; // 0x4
+ field public static final int COLOR_MODE_HDR_SHIFT = 2; // 0x2
+ field public static final int COLOR_MODE_HDR_UNDEFINED = 0; // 0x0
+ field public static final int COLOR_MODE_HDR_YES = 8; // 0x8
+ field public static final int COLOR_MODE_UNDEFINED = 0; // 0x0
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_MASK = 3; // 0x3
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_NO = 1; // 0x1
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_UNDEFINED = 0; // 0x0
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_YES = 2; // 0x2
field public static final android.os.Parcelable.Creator<android.content.res.Configuration> CREATOR;
field public static final int DENSITY_DPI_UNDEFINED = 0; // 0x0
field public static final int HARDKEYBOARDHIDDEN_NO = 1; // 0x1
@@ -11242,7 +11247,7 @@ package android.content.res {
field public static final int UI_MODE_TYPE_UNDEFINED = 0; // 0x0
field public static final int UI_MODE_TYPE_VR_HEADSET = 7; // 0x7
field public static final int UI_MODE_TYPE_WATCH = 6; // 0x6
- field public int colorimetry;
+ field public int colorMode;
field public int densityDpi;
field public float fontScale;
field public int hardKeyboardHidden;
@@ -48364,6 +48369,7 @@ package android.view {
method public boolean getAllowReturnTransitionOverlap();
method public final android.view.WindowManager.LayoutParams getAttributes();
method public final android.view.Window.Callback getCallback();
+ method public int getColorMode();
method public final android.view.Window getContainer();
method public android.transition.Scene getContentScene();
method public final android.content.Context getContext();
@@ -48420,6 +48426,7 @@ package android.view {
method public abstract void setChildDrawable(int, android.graphics.drawable.Drawable);
method public abstract void setChildInt(int, int);
method public void setClipToOutline(boolean);
+ method public void setColorMode(int);
method public void setContainer(android.view.Window);
method public abstract void setContentView(int);
method public abstract void setContentView(android.view.View);
@@ -48619,9 +48626,11 @@ package android.view {
method public final int copyFrom(android.view.WindowManager.LayoutParams);
method public java.lang.String debug(java.lang.String);
method public int describeContents();
+ method public int getColorMode();
method public final java.lang.CharSequence getTitle();
method public final long getUserActivityTimeout();
method public static boolean mayUseInputMethod(int);
+ method public void setColorMode(int);
method public final void setTitle(java.lang.CharSequence);
method public final void setUserActivityTimeout(long);
method public void writeToParcel(android.os.Parcel, int);
diff --git a/api/test-current.txt b/api/test-current.txt
index 94b4a000ed98..772fe1053402 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -408,6 +408,7 @@ package android {
field public static final int colorForeground = 16842800; // 0x1010030
field public static final int colorForegroundInverse = 16843270; // 0x1010206
field public static final int colorLongPressedHighlight = 16843662; // 0x101038e
+ field public static final int colorMode = 16844108; // 0x101054c
field public static final int colorMultiSelectHighlight = 16843665; // 0x1010391
field public static final int colorPressedHighlight = 16843661; // 0x101038d
field public static final int colorPrimary = 16843827; // 0x1010433
@@ -9600,7 +9601,10 @@ package android.content.pm {
method public int describeContents();
method public void dump(android.util.Printer, java.lang.String);
method public final int getThemeResource();
- field public static final int CONFIG_COLORIMETRY = 16384; // 0x4000
+ field public static final int COLOR_MODE_DEFAULT = 0; // 0x0
+ field public static final int COLOR_MODE_HDR = 2; // 0x2
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT = 1; // 0x1
+ field public static final int CONFIG_COLOR_MODE = 16384; // 0x4000
field public static final int CONFIG_DENSITY = 4096; // 0x1000
field public static final int CONFIG_FONT_SCALE = 1073741824; // 0x40000000
field public static final int CONFIG_KEYBOARD = 16; // 0x10
@@ -9661,6 +9665,7 @@ package android.content.pm {
field public static final int SCREEN_ORIENTATION_USER_LANDSCAPE = 11; // 0xb
field public static final int SCREEN_ORIENTATION_USER_PORTRAIT = 12; // 0xc
field public static final int UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW = 1; // 0x1
+ field public int colorMode;
field public int configChanges;
field public int documentLaunchMode;
field public int flags;
@@ -10643,16 +10648,16 @@ package android.content.res {
method public void setToDefaults();
method public int updateFrom(android.content.res.Configuration);
method public void writeToParcel(android.os.Parcel, int);
- field public static final int COLORIMETRY_HDR_MASK = 12; // 0xc
- field public static final int COLORIMETRY_HDR_NO = 4; // 0x4
- field public static final int COLORIMETRY_HDR_SHIFT = 2; // 0x2
- field public static final int COLORIMETRY_HDR_UNDEFINED = 0; // 0x0
- field public static final int COLORIMETRY_HDR_YES = 8; // 0x8
- field public static final int COLORIMETRY_UNDEFINED = 0; // 0x0
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_MASK = 3; // 0x3
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_NO = 1; // 0x1
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_UNDEFINED = 0; // 0x0
- field public static final int COLORIMETRY_WIDE_COLOR_GAMUT_YES = 2; // 0x2
+ field public static final int COLOR_MODE_HDR_MASK = 12; // 0xc
+ field public static final int COLOR_MODE_HDR_NO = 4; // 0x4
+ field public static final int COLOR_MODE_HDR_SHIFT = 2; // 0x2
+ field public static final int COLOR_MODE_HDR_UNDEFINED = 0; // 0x0
+ field public static final int COLOR_MODE_HDR_YES = 8; // 0x8
+ field public static final int COLOR_MODE_UNDEFINED = 0; // 0x0
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_MASK = 3; // 0x3
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_NO = 1; // 0x1
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_UNDEFINED = 0; // 0x0
+ field public static final int COLOR_MODE_WIDE_COLOR_GAMUT_YES = 2; // 0x2
field public static final android.os.Parcelable.Creator<android.content.res.Configuration> CREATOR;
field public static final int DENSITY_DPI_UNDEFINED = 0; // 0x0
field public static final int HARDKEYBOARDHIDDEN_NO = 1; // 0x1
@@ -10718,7 +10723,7 @@ package android.content.res {
field public static final int UI_MODE_TYPE_UNDEFINED = 0; // 0x0
field public static final int UI_MODE_TYPE_VR_HEADSET = 7; // 0x7
field public static final int UI_MODE_TYPE_WATCH = 6; // 0x6
- field public int colorimetry;
+ field public int colorMode;
field public int densityDpi;
field public float fontScale;
field public int hardKeyboardHidden;
@@ -45302,6 +45307,7 @@ package android.view {
method public boolean getAllowReturnTransitionOverlap();
method public final android.view.WindowManager.LayoutParams getAttributes();
method public final android.view.Window.Callback getCallback();
+ method public int getColorMode();
method public final android.view.Window getContainer();
method public android.transition.Scene getContentScene();
method public final android.content.Context getContext();
@@ -45358,6 +45364,7 @@ package android.view {
method public abstract void setChildDrawable(int, android.graphics.drawable.Drawable);
method public abstract void setChildInt(int, int);
method public void setClipToOutline(boolean);
+ method public void setColorMode(int);
method public void setContainer(android.view.Window);
method public abstract void setContentView(int);
method public abstract void setContentView(android.view.View);
@@ -45556,8 +45563,10 @@ package android.view {
method public final int copyFrom(android.view.WindowManager.LayoutParams);
method public java.lang.String debug(java.lang.String);
method public int describeContents();
+ method public int getColorMode();
method public final java.lang.CharSequence getTitle();
method public static boolean mayUseInputMethod(int);
+ method public void setColorMode(int);
method public final void setTitle(java.lang.CharSequence);
method public void writeToParcel(android.os.Parcel, int);
field public static final int ALPHA_CHANGED = 128; // 0x80
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index a9d1cf6e490f..e6520dea78d5 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -6792,6 +6792,8 @@ public class Activity extends ContextThemeWrapper
}
mWindowManager = mWindow.getWindowManager();
mCurrentConfig = config;
+
+ mWindow.setColorMode(info.colorMode);
}
/** @hide */
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 4bd091dae77e..f80879e9a787 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -220,6 +220,44 @@ public class ActivityInfo extends ComponentInfo
public String requestedVrComponent;
/**
+ * Value for {@link #colorMode} indicating that the activity should use the
+ * default color mode (sRGB, low dynamic range).
+ *
+ * @see android.R.attr#colorMode
+ */
+ public static final int COLOR_MODE_DEFAULT = 0;
+ /**
+ * Value of {@link #colorMode} indicating that the activity should use a
+ * wide color gamut if the presentation display supports it.
+ *
+ * @see android.R.attr#colorMode
+ */
+ public static final int COLOR_MODE_WIDE_COLOR_GAMUT = 1;
+ /**
+ * Value of {@link #colorMode} indicating that the activity should use a
+ * high dynamic range if the presentation display supports it.
+ *
+ * @see android.R.attr#colorMode
+ */
+ public static final int COLOR_MODE_HDR = 2;
+
+ /** @hide */
+ @IntDef({
+ COLOR_MODE_DEFAULT,
+ COLOR_MODE_WIDE_COLOR_GAMUT,
+ COLOR_MODE_HDR,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface ColorMode {}
+
+ /**
+ * The color mode requested by this activity. The target display may not be
+ * able to honor the request.
+ */
+ @ColorMode
+ public int colorMode = COLOR_MODE_DEFAULT;
+
+ /**
* Bit in {@link #flags} indicating whether this activity is able to
* run in multiple processes. If
* true, the system may instantiate it in the some process as the
@@ -566,7 +604,7 @@ public class ActivityInfo extends ComponentInfo
CONFIG_SMALLEST_SCREEN_SIZE,
CONFIG_DENSITY,
CONFIG_LAYOUT_DIRECTION,
- CONFIG_COLORIMETRY,
+ CONFIG_COLOR_MODE,
CONFIG_FONT_SCALE,
})
@Retention(RetentionPolicy.SOURCE)
@@ -675,7 +713,7 @@ public class ActivityInfo extends ComponentInfo
* can itself handle the change to the display color gamut or dynamic
* range. Set from the {@link android.R.attr#configChanges} attribute.
*/
- public static final int CONFIG_COLORIMETRY = 0x4000;
+ public static final int CONFIG_COLOR_MODE = 0x4000;
/**
* Bit in {@link #configChanges} that indicates that the activity
* can itself handle asset path changes. Set from the {@link android.R.attr#configChanges}
@@ -713,7 +751,7 @@ public class ActivityInfo extends ComponentInfo
Configuration.NATIVE_CONFIG_SMALLEST_SCREEN_SIZE, // SMALLEST SCREEN SIZE
Configuration.NATIVE_CONFIG_DENSITY, // DENSITY
Configuration.NATIVE_CONFIG_LAYOUTDIR, // LAYOUT DIRECTION
- Configuration.NATIVE_CONFIG_COLORIMETRY, // COLORIMETRY
+ Configuration.NATIVE_CONFIG_COLOR_MODE, // COLOR_MODE
};
/**
@@ -770,7 +808,7 @@ public class ActivityInfo extends ComponentInfo
* {@link #CONFIG_KEYBOARD}, {@link #CONFIG_NAVIGATION},
* {@link #CONFIG_ORIENTATION}, {@link #CONFIG_SCREEN_LAYOUT},
* {@link #CONFIG_DENSITY}, {@link #CONFIG_LAYOUT_DIRECTION} and
- * {@link #CONFIG_COLORIMETRY}.
+ * {@link #CONFIG_COLOR_MODE}.
* Set from the {@link android.R.attr#configChanges} attribute.
*/
public int configChanges;
@@ -873,6 +911,7 @@ public class ActivityInfo extends ComponentInfo
resizeMode = orig.resizeMode;
requestedVrComponent = orig.requestedVrComponent;
rotationAnimation = orig.rotationAnimation;
+ colorMode = orig.colorMode;
}
/**
@@ -1055,6 +1094,7 @@ public class ActivityInfo extends ComponentInfo
dest.writeInt(resizeMode);
dest.writeString(requestedVrComponent);
dest.writeInt(rotationAnimation);
+ dest.writeInt(colorMode);
}
public static final Parcelable.Creator<ActivityInfo> CREATOR
@@ -1090,6 +1130,7 @@ public class ActivityInfo extends ComponentInfo
resizeMode = source.readInt();
requestedVrComponent = source.readString();
rotationAnimation = source.readInt();
+ colorMode = source.readInt();
}
/**
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index ca3011e0c7fb..87d6ba3e3454 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -4020,6 +4020,9 @@ public class PackageParser {
a.info.rotationAnimation =
sa.getInt(R.styleable.AndroidManifestActivity_rotationAnimation, ROTATION_ANIMATION_ROTATE);
+
+ a.info.colorMode = sa.getInt(R.styleable.AndroidManifestActivity_colorMode,
+ ActivityInfo.COLOR_MODE_DEFAULT);
} else {
a.info.launchMode = ActivityInfo.LAUNCH_MULTIPLE;
a.info.configChanges = 0;
diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java
index a81329d9ee67..99fbee1ea3cc 100644
--- a/core/java/android/content/res/Configuration.java
+++ b/core/java/android/content/res/Configuration.java
@@ -102,66 +102,66 @@ public final class Configuration implements Parcelable, Comparable<Configuration
public boolean userSetLocale;
- /** Constant for {@link #colorimetry}: bits that encode whether the screen is wide gamut. */
- public static final int COLORIMETRY_WIDE_COLOR_GAMUT_MASK = 0x3;
+ /** Constant for {@link #colorMode}: bits that encode whether the screen is wide gamut. */
+ public static final int COLOR_MODE_WIDE_COLOR_GAMUT_MASK = 0x3;
/**
- * Constant for {@link #colorimetry}: a {@link #COLORIMETRY_WIDE_COLOR_GAMUT_MASK} value
+ * Constant for {@link #colorMode}: a {@link #COLOR_MODE_WIDE_COLOR_GAMUT_MASK} value
* indicating that it is unknown whether or not the screen is wide gamut.
*/
- public static final int COLORIMETRY_WIDE_COLOR_GAMUT_UNDEFINED = 0x0;
+ public static final int COLOR_MODE_WIDE_COLOR_GAMUT_UNDEFINED = 0x0;
/**
- * Constant for {@link #colorimetry}: a {@link #COLORIMETRY_WIDE_COLOR_GAMUT_MASK} value
+ * Constant for {@link #colorMode}: a {@link #COLOR_MODE_WIDE_COLOR_GAMUT_MASK} value
* indicating that the screen is not wide gamut.
* <p>Corresponds to the <code>-nowidecg</code> resource qualifier.</p>
*/
- public static final int COLORIMETRY_WIDE_COLOR_GAMUT_NO = 0x1;
+ public static final int COLOR_MODE_WIDE_COLOR_GAMUT_NO = 0x1;
/**
- * Constant for {@link #colorimetry}: a {@link #COLORIMETRY_WIDE_COLOR_GAMUT_MASK} value
+ * Constant for {@link #colorMode}: a {@link #COLOR_MODE_WIDE_COLOR_GAMUT_MASK} value
* indicating that the screen is wide gamut.
* <p>Corresponds to the <code>-widecg</code> resource qualifier.</p>
*/
- public static final int COLORIMETRY_WIDE_COLOR_GAMUT_YES = 0x2;
+ public static final int COLOR_MODE_WIDE_COLOR_GAMUT_YES = 0x2;
- /** Constant for {@link #colorimetry}: bits that encode whether the dynamic range of the screen. */
- public static final int COLORIMETRY_HDR_MASK = 0xc;
- /** Constant for {@link #colorimetry}: bits shift to get the screen dynamic range. */
- public static final int COLORIMETRY_HDR_SHIFT = 2;
+ /** Constant for {@link #colorMode}: bits that encode whether the dynamic range of the screen. */
+ public static final int COLOR_MODE_HDR_MASK = 0xc;
+ /** Constant for {@link #colorMode}: bits shift to get the screen dynamic range. */
+ public static final int COLOR_MODE_HDR_SHIFT = 2;
/**
- * Constant for {@link #colorimetry}: a {@link #COLORIMETRY_HDR_MASK} value
+ * Constant for {@link #colorMode}: a {@link #COLOR_MODE_HDR_MASK} value
* indicating that it is unknown whether or not the screen is HDR.
*/
- public static final int COLORIMETRY_HDR_UNDEFINED = 0x0;
+ public static final int COLOR_MODE_HDR_UNDEFINED = 0x0;
/**
- * Constant for {@link #colorimetry}: a {@link #COLORIMETRY_HDR_MASK} value
+ * Constant for {@link #colorMode}: a {@link #COLOR_MODE_HDR_MASK} value
* indicating that the screen is not HDR (low/standard dynamic range).
* <p>Corresponds to the <code>-lowdr</code> resource qualifier.</p>
*/
- public static final int COLORIMETRY_HDR_NO = 0x1 << COLORIMETRY_HDR_SHIFT;
+ public static final int COLOR_MODE_HDR_NO = 0x1 << COLOR_MODE_HDR_SHIFT;
/**
- * Constant for {@link #colorimetry}: a {@link #COLORIMETRY_HDR_MASK} value
+ * Constant for {@link #colorMode}: a {@link #COLOR_MODE_HDR_MASK} value
* indicating that the screen is HDR (dynamic range).
* <p>Corresponds to the <code>-highdr</code> resource qualifier.</p>
*/
- public static final int COLORIMETRY_HDR_YES = 0x2 << COLORIMETRY_HDR_SHIFT;
+ public static final int COLOR_MODE_HDR_YES = 0x2 << COLOR_MODE_HDR_SHIFT;
- /** Constant for {@link #colorimetry}: a value indicating that colorimetry is undefined */
+ /** Constant for {@link #colorMode}: a value indicating that the color mode is undefined */
@SuppressWarnings("PointlessBitwiseExpression")
- public static final int COLORIMETRY_UNDEFINED = COLORIMETRY_WIDE_COLOR_GAMUT_UNDEFINED |
- COLORIMETRY_HDR_UNDEFINED;
+ public static final int COLOR_MODE_UNDEFINED = COLOR_MODE_WIDE_COLOR_GAMUT_UNDEFINED |
+ COLOR_MODE_HDR_UNDEFINED;
/**
* Bit mask of for color capabilities of the screen. Currently there are two fields:
- * <p>The {@link #COLORIMETRY_WIDE_COLOR_GAMUT_MASK} bits define the color gamut of
+ * <p>The {@link #COLOR_MODE_WIDE_COLOR_GAMUT_MASK} bits define the color gamut of
* the screen. They may be one of
- * {@link #COLORIMETRY_WIDE_COLOR_GAMUT_NO} or {@link #COLORIMETRY_WIDE_COLOR_GAMUT_YES}.</p>
+ * {@link #COLOR_MODE_WIDE_COLOR_GAMUT_NO} or {@link #COLOR_MODE_WIDE_COLOR_GAMUT_YES}.</p>
*
- * <p>The {@link #COLORIMETRY_HDR_MASK} defines the dynamic range of the screen. They may be
- * one of {@link #COLORIMETRY_HDR_NO} or {@link #COLORIMETRY_HDR_YES}.</p>
+ * <p>The {@link #COLOR_MODE_HDR_MASK} defines the dynamic range of the screen. They may be
+ * one of {@link #COLOR_MODE_HDR_NO} or {@link #COLOR_MODE_HDR_YES}.</p>
*
* <p>See <a href="{@docRoot}guide/practices/screens_support.html">Supporting
* Multiple Screens</a> for more information.</p>
*/
- public int colorimetry;
+ public int colorMode;
/** Constant for {@link #screenLayout}: bits that encode the size. */
public static final int SCREENLAYOUT_SIZE_MASK = 0x0f;
@@ -393,8 +393,8 @@ public final class Configuration implements Parcelable, Comparable<Configuration
if ((diff & ActivityInfo.CONFIG_SCREEN_LAYOUT) != 0) {
list.add("CONFIG_SCREEN_LAYOUT");
}
- if ((diff & ActivityInfo.CONFIG_COLORIMETRY) != 0) {
- list.add("CONFIG_COLORIMETRY");
+ if ((diff & ActivityInfo.CONFIG_COLOR_MODE) != 0) {
+ list.add("CONFIG_COLOR_MODE");
}
if ((diff & ActivityInfo.CONFIG_UI_MODE) != 0) {
list.add("CONFIG_UI_MODE");
@@ -776,7 +776,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
NATIVE_CONFIG_UI_MODE,
NATIVE_CONFIG_SMALLEST_SCREEN_SIZE,
NATIVE_CONFIG_LAYOUTDIR,
- NATIVE_CONFIG_COLORIMETRY,
+ NATIVE_CONFIG_COLOR_MODE,
})
@Retention(RetentionPolicy.SOURCE)
public @interface NativeConfig {}
@@ -813,8 +813,8 @@ public final class Configuration implements Parcelable, Comparable<Configuration
public static final int NATIVE_CONFIG_SMALLEST_SCREEN_SIZE = 0x2000;
/** @hide Native-specific bit mask for LAYOUTDIR config ; DO NOT USE UNLESS YOU ARE SURE.*/
public static final int NATIVE_CONFIG_LAYOUTDIR = 0x4000;
- /** @hide Native-specific bit mask for COLORIMETRY config ; DO NOT USE UNLESS YOU ARE SURE.*/
- public static final int NATIVE_CONFIG_COLORIMETRY = 0x10000;
+ /** @hide Native-specific bit mask for COLOR_MODE config ; DO NOT USE UNLESS YOU ARE SURE.*/
+ public static final int NATIVE_CONFIG_COLOR_MODE = 0x10000;
/**
* <p>Construct an invalid Configuration. This state is only suitable for constructing a
@@ -873,7 +873,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
navigationHidden = o.navigationHidden;
orientation = o.orientation;
screenLayout = o.screenLayout;
- colorimetry = o.colorimetry;
+ colorMode = o.colorMode;
uiMode = o.uiMode;
screenWidthDp = o.screenWidthDp;
screenHeightDp = o.screenHeightDp;
@@ -954,19 +954,19 @@ public final class Configuration implements Parcelable, Comparable<Configuration
default: sb.append(" layoutLong=");
sb.append(screenLayout&SCREENLAYOUT_LONG_MASK); break;
}
- switch ((colorimetry&COLORIMETRY_HDR_MASK)) {
- case COLORIMETRY_HDR_UNDEFINED: sb.append(" ?ldr"); break; // most likely not HDR
- case COLORIMETRY_HDR_NO: /* ldr is not interesting to print */ break;
- case COLORIMETRY_HDR_YES: sb.append(" hdr"); break;
+ switch ((colorMode &COLOR_MODE_HDR_MASK)) {
+ case COLOR_MODE_HDR_UNDEFINED: sb.append(" ?ldr"); break; // most likely not HDR
+ case COLOR_MODE_HDR_NO: /* ldr is not interesting to print */ break;
+ case COLOR_MODE_HDR_YES: sb.append(" hdr"); break;
default: sb.append(" dynamicRange=");
- sb.append(colorimetry&COLORIMETRY_HDR_MASK); break;
+ sb.append(colorMode &COLOR_MODE_HDR_MASK); break;
}
- switch ((colorimetry&COLORIMETRY_WIDE_COLOR_GAMUT_MASK)) {
- case COLORIMETRY_WIDE_COLOR_GAMUT_UNDEFINED: sb.append(" ?wideColorGamut"); break;
- case COLORIMETRY_WIDE_COLOR_GAMUT_NO: /* not wide is not interesting to print */ break;
- case COLORIMETRY_WIDE_COLOR_GAMUT_YES: sb.append(" widecg"); break;
+ switch ((colorMode &COLOR_MODE_WIDE_COLOR_GAMUT_MASK)) {
+ case COLOR_MODE_WIDE_COLOR_GAMUT_UNDEFINED: sb.append(" ?wideColorGamut"); break;
+ case COLOR_MODE_WIDE_COLOR_GAMUT_NO: /* not wide is not interesting to print */ break;
+ case COLOR_MODE_WIDE_COLOR_GAMUT_YES: sb.append(" widecg"); break;
default: sb.append(" wideColorGamut=");
- sb.append(colorimetry&COLORIMETRY_WIDE_COLOR_GAMUT_MASK); break;
+ sb.append(colorMode &COLOR_MODE_WIDE_COLOR_GAMUT_MASK); break;
}
switch (orientation) {
case ORIENTATION_UNDEFINED: sb.append(" ?orien"); break;
@@ -1059,7 +1059,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
navigationHidden = NAVIGATIONHIDDEN_UNDEFINED;
orientation = ORIENTATION_UNDEFINED;
screenLayout = SCREENLAYOUT_UNDEFINED;
- colorimetry = COLORIMETRY_UNDEFINED;
+ colorMode = COLOR_MODE_UNDEFINED;
uiMode = UI_MODE_TYPE_UNDEFINED;
screenWidthDp = compatScreenWidthDp = SCREEN_WIDTH_DP_UNDEFINED;
screenHeightDp = compatScreenHeightDp = SCREEN_HEIGHT_DP_UNDEFINED;
@@ -1195,21 +1195,21 @@ public final class Configuration implements Parcelable, Comparable<Configuration
| (delta.screenLayout & SCREENLAYOUT_COMPAT_NEEDED);
}
- if (((delta.colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK) !=
- COLORIMETRY_WIDE_COLOR_GAMUT_UNDEFINED)
- && (delta.colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK)
- != (colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK)) {
- changed |= ActivityInfo.CONFIG_COLORIMETRY;
- colorimetry = (colorimetry & ~COLORIMETRY_WIDE_COLOR_GAMUT_MASK)
- | (delta.colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK);
+ if (((delta.colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK) !=
+ COLOR_MODE_WIDE_COLOR_GAMUT_UNDEFINED)
+ && (delta.colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK)
+ != (colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK)) {
+ changed |= ActivityInfo.CONFIG_COLOR_MODE;
+ colorMode = (colorMode & ~COLOR_MODE_WIDE_COLOR_GAMUT_MASK)
+ | (delta.colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK);
}
- if (((delta.colorimetry & COLORIMETRY_HDR_MASK) != COLORIMETRY_HDR_UNDEFINED)
- && (delta.colorimetry & COLORIMETRY_HDR_MASK)
- != (colorimetry & COLORIMETRY_HDR_MASK)) {
- changed |= ActivityInfo.CONFIG_COLORIMETRY;
- colorimetry = (colorimetry & ~COLORIMETRY_HDR_MASK)
- | (delta.colorimetry & COLORIMETRY_HDR_MASK);
+ if (((delta.colorMode & COLOR_MODE_HDR_MASK) != COLOR_MODE_HDR_UNDEFINED)
+ && (delta.colorMode & COLOR_MODE_HDR_MASK)
+ != (colorMode & COLOR_MODE_HDR_MASK)) {
+ changed |= ActivityInfo.CONFIG_COLOR_MODE;
+ colorMode = (colorMode & ~COLOR_MODE_HDR_MASK)
+ | (delta.colorMode & COLOR_MODE_HDR_MASK);
}
if (delta.uiMode != (UI_MODE_TYPE_UNDEFINED|UI_MODE_NIGHT_UNDEFINED)
@@ -1362,17 +1362,17 @@ public final class Configuration implements Parcelable, Comparable<Configuration
changed |= ActivityInfo.CONFIG_SCREEN_LAYOUT;
}
if ((compareUndefined ||
- (delta.colorimetry & COLORIMETRY_HDR_MASK) != COLORIMETRY_HDR_UNDEFINED)
- && (colorimetry & COLORIMETRY_HDR_MASK) !=
- (delta.colorimetry & COLORIMETRY_HDR_MASK)) {
- changed |= ActivityInfo.CONFIG_COLORIMETRY;
+ (delta.colorMode & COLOR_MODE_HDR_MASK) != COLOR_MODE_HDR_UNDEFINED)
+ && (colorMode & COLOR_MODE_HDR_MASK) !=
+ (delta.colorMode & COLOR_MODE_HDR_MASK)) {
+ changed |= ActivityInfo.CONFIG_COLOR_MODE;
}
if ((compareUndefined ||
- (delta.colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK) !=
- COLORIMETRY_WIDE_COLOR_GAMUT_UNDEFINED)
- && (colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK) !=
- (delta.colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK)) {
- changed |= ActivityInfo.CONFIG_COLORIMETRY;
+ (delta.colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK) !=
+ COLOR_MODE_WIDE_COLOR_GAMUT_UNDEFINED)
+ && (colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK) !=
+ (delta.colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK)) {
+ changed |= ActivityInfo.CONFIG_COLOR_MODE;
}
if ((compareUndefined || delta.uiMode != (UI_MODE_TYPE_UNDEFINED|UI_MODE_NIGHT_UNDEFINED))
&& uiMode != delta.uiMode) {
@@ -1485,7 +1485,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
dest.writeInt(navigationHidden);
dest.writeInt(orientation);
dest.writeInt(screenLayout);
- dest.writeInt(colorimetry);
+ dest.writeInt(colorMode);
dest.writeInt(uiMode);
dest.writeInt(screenWidthDp);
dest.writeInt(screenHeightDp);
@@ -1520,7 +1520,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
navigationHidden = source.readInt();
orientation = source.readInt();
screenLayout = source.readInt();
- colorimetry = source.readInt();
+ colorMode = source.readInt();
uiMode = source.readInt();
screenWidthDp = source.readInt();
screenHeightDp = source.readInt();
@@ -1602,7 +1602,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
if (n != 0) return n;
n = this.orientation - that.orientation;
if (n != 0) return n;
- n = this.colorimetry - that.colorimetry;
+ n = this.colorMode - that.colorMode;
if (n != 0) return n;
n = this.screenLayout - that.screenLayout;
if (n != 0) return n;
@@ -1649,7 +1649,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
result = 31 * result + navigationHidden;
result = 31 * result + orientation;
result = 31 * result + screenLayout;
- result = 31 * result + colorimetry;
+ result = 31 * result + colorMode;
result = 31 * result + uiMode;
result = 31 * result + screenWidthDp;
result = 31 * result + screenHeightDp;
@@ -1763,7 +1763,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
* @return true if the screen has a wide color gamut, false otherwise
*/
public boolean isScreenWideColorGamut() {
- return (colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK) == COLORIMETRY_WIDE_COLOR_GAMUT_YES;
+ return (colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK) == COLOR_MODE_WIDE_COLOR_GAMUT_YES;
}
/**
@@ -1772,7 +1772,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
* @return true if the screen has a high dynamic range, false otherwise
*/
public boolean isScreenHdr() {
- return (colorimetry & COLORIMETRY_HDR_MASK) == COLORIMETRY_HDR_YES;
+ return (colorMode & COLOR_MODE_HDR_MASK) == COLOR_MODE_HDR_YES;
}
/**
@@ -1907,22 +1907,22 @@ public final class Configuration implements Parcelable, Comparable<Configuration
break;
}
- switch (config.colorimetry & Configuration.COLORIMETRY_HDR_MASK) {
- case Configuration.COLORIMETRY_HDR_YES:
+ switch (config.colorMode & Configuration.COLOR_MODE_HDR_MASK) {
+ case Configuration.COLOR_MODE_HDR_YES:
parts.add("highdr");
break;
- case Configuration.COLORIMETRY_HDR_NO:
+ case Configuration.COLOR_MODE_HDR_NO:
parts.add("lowdr");
break;
default:
break;
}
- switch (config.colorimetry & Configuration.COLORIMETRY_WIDE_COLOR_GAMUT_MASK) {
- case Configuration.COLORIMETRY_WIDE_COLOR_GAMUT_YES:
+ switch (config.colorMode & Configuration.COLOR_MODE_WIDE_COLOR_GAMUT_MASK) {
+ case Configuration.COLOR_MODE_WIDE_COLOR_GAMUT_YES:
parts.add("widecg");
break;
- case Configuration.COLORIMETRY_WIDE_COLOR_GAMUT_NO:
+ case Configuration.COLOR_MODE_WIDE_COLOR_GAMUT_NO:
parts.add("nowidecg");
break;
default:
@@ -2154,14 +2154,14 @@ public final class Configuration implements Parcelable, Comparable<Configuration
delta.screenLayout |= change.screenLayout & SCREENLAYOUT_ROUND_MASK;
}
- if ((base.colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK) !=
- (change.colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK)) {
- delta.colorimetry |= change.colorimetry & COLORIMETRY_WIDE_COLOR_GAMUT_MASK;
+ if ((base.colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK) !=
+ (change.colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK)) {
+ delta.colorMode |= change.colorMode & COLOR_MODE_WIDE_COLOR_GAMUT_MASK;
}
- if ((base.colorimetry & COLORIMETRY_HDR_MASK) !=
- (change.colorimetry & COLORIMETRY_HDR_MASK)) {
- delta.colorimetry |= change.colorimetry & COLORIMETRY_HDR_MASK;
+ if ((base.colorMode & COLOR_MODE_HDR_MASK) !=
+ (change.colorMode & COLOR_MODE_HDR_MASK)) {
+ delta.colorMode |= change.colorMode & COLOR_MODE_HDR_MASK;
}
if ((base.uiMode & UI_MODE_TYPE_MASK) != (change.uiMode & UI_MODE_TYPE_MASK)) {
@@ -2206,7 +2206,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
private static final String XML_ATTR_NAVIGATION_HIDDEN = "navHid";
private static final String XML_ATTR_ORIENTATION = "ori";
private static final String XML_ATTR_SCREEN_LAYOUT = "scrLay";
- private static final String XML_ATTR_COLORIMETRY = "clrMtry";
+ private static final String XML_ATTR_COLOR_MODE = "clrMod";
private static final String XML_ATTR_UI_MODE = "ui";
private static final String XML_ATTR_SCREEN_WIDTH = "width";
private static final String XML_ATTR_SCREEN_HEIGHT = "height";
@@ -2249,8 +2249,8 @@ public final class Configuration implements Parcelable, Comparable<Configuration
ORIENTATION_UNDEFINED);
configOut.screenLayout = XmlUtils.readIntAttribute(parser, XML_ATTR_SCREEN_LAYOUT,
SCREENLAYOUT_UNDEFINED);
- configOut.colorimetry = XmlUtils.readIntAttribute(parser, XML_ATTR_COLORIMETRY,
- COLORIMETRY_UNDEFINED);
+ configOut.colorMode = XmlUtils.readIntAttribute(parser, XML_ATTR_COLOR_MODE,
+ COLOR_MODE_UNDEFINED);
configOut.uiMode = XmlUtils.readIntAttribute(parser, XML_ATTR_UI_MODE, 0);
configOut.screenWidthDp = XmlUtils.readIntAttribute(parser, XML_ATTR_SCREEN_WIDTH,
SCREEN_WIDTH_DP_UNDEFINED);
@@ -2313,8 +2313,8 @@ public final class Configuration implements Parcelable, Comparable<Configuration
if (config.screenLayout != SCREENLAYOUT_UNDEFINED) {
XmlUtils.writeIntAttribute(xml, XML_ATTR_SCREEN_LAYOUT, config.screenLayout);
}
- if (config.colorimetry != COLORIMETRY_UNDEFINED) {
- XmlUtils.writeIntAttribute(xml, XML_ATTR_COLORIMETRY, config.colorimetry);
+ if (config.colorMode != COLOR_MODE_UNDEFINED) {
+ XmlUtils.writeIntAttribute(xml, XML_ATTR_COLOR_MODE, config.colorMode);
}
if (config.uiMode != 0) {
XmlUtils.writeIntAttribute(xml, XML_ATTR_UI_MODE, config.uiMode);
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index 8bc988d8de1a..e2bdd976980a 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -27,6 +27,7 @@ import android.annotation.Nullable;
import android.annotation.StyleRes;
import android.annotation.SystemApi;
import android.content.Context;
+import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -1128,6 +1129,28 @@ public abstract class Window {
}
/**
+ * <p>Set the color mode of the window. Setting the color mode might
+ * override the window's pixel {@link WindowManager.LayoutParams#format format}.</p>
+ *
+ * <p>The color mode must be one of {@link ActivityInfo#COLOR_MODE_DEFAULT},
+ * {@link ActivityInfo#COLOR_MODE_WIDE_COLOR_GAMUT} or {@link ActivityInfo#COLOR_MODE_HDR}.</p>
+ */
+ public void setColorMode(@ActivityInfo.ColorMode int colorMode) {
+ final WindowManager.LayoutParams attrs = getAttributes();
+ attrs.setColorMode(colorMode);
+ dispatchWindowAttributesChanged(attrs);
+ }
+
+ /**
+ * Returns the color mode of the window, one of {@link ActivityInfo#COLOR_MODE_DEFAULT},
+ * {@link ActivityInfo#COLOR_MODE_WIDE_COLOR_GAMUT} or {@link ActivityInfo#COLOR_MODE_HDR}.
+ */
+ @ActivityInfo.ColorMode
+ public int getColorMode() {
+ return getAttributes().getColorMode();
+ }
+
+ /**
* Set the amount of dim behind the window when using
* {@link WindowManager.LayoutParams#FLAG_DIM_BEHIND}. This overrides
* the default dim amount of that is selected by the Window based on
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index e5a6ebdfb9e0..bf840e547079 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -22,7 +22,6 @@ import android.app.KeyguardManager;
import android.app.Presentation;
import android.content.Context;
import android.content.pm.ActivityInfo;
-import android.graphics.GraphicBuffer;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.os.IBinder;
@@ -1577,7 +1576,8 @@ public interface WindowManager extends ViewManager {
/**
* The desired bitmap format. May be one of the constants in
- * {@link android.graphics.PixelFormat}. Default is OPAQUE.
+ * {@link android.graphics.PixelFormat}. The choice of format
+ * might be overridden by {@link #setColorMode(int)}. Default is OPAQUE.
*/
public int format;
@@ -1833,6 +1833,17 @@ public interface WindowManager extends ViewManager {
*/
public long hideTimeoutMilliseconds = -1;
+ /**
+ * The color mode requested by this window. The target display may
+ * not be able to honor the request. When the color mode is not set
+ * to {@link ActivityInfo#COLOR_MODE_DEFAULT}, it might override the
+ * pixel format specified in {@link #format}.
+ *
+ * @hide
+ */
+ @ActivityInfo.ColorMode
+ private int mColorMode = ActivityInfo.COLOR_MODE_DEFAULT;
+
public LayoutParams() {
super(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
type = TYPE_APPLICATION;
@@ -1912,6 +1923,31 @@ public interface WindowManager extends ViewManager {
preservePreviousSurfaceInsets = preservePrevious;
}
+ /**
+ * <p>Set the color mode of the window. Setting the color mode might
+ * override the window's pixel {@link WindowManager.LayoutParams#format format}.</p>
+ *
+ * <p>The color mode must be one of {@link ActivityInfo#COLOR_MODE_DEFAULT},
+ * {@link ActivityInfo#COLOR_MODE_WIDE_COLOR_GAMUT} or
+ * {@link ActivityInfo#COLOR_MODE_HDR}.</p>
+ *
+ * @see #getColorMode()
+ */
+ public void setColorMode(@ActivityInfo.ColorMode int colorMode) {
+ mColorMode = colorMode;
+ }
+
+ /**
+ * Returns the color mode of the window, one of {@link ActivityInfo#COLOR_MODE_DEFAULT},
+ * {@link ActivityInfo#COLOR_MODE_WIDE_COLOR_GAMUT} or {@link ActivityInfo#COLOR_MODE_HDR}.
+ *
+ * @see #setColorMode(int)
+ */
+ @ActivityInfo.ColorMode
+ public int getColorMode() {
+ return mColorMode;
+ }
+
/** @hide */
@SystemApi
public final void setUserActivityTimeout(long timeout) {
@@ -2268,9 +2304,11 @@ public interface WindowManager extends ViewManager {
sb.append(',');
sb.append(y);
sb.append(")(");
- sb.append((width== MATCH_PARENT ?"fill":(width==WRAP_CONTENT?"wrap":width)));
+ sb.append((width == MATCH_PARENT ? "fill" : (width == WRAP_CONTENT
+ ? "wrap" : String.valueOf(width))));
sb.append('x');
- sb.append((height== MATCH_PARENT ?"fill":(height==WRAP_CONTENT?"wrap":height)));
+ sb.append((height == MATCH_PARENT ? "fill" : (height == WRAP_CONTENT
+ ? "wrap" : String.valueOf(height))));
sb.append(")");
if (horizontalMargin != 0) {
sb.append(" hm=");
@@ -2367,6 +2405,7 @@ public interface WindowManager extends ViewManager {
sb.append(" needsMenuKey=");
sb.append(needsMenuKey);
}
+ sb.append(" colorMode=").append(mColorMode);
sb.append('}');
return sb.toString();
}
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index dfa672d6782c..f586a00a5907 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -864,9 +864,8 @@
<flag name="density" value="0x1000" />
<!-- The layout direction has changed. For example going from LTR to RTL. -->
<flag name="layoutDirection" value="0x2000" />
- <!-- The colorimetry capabilities of the screen have changed (color gamut
- or dynamic range). -->
- <flag name="colorimetry" value="0x4000" />
+ <!-- The color mode of the screen has changed (color gamut or dynamic range). -->
+ <flag name="colorMode" value="0x4000" />
<!-- The font scaling factor has changed, that is the user has
selected a new global font size. -->
<flag name="fontScale" value="0x40000000" />
@@ -2046,6 +2045,16 @@
<attr name="visibleToInstantApps" />
<!-- The code for this component is located in the given split. -->
<attr name="splitName" />
+ <!-- Specify the color mode the activity desires. The requested color mode may be ignored
+ depending on the capabilities of the display the activity is displayed on. -->
+ <attr name="colorMode">
+ <!-- The default color mode (typically sRGB, low-dynamic range). -->
+ <enum name="default" value="0" />
+ <!-- Wide color gamut color mode. -->
+ <enum name="wideColorGamut" value="1" />
+ <!-- High dynamic range color mode. -->
+ <enum name="hdr" value="2" />
+ </attr>
</declare-styleable>
<!-- The <code>activity-alias</code> tag declares a new
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 66dd1274632d..e387650ca2dd 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2788,6 +2788,7 @@
<public name="restartOnConfigChanges" />
<public name="certDigest" />
<public name="splitName" />
+ <public name="colorMode" />
</public-group>
<public-group type="style" first-id="0x010302e0">
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index a4bcc624ef31..763a178ed43b 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -1907,7 +1907,7 @@ int ResTable_config::compare(const ResTable_config& o) const {
if (diff != 0) return diff;
diff = (int32_t)(screenLayout2 - o.screenLayout2);
if (diff != 0) return diff;
- diff = (int32_t)(colorimetry - o.colorimetry);
+ diff = (int32_t)(colorMode - o.colorMode);
if (diff != 0) return diff;
diff = (int32_t)(uiMode - o.uiMode);
if (diff != 0) return diff;
@@ -1969,8 +1969,8 @@ int ResTable_config::compareLogical(const ResTable_config& o) const {
if (screenLayout2 != o.screenLayout2) {
return screenLayout2 < o.screenLayout2 ? -1 : 1;
}
- if (colorimetry != o.colorimetry) {
- return colorimetry < o.colorimetry ? -1 : 1;
+ if (colorMode != o.colorMode) {
+ return colorMode < o.colorMode ? -1 : 1;
}
if (uiMode != o.uiMode) {
return uiMode < o.uiMode ? -1 : 1;
@@ -1997,8 +1997,8 @@ int ResTable_config::diff(const ResTable_config& o) const {
if ((screenLayout & MASK_LAYOUTDIR) != (o.screenLayout & MASK_LAYOUTDIR)) diffs |= CONFIG_LAYOUTDIR;
if ((screenLayout & ~MASK_LAYOUTDIR) != (o.screenLayout & ~MASK_LAYOUTDIR)) diffs |= CONFIG_SCREEN_LAYOUT;
if ((screenLayout2 & MASK_SCREENROUND) != (o.screenLayout2 & MASK_SCREENROUND)) diffs |= CONFIG_SCREEN_ROUND;
- if ((colorimetry & MASK_WIDE_COLOR_GAMUT) != (o.colorimetry & MASK_WIDE_COLOR_GAMUT)) diffs |= CONFIG_COLORIMETRY;
- if ((colorimetry & MASK_HDR) != (o.colorimetry & MASK_HDR)) diffs |= CONFIG_COLORIMETRY;
+ if ((colorMode & MASK_WIDE_COLOR_GAMUT) != (o.colorMode & MASK_WIDE_COLOR_GAMUT)) diffs |= CONFIG_COLOR_MODE;
+ if ((colorMode & MASK_HDR) != (o.colorMode & MASK_HDR)) diffs |= CONFIG_COLOR_MODE;
if (uiMode != o.uiMode) diffs |= CONFIG_UI_MODE;
if (smallestScreenWidthDp != o.smallestScreenWidthDp) diffs |= CONFIG_SMALLEST_SCREEN_SIZE;
if (screenSizeDp != o.screenSizeDp) diffs |= CONFIG_SCREEN_SIZE;
@@ -2110,14 +2110,14 @@ bool ResTable_config::isMoreSpecificThan(const ResTable_config& o) const {
}
}
- if (colorimetry || o.colorimetry) {
- if (((colorimetry^o.colorimetry) & MASK_HDR) != 0) {
- if (!(colorimetry & MASK_HDR)) return false;
- if (!(o.colorimetry & MASK_HDR)) return true;
+ if (colorMode || o.colorMode) {
+ if (((colorMode^o.colorMode) & MASK_HDR) != 0) {
+ if (!(colorMode & MASK_HDR)) return false;
+ if (!(o.colorMode & MASK_HDR)) return true;
}
- if (((colorimetry^o.colorimetry) & MASK_WIDE_COLOR_GAMUT) != 0) {
- if (!(colorimetry & MASK_WIDE_COLOR_GAMUT)) return false;
- if (!(o.colorimetry & MASK_WIDE_COLOR_GAMUT)) return true;
+ if (((colorMode^o.colorMode) & MASK_WIDE_COLOR_GAMUT) != 0) {
+ if (!(colorMode & MASK_WIDE_COLOR_GAMUT)) return false;
+ if (!(o.colorMode & MASK_WIDE_COLOR_GAMUT)) return true;
}
}
@@ -2408,14 +2408,14 @@ bool ResTable_config::isBetterThan(const ResTable_config& o,
}
}
- if (colorimetry || o.colorimetry) {
- if (((colorimetry^o.colorimetry) & MASK_WIDE_COLOR_GAMUT) != 0 &&
- (requested->colorimetry & MASK_WIDE_COLOR_GAMUT)) {
- return colorimetry & MASK_WIDE_COLOR_GAMUT;
+ if (colorMode || o.colorMode) {
+ if (((colorMode^o.colorMode) & MASK_WIDE_COLOR_GAMUT) != 0 &&
+ (requested->colorMode & MASK_WIDE_COLOR_GAMUT)) {
+ return colorMode & MASK_WIDE_COLOR_GAMUT;
}
- if (((colorimetry^o.colorimetry) & MASK_HDR) != 0 &&
- (requested->colorimetry & MASK_HDR)) {
- return colorimetry & MASK_HDR;
+ if (((colorMode^o.colorMode) & MASK_HDR) != 0 &&
+ (requested->colorMode & MASK_HDR)) {
+ return colorMode & MASK_HDR;
}
}
@@ -2669,14 +2669,14 @@ bool ResTable_config::match(const ResTable_config& settings) const {
return false;
}
- const int hdr = colorimetry & MASK_HDR;
- const int setHdr = settings.colorimetry & MASK_HDR;
+ const int hdr = colorMode & MASK_HDR;
+ const int setHdr = settings.colorMode & MASK_HDR;
if (hdr != 0 && hdr != setHdr) {
return false;
}
- const int wideColorGamut = colorimetry & MASK_WIDE_COLOR_GAMUT;
- const int setWideColorGamut = settings.colorimetry & MASK_WIDE_COLOR_GAMUT;
+ const int wideColorGamut = colorMode & MASK_WIDE_COLOR_GAMUT;
+ const int setWideColorGamut = settings.colorMode & MASK_WIDE_COLOR_GAMUT;
if (wideColorGamut != 0 && wideColorGamut != setWideColorGamut) {
return false;
}
@@ -3000,9 +3000,9 @@ String8 ResTable_config::toString() const {
break;
}
}
- if ((colorimetry&MASK_HDR) != 0) {
+ if ((colorMode&MASK_HDR) != 0) {
if (res.size() > 0) res.append("-");
- switch (colorimetry&MASK_HDR) {
+ switch (colorMode&MASK_HDR) {
case ResTable_config::HDR_NO:
res.append("lowdr");
break;
@@ -3010,13 +3010,13 @@ String8 ResTable_config::toString() const {
res.append("highdr");
break;
default:
- res.appendFormat("hdr=%d", dtohs(colorimetry&MASK_HDR));
+ res.appendFormat("hdr=%d", dtohs(colorMode&MASK_HDR));
break;
}
}
- if ((colorimetry&MASK_WIDE_COLOR_GAMUT) != 0) {
+ if ((colorMode&MASK_WIDE_COLOR_GAMUT) != 0) {
if (res.size() > 0) res.append("-");
- switch (colorimetry&MASK_WIDE_COLOR_GAMUT) {
+ switch (colorMode&MASK_WIDE_COLOR_GAMUT) {
case ResTable_config::WIDE_COLOR_GAMUT_NO:
res.append("nowidecg");
break;
@@ -3024,7 +3024,7 @@ String8 ResTable_config::toString() const {
res.append("widecg");
break;
default:
- res.appendFormat("wideColorGamut=%d", dtohs(colorimetry&MASK_WIDE_COLOR_GAMUT));
+ res.appendFormat("wideColorGamut=%d", dtohs(colorMode&MASK_WIDE_COLOR_GAMUT));
break;
}
}
diff --git a/libs/androidfw/include/androidfw/ResourceTypes.h b/libs/androidfw/include/androidfw/ResourceTypes.h
index 1e4aee9d18e7..86ab123ff064 100644
--- a/libs/androidfw/include/androidfw/ResourceTypes.h
+++ b/libs/androidfw/include/androidfw/ResourceTypes.h
@@ -1147,25 +1147,25 @@ struct ResTable_config
};
enum {
- // colorimetry bits for wide-color gamut/narrow-color gamut.
+ // colorMode bits for wide-color gamut/narrow-color gamut.
MASK_WIDE_COLOR_GAMUT = 0x03,
WIDE_COLOR_GAMUT_ANY = ACONFIGURATION_WIDE_COLOR_GAMUT_ANY,
WIDE_COLOR_GAMUT_NO = ACONFIGURATION_WIDE_COLOR_GAMUT_NO,
WIDE_COLOR_GAMUT_YES = ACONFIGURATION_WIDE_COLOR_GAMUT_YES,
- // colorimetry bits for HDR/LDR.
+ // colorMode bits for HDR/LDR.
MASK_HDR = 0x0c,
- SHIFT_COLORIMETRY_HDR = 2,
- HDR_ANY = ACONFIGURATION_HDR_ANY << SHIFT_COLORIMETRY_HDR,
- HDR_NO = ACONFIGURATION_HDR_NO << SHIFT_COLORIMETRY_HDR,
- HDR_YES = ACONFIGURATION_HDR_YES << SHIFT_COLORIMETRY_HDR,
+ SHIFT_COLOR_MODE_HDR = 2,
+ HDR_ANY = ACONFIGURATION_HDR_ANY << SHIFT_COLOR_MODE_HDR,
+ HDR_NO = ACONFIGURATION_HDR_NO << SHIFT_COLOR_MODE_HDR,
+ HDR_YES = ACONFIGURATION_HDR_YES << SHIFT_COLOR_MODE_HDR,
};
// An extension of screenConfig.
union {
struct {
uint8_t screenLayout2; // Contains round/notround qualifier.
- uint8_t colorimetry; // Wide-gamut, HDR, etc.
+ uint8_t colorMode; // Wide-gamut, HDR, etc.
uint16_t screenConfigPad2; // Reserved padding.
};
uint32_t screenConfig2;
@@ -1208,7 +1208,7 @@ struct ResTable_config
CONFIG_UI_MODE = ACONFIGURATION_UI_MODE,
CONFIG_LAYOUTDIR = ACONFIGURATION_LAYOUTDIR,
CONFIG_SCREEN_ROUND = ACONFIGURATION_SCREEN_ROUND,
- CONFIG_COLORIMETRY = ACONFIGURATION_COLORIMETRY,
+ CONFIG_COLOR_MODE = ACONFIGURATION_COLOR_MODE,
};
// Compare two configuration, returning CONFIG_* flags set for each value
diff --git a/libs/androidfw/tests/Config_test.cpp b/libs/androidfw/tests/Config_test.cpp
index 3e5aca7ab655..b54915f03c29 100644
--- a/libs/androidfw/tests/Config_test.cpp
+++ b/libs/androidfw/tests/Config_test.cpp
@@ -187,9 +187,9 @@ TEST(ConfigTest, ScreenIsWideGamut) {
memset(&defaultConfig, 0, sizeof(defaultConfig));
ResTable_config wideGamutConfig = defaultConfig;
- wideGamutConfig.colorimetry = ResTable_config::WIDE_COLOR_GAMUT_YES;
+ wideGamutConfig.colorMode = ResTable_config::WIDE_COLOR_GAMUT_YES;
- EXPECT_EQ(defaultConfig.diff(wideGamutConfig), ResTable_config::CONFIG_COLORIMETRY);
+ EXPECT_EQ(defaultConfig.diff(wideGamutConfig), ResTable_config::CONFIG_COLOR_MODE);
}
TEST(ConfigTest, ScreenIsHdr) {
@@ -197,9 +197,9 @@ TEST(ConfigTest, ScreenIsHdr) {
memset(&defaultConfig, 0, sizeof(defaultConfig));
ResTable_config hdrConfig = defaultConfig;
- hdrConfig.colorimetry = ResTable_config::HDR_YES;
+ hdrConfig.colorMode = ResTable_config::HDR_YES;
- EXPECT_EQ(defaultConfig.diff(hdrConfig), ResTable_config::CONFIG_COLORIMETRY);
+ EXPECT_EQ(defaultConfig.diff(hdrConfig), ResTable_config::CONFIG_COLOR_MODE);
}
} // namespace android.
diff --git a/tools/aapt/AaptConfig.cpp b/tools/aapt/AaptConfig.cpp
index d0026a28ba16..0aca45ea8d60 100644
--- a/tools/aapt/AaptConfig.cpp
+++ b/tools/aapt/AaptConfig.cpp
@@ -267,8 +267,8 @@ void applyVersionForCompatibility(ConfigDescription* config) {
uint16_t minSdk = 0;
if ((config->uiMode & ResTable_config::MASK_UI_MODE_TYPE)
== ResTable_config::UI_MODE_TYPE_VR_HEADSET
- || config->colorimetry & ResTable_config::MASK_WIDE_COLOR_GAMUT
- || config->colorimetry & ResTable_config::MASK_HDR) {
+ || config->colorMode & ResTable_config::MASK_WIDE_COLOR_GAMUT
+ || config->colorMode & ResTable_config::MASK_HDR) {
minSdk = SDK_O;
} else if (config->screenLayout2 & ResTable_config::MASK_SCREENROUND) {
minSdk = SDK_MNC;
@@ -451,18 +451,18 @@ bool parseScreenRound(const char* name, ResTable_config* out) {
bool parseWideColorGamut(const char* name, ResTable_config* out) {
if (strcmp(name, kWildcardName) == 0) {
- if (out) out->colorimetry =
- (out->colorimetry&~ResTable_config::MASK_WIDE_COLOR_GAMUT)
+ if (out) out->colorMode =
+ (out->colorMode&~ResTable_config::MASK_WIDE_COLOR_GAMUT)
| ResTable_config::WIDE_COLOR_GAMUT_ANY;
return true;
} else if (strcmp(name, "widecg") == 0) {
- if (out) out->colorimetry =
- (out->colorimetry&~ResTable_config::MASK_WIDE_COLOR_GAMUT)
+ if (out) out->colorMode =
+ (out->colorMode&~ResTable_config::MASK_WIDE_COLOR_GAMUT)
| ResTable_config::WIDE_COLOR_GAMUT_YES;
return true;
} else if (strcmp(name, "nowidecg") == 0) {
- if (out) out->colorimetry =
- (out->colorimetry&~ResTable_config::MASK_WIDE_COLOR_GAMUT)
+ if (out) out->colorMode =
+ (out->colorMode&~ResTable_config::MASK_WIDE_COLOR_GAMUT)
| ResTable_config::WIDE_COLOR_GAMUT_NO;
return true;
}
@@ -471,18 +471,18 @@ bool parseWideColorGamut(const char* name, ResTable_config* out) {
bool parseHdr(const char* name, ResTable_config* out) {
if (strcmp(name, kWildcardName) == 0) {
- if (out) out->colorimetry =
- (out->colorimetry&~ResTable_config::MASK_HDR)
+ if (out) out->colorMode =
+ (out->colorMode&~ResTable_config::MASK_HDR)
| ResTable_config::HDR_ANY;
return true;
} else if (strcmp(name, "highdr") == 0) {
- if (out) out->colorimetry =
- (out->colorimetry&~ResTable_config::MASK_HDR)
+ if (out) out->colorMode =
+ (out->colorMode&~ResTable_config::MASK_HDR)
| ResTable_config::HDR_YES;
return true;
} else if (strcmp(name, "lowdr") == 0) {
- if (out) out->colorimetry =
- (out->colorimetry&~ResTable_config::MASK_HDR)
+ if (out) out->colorMode =
+ (out->colorMode&~ResTable_config::MASK_HDR)
| ResTable_config::HDR_NO;
return true;
}
diff --git a/tools/aapt/tests/AaptConfig_test.cpp b/tools/aapt/tests/AaptConfig_test.cpp
index 23f61e9e4b70..4f22fa581a88 100644
--- a/tools/aapt/tests/AaptConfig_test.cpp
+++ b/tools/aapt/tests/AaptConfig_test.cpp
@@ -103,13 +103,13 @@ TEST(AaptConfigTest, WideColorGamutQualifier) {
ConfigDescription config;
EXPECT_TRUE(TestParse("widecg", &config));
EXPECT_EQ(android::ResTable_config::WIDE_COLOR_GAMUT_YES,
- config.colorimetry & android::ResTable_config::MASK_WIDE_COLOR_GAMUT);
+ config.colorMode & android::ResTable_config::MASK_WIDE_COLOR_GAMUT);
EXPECT_EQ(SDK_O, config.sdkVersion);
EXPECT_EQ(String8("widecg-v26"), config.toString());
EXPECT_TRUE(TestParse("nowidecg", &config));
EXPECT_EQ(android::ResTable_config::WIDE_COLOR_GAMUT_NO,
- config.colorimetry & android::ResTable_config::MASK_WIDE_COLOR_GAMUT);
+ config.colorMode & android::ResTable_config::MASK_WIDE_COLOR_GAMUT);
EXPECT_EQ(SDK_O, config.sdkVersion);
EXPECT_EQ(String8("nowidecg-v26"), config.toString());
}
@@ -118,13 +118,13 @@ TEST(AaptConfigTest, HdrQualifier) {
ConfigDescription config;
EXPECT_TRUE(TestParse("highdr", &config));
EXPECT_EQ(android::ResTable_config::HDR_YES,
- config.colorimetry & android::ResTable_config::MASK_HDR);
+ config.colorMode & android::ResTable_config::MASK_HDR);
EXPECT_EQ(SDK_O, config.sdkVersion);
EXPECT_EQ(String8("highdr-v26"), config.toString());
EXPECT_TRUE(TestParse("lowdr", &config));
EXPECT_EQ(android::ResTable_config::HDR_NO,
- config.colorimetry & android::ResTable_config::MASK_HDR);
+ config.colorMode & android::ResTable_config::MASK_HDR);
EXPECT_EQ(SDK_O, config.sdkVersion);
EXPECT_EQ(String8("lowdr-v26"), config.toString());
} \ No newline at end of file
diff --git a/tools/aapt2/ConfigDescription.cpp b/tools/aapt2/ConfigDescription.cpp
index 5bea3ad1bbad..46098cbc3aa4 100644
--- a/tools/aapt2/ConfigDescription.cpp
+++ b/tools/aapt2/ConfigDescription.cpp
@@ -209,20 +209,20 @@ static bool parseScreenRound(const char* name, ResTable_config* out) {
static bool parseWideColorGamut(const char* name, ResTable_config* out) {
if (strcmp(name, kWildcardName) == 0) {
if (out)
- out->colorimetry =
- (out->colorimetry & ~ResTable_config::MASK_WIDE_COLOR_GAMUT) |
+ out->colorMode =
+ (out->colorMode & ~ResTable_config::MASK_WIDE_COLOR_GAMUT) |
ResTable_config::WIDE_COLOR_GAMUT_ANY;
return true;
} else if (strcmp(name, "widecg") == 0) {
if (out)
- out->colorimetry =
- (out->colorimetry & ~ResTable_config::MASK_WIDE_COLOR_GAMUT) |
+ out->colorMode =
+ (out->colorMode & ~ResTable_config::MASK_WIDE_COLOR_GAMUT) |
ResTable_config::WIDE_COLOR_GAMUT_YES;
return true;
} else if (strcmp(name, "nowidecg") == 0) {
if (out)
- out->colorimetry =
- (out->colorimetry & ~ResTable_config::MASK_WIDE_COLOR_GAMUT) |
+ out->colorMode =
+ (out->colorMode & ~ResTable_config::MASK_WIDE_COLOR_GAMUT) |
ResTable_config::WIDE_COLOR_GAMUT_NO;
return true;
}
@@ -232,20 +232,20 @@ static bool parseWideColorGamut(const char* name, ResTable_config* out) {
static bool parseHdr(const char* name, ResTable_config* out) {
if (strcmp(name, kWildcardName) == 0) {
if (out)
- out->colorimetry =
- (out->colorimetry & ~ResTable_config::MASK_HDR) |
+ out->colorMode =
+ (out->colorMode & ~ResTable_config::MASK_HDR) |
ResTable_config::HDR_ANY;
return true;
} else if (strcmp(name, "highdr") == 0) {
if (out)
- out->colorimetry =
- (out->colorimetry & ~ResTable_config::MASK_HDR) |
+ out->colorMode =
+ (out->colorMode & ~ResTable_config::MASK_HDR) |
ResTable_config::HDR_YES;
return true;
} else if (strcmp(name, "lowdr") == 0) {
if (out)
- out->colorimetry =
- (out->colorimetry & ~ResTable_config::MASK_HDR) |
+ out->colorMode =
+ (out->colorMode & ~ResTable_config::MASK_HDR) |
ResTable_config::HDR_NO;
return true;
}
@@ -840,8 +840,8 @@ void ConfigDescription::ApplyVersionForCompatibility(
uint16_t min_sdk = 0;
if ((config->uiMode & ResTable_config::MASK_UI_MODE_TYPE)
== ResTable_config::UI_MODE_TYPE_VR_HEADSET ||
- config->colorimetry & ResTable_config::MASK_WIDE_COLOR_GAMUT ||
- config->colorimetry & ResTable_config::MASK_HDR) {
+ config->colorMode & ResTable_config::MASK_WIDE_COLOR_GAMUT ||
+ config->colorMode & ResTable_config::MASK_HDR) {
min_sdk = SDK_O;
} else if (config->screenLayout2 & ResTable_config::MASK_SCREENROUND) {
min_sdk = SDK_MARSHMALLOW;
@@ -912,11 +912,11 @@ bool ConfigDescription::HasHigherPrecedenceThan(
if ((screenLayout2 | o.screenLayout2) & MASK_SCREENROUND) {
return !(o.screenLayout2 & MASK_SCREENROUND);
}
- if ((colorimetry | o.colorimetry) & MASK_HDR) {
- return !(o.colorimetry & MASK_HDR);
+ if ((colorMode | o.colorMode) & MASK_HDR) {
+ return !(o.colorMode & MASK_HDR);
}
- if ((colorimetry | o.colorimetry) & MASK_WIDE_COLOR_GAMUT) {
- return !(o.colorimetry & MASK_WIDE_COLOR_GAMUT);
+ if ((colorMode | o.colorMode) & MASK_WIDE_COLOR_GAMUT) {
+ return !(o.colorMode & MASK_WIDE_COLOR_GAMUT);
}
if (orientation || o.orientation) return (!o.orientation);
if ((uiMode | o.uiMode) & MASK_UI_MODE_TYPE) {
@@ -964,9 +964,9 @@ bool ConfigDescription::ConflictsWith(const ConfigDescription& o) const {
!pred(uiMode & MASK_UI_MODE_NIGHT, o.uiMode & MASK_UI_MODE_NIGHT) ||
!pred(screenLayout2 & MASK_SCREENROUND,
o.screenLayout2 & MASK_SCREENROUND) ||
- !pred(colorimetry & MASK_HDR, o.colorimetry & MASK_HDR) ||
- !pred(colorimetry & MASK_WIDE_COLOR_GAMUT,
- o.colorimetry & MASK_WIDE_COLOR_GAMUT) ||
+ !pred(colorMode & MASK_HDR, o.colorMode & MASK_HDR) ||
+ !pred(colorMode & MASK_WIDE_COLOR_GAMUT,
+ o.colorMode & MASK_WIDE_COLOR_GAMUT) ||
!pred(orientation, o.orientation) ||
!pred(touchscreen, o.touchscreen) ||
!pred(inputFlags & MASK_KEYSHIDDEN, o.inputFlags & MASK_KEYSHIDDEN) ||
diff --git a/tools/aapt2/ConfigDescription_test.cpp b/tools/aapt2/ConfigDescription_test.cpp
index b88838ae26f5..14a565624e01 100644
--- a/tools/aapt2/ConfigDescription_test.cpp
+++ b/tools/aapt2/ConfigDescription_test.cpp
@@ -106,13 +106,13 @@ TEST(ConfigDescriptionTest, TestWideColorGamutQualifier) {
ConfigDescription config;
EXPECT_TRUE(TestParse("widecg", &config));
EXPECT_EQ(android::ResTable_config::WIDE_COLOR_GAMUT_YES,
- config.colorimetry & android::ResTable_config::MASK_WIDE_COLOR_GAMUT);
+ config.colorMode & android::ResTable_config::MASK_WIDE_COLOR_GAMUT);
EXPECT_EQ(SDK_O, config.sdkVersion);
EXPECT_EQ(std::string("widecg-v26"), config.toString().string());
EXPECT_TRUE(TestParse("nowidecg", &config));
EXPECT_EQ(android::ResTable_config::WIDE_COLOR_GAMUT_NO,
- config.colorimetry & android::ResTable_config::MASK_WIDE_COLOR_GAMUT);
+ config.colorMode & android::ResTable_config::MASK_WIDE_COLOR_GAMUT);
EXPECT_EQ(SDK_O, config.sdkVersion);
EXPECT_EQ(std::string("nowidecg-v26"), config.toString().string());
}
@@ -121,13 +121,13 @@ TEST(ConfigDescriptionTest, TestHdrQualifier) {
ConfigDescription config;
EXPECT_TRUE(TestParse("highdr", &config));
EXPECT_EQ(android::ResTable_config::HDR_YES,
- config.colorimetry & android::ResTable_config::MASK_HDR);
+ config.colorMode & android::ResTable_config::MASK_HDR);
EXPECT_EQ(SDK_O, config.sdkVersion);
EXPECT_EQ(std::string("highdr-v26"), config.toString().string());
EXPECT_TRUE(TestParse("lowdr", &config));
EXPECT_EQ(android::ResTable_config::HDR_NO,
- config.colorimetry & android::ResTable_config::MASK_HDR);
+ config.colorMode & android::ResTable_config::MASK_HDR);
EXPECT_EQ(SDK_O, config.sdkVersion);
EXPECT_EQ(std::string("lowdr-v26"), config.toString().string());
}