Allow config.xml to set the default display's default color mode
Bug: 31928803 Change-Id: I2707ae47611dca134fa9b4afa2d09e0812b3efd3
This commit is contained in:
@@ -1936,6 +1936,12 @@
|
|||||||
mirror the content of the default display. -->
|
mirror the content of the default display. -->
|
||||||
<bool name="config_localDisplaysMirrorContent">true</bool>
|
<bool name="config_localDisplaysMirrorContent">true</bool>
|
||||||
|
|
||||||
|
<!-- The default mode for the default display. One of the following values (See Display.java):
|
||||||
|
0 - COLOR_MODE_DEFAULT
|
||||||
|
7 - COLOR_MODE_SRGB
|
||||||
|
-->
|
||||||
|
<integer name="config_defaultDisplayDefaultColorMode">0</integer>
|
||||||
|
|
||||||
<!-- When true use the linux /dev/input/event subsystem to detect the switch changes
|
<!-- When true use the linux /dev/input/event subsystem to detect the switch changes
|
||||||
on the headphone/microphone jack. When false use the older uevent framework. -->
|
on the headphone/microphone jack. When false use the older uevent framework. -->
|
||||||
<bool name="config_useDevInputEventForAudioJack">false</bool>
|
<bool name="config_useDevInputEventForAudioJack">false</bool>
|
||||||
|
|||||||
@@ -307,6 +307,7 @@
|
|||||||
<java-symbol type="bool" name="config_supportsMultiWindow" />
|
<java-symbol type="bool" name="config_supportsMultiWindow" />
|
||||||
<java-symbol type="bool" name="config_guestUserEphemeral" />
|
<java-symbol type="bool" name="config_guestUserEphemeral" />
|
||||||
<java-symbol type="bool" name="config_localDisplaysMirrorContent" />
|
<java-symbol type="bool" name="config_localDisplaysMirrorContent" />
|
||||||
|
<java-symbol type="integer" name="config_defaultDisplayDefaultColorMode" />
|
||||||
<java-symbol type="bool" name="config_enableAppWidgetService" />
|
<java-symbol type="bool" name="config_enableAppWidgetService" />
|
||||||
<java-symbol type="string" name="config_defaultPictureInPictureBounds" />
|
<java-symbol type="string" name="config_defaultPictureInPictureBounds" />
|
||||||
<java-symbol type="integer" name="config_wifi_framework_5GHz_preference_boost_threshold" />
|
<java-symbol type="integer" name="config_wifi_framework_5GHz_preference_boost_threshold" />
|
||||||
|
|||||||
@@ -220,6 +220,11 @@ public final class DisplayManagerService extends SystemService {
|
|||||||
private final DisplayViewport mTempDefaultViewport = new DisplayViewport();
|
private final DisplayViewport mTempDefaultViewport = new DisplayViewport();
|
||||||
private final DisplayViewport mTempExternalTouchViewport = new DisplayViewport();
|
private final DisplayViewport mTempExternalTouchViewport = new DisplayViewport();
|
||||||
|
|
||||||
|
// The default color mode for default displays. Overrides the usual
|
||||||
|
// Display.Display.COLOR_MODE_DEFAULT for displays with the
|
||||||
|
// DisplayDeviceInfo.FLAG_DEFAULT_DISPLAY flag set.
|
||||||
|
private final int mDefaultDisplayDefaultColorMode;
|
||||||
|
|
||||||
// Temporary list of deferred work to perform when setting the display state.
|
// Temporary list of deferred work to perform when setting the display state.
|
||||||
// Only used by requestDisplayState. The field is self-synchronized and only
|
// Only used by requestDisplayState. The field is self-synchronized and only
|
||||||
// intended for use inside of the requestGlobalDisplayStateInternal function.
|
// intended for use inside of the requestGlobalDisplayStateInternal function.
|
||||||
@@ -232,6 +237,8 @@ public final class DisplayManagerService extends SystemService {
|
|||||||
mUiHandler = UiThread.getHandler();
|
mUiHandler = UiThread.getHandler();
|
||||||
mDisplayAdapterListener = new DisplayAdapterListener();
|
mDisplayAdapterListener = new DisplayAdapterListener();
|
||||||
mSingleDisplayDemoMode = SystemProperties.getBoolean("persist.demo.singledisplay", false);
|
mSingleDisplayDemoMode = SystemProperties.getBoolean("persist.demo.singledisplay", false);
|
||||||
|
mDefaultDisplayDefaultColorMode = mContext.getResources().getInteger(
|
||||||
|
com.android.internal.R.integer.config_defaultDisplayDefaultColorMode);
|
||||||
|
|
||||||
PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
|
PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
|
||||||
mGlobalDisplayBrightness = pm.getDefaultScreenBrightnessSetting();
|
mGlobalDisplayBrightness = pm.getDefaultScreenBrightnessSetting();
|
||||||
@@ -703,6 +710,14 @@ public final class DisplayManagerService extends SystemService {
|
|||||||
}
|
}
|
||||||
if (display != null && display.getPrimaryDisplayDeviceLocked() == device) {
|
if (display != null && display.getPrimaryDisplayDeviceLocked() == device) {
|
||||||
int colorMode = mPersistentDataStore.getColorMode(device);
|
int colorMode = mPersistentDataStore.getColorMode(device);
|
||||||
|
if (colorMode == Display.COLOR_MODE_INVALID) {
|
||||||
|
if ((device.getDisplayDeviceInfoLocked().flags
|
||||||
|
& DisplayDeviceInfo.FLAG_DEFAULT_DISPLAY) != 0) {
|
||||||
|
colorMode = mDefaultDisplayDefaultColorMode;
|
||||||
|
} else {
|
||||||
|
colorMode = Display.COLOR_MODE_DEFAULT;
|
||||||
|
}
|
||||||
|
}
|
||||||
display.setRequestedColorModeLocked(colorMode);
|
display.setRequestedColorModeLocked(colorMode);
|
||||||
}
|
}
|
||||||
scheduleTraversalLocked(false);
|
scheduleTraversalLocked(false);
|
||||||
@@ -1043,6 +1058,7 @@ public final class DisplayManagerService extends SystemService {
|
|||||||
pw.println(" mNextNonDefaultDisplayId=" + mNextNonDefaultDisplayId);
|
pw.println(" mNextNonDefaultDisplayId=" + mNextNonDefaultDisplayId);
|
||||||
pw.println(" mDefaultViewport=" + mDefaultViewport);
|
pw.println(" mDefaultViewport=" + mDefaultViewport);
|
||||||
pw.println(" mExternalTouchViewport=" + mExternalTouchViewport);
|
pw.println(" mExternalTouchViewport=" + mExternalTouchViewport);
|
||||||
|
pw.println(" mDefaultDisplayDefaultColorMode=" + mDefaultDisplayDefaultColorMode);
|
||||||
pw.println(" mSingleDisplayDemoMode=" + mSingleDisplayDemoMode);
|
pw.println(" mSingleDisplayDemoMode=" + mSingleDisplayDemoMode);
|
||||||
pw.println(" mWifiDisplayScanRequestCount=" + mWifiDisplayScanRequestCount);
|
pw.println(" mWifiDisplayScanRequestCount=" + mWifiDisplayScanRequestCount);
|
||||||
|
|
||||||
|
|||||||
@@ -183,11 +183,11 @@ final class PersistentDataStore {
|
|||||||
|
|
||||||
public int getColorMode(DisplayDevice device) {
|
public int getColorMode(DisplayDevice device) {
|
||||||
if (!device.hasStableUniqueId()) {
|
if (!device.hasStableUniqueId()) {
|
||||||
return Display.COLOR_MODE_DEFAULT;
|
return Display.COLOR_MODE_INVALID;
|
||||||
}
|
}
|
||||||
DisplayState state = getDisplayState(device.getUniqueId(), false);
|
DisplayState state = getDisplayState(device.getUniqueId(), false);
|
||||||
if (state == null) {
|
if (state == null) {
|
||||||
return Display.COLOR_MODE_DEFAULT;
|
return Display.COLOR_MODE_INVALID;
|
||||||
}
|
}
|
||||||
return state.getColorMode();
|
return state.getColorMode();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user