From af5e11245decf4f999768ddda9ba6804c040b61d Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Tue, 24 Oct 2017 21:37:34 +0100 Subject: [PATCH] Add color mode setting The new setting appears on devices that support color management and wide color gamut rendering. The setting allows the user to choose between natural (sRGB), boosted (sRGB + 10% saturation) and saturated (unmanaged colors; colors are remapped to the device's native gamut). This change adds a metric constant for analytics in Settings and uses a persistent system property to know when to suppress color management. Bug: 68159303 Test: manual Merged-In: I83cc972fc3a2290ff106eae0e76a3ee799503813 Change-Id: I83cc972fc3a2290ff106eae0e76a3ee799503813 (cherry picked from commit 62e8c175257d25c64ed19e5ccccd4e3cd987b8ad) --- proto/src/metrics_constants.proto | 5 +++++ .../java/com/android/server/wm/WindowManagerService.java | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto index a4849fcd1ca0e..c9acdc1b4cc5b 100644 --- a/proto/src/metrics_constants.proto +++ b/proto/src/metrics_constants.proto @@ -4219,6 +4219,11 @@ message MetricsEvent { // OS: O DR TRAMPOLINE_SETTINGS_EVENT = 1033; + // OPEN: Settings > Display > Colors + // CATEGORY: SETTINGS + // OS: O MR (backported for O DR) + COLOR_MODE_SETTINGS = 1143; + // ---- End O-DR1 Constants, all O-DR1 constants go above this line ---- // Add new aosp constants above this line. diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 765dc23b48a0f..3e1c201d13d99 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -7670,7 +7670,8 @@ public class WindowManagerService extends IWindowManager.Stub } boolean hasWideColorGamutSupport() { - return mHasWideColorGamutSupport; + return mHasWideColorGamutSupport && + !SystemProperties.getBoolean("persist.sys.sf.native_mode", false); } void updateNonSystemOverlayWindowsVisibilityIfNeeded(WindowState win, boolean surfaceShown) {