summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2017-01-23 17:03:35 -0800
committerRomain Guy <romainguy@google.com>2017-01-24 15:55:09 -0800
commit4832745b84d6a358582f2264d22acacf25e01b07 (patch)
treecde7e923e06892dfa7c9b1a10a10e8da91e007f1
parenta393ff7dc7e7e7002a400d37868e0d6c14507b43 (diff)
Add color mode to activity/window
The color mode lets an application request a wide color gamut for a specific window. This will also be used in the future to request HDR. The color mode is currently either default (sRGB) or an undefined wide gamut color space chosen by the platform. These attributes could later be used to choose a specific color space if we deem this important or useful. This change also renames the various "colorimetry" attributes and constants to "color mode" for consistency. These symbols were added in O and can be safely renamed. Test: CtsColorModeTestCases Bug: 32984164 Change-Id: I4d4691dd12dbe3f3aa6a5cf893cff39aa16c739e
-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());
}