DO NOT MERGE "Allow DeviceConfig to change display settings for high zone"
Allow DeviceConfig to change the high zone behavior including refresh rate and brightness thresholds. Bug: 177636374 Test: atest DisplayModeDirectorTest Test: adb shell device_config put display_manager refresh_rate_in_high_zone "90" Test: adb shell device_config put display_manager fixed_refresh_rate_high_display_brightness_thresholds "200" Test: adb shell device_config put display_manager fixed_refresh_rate_high_ambient_brightness_thresholds "8000" Change-Id: I1463d6c5daaee46a87a193e98e7f63cad9274b49
This commit is contained in:
committed by
Raylin Hsu
parent
0ecd3e13e7
commit
58515946ac
@@ -875,12 +875,52 @@ public final class DisplayManager {
|
|||||||
public interface DeviceConfig {
|
public interface DeviceConfig {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Key for refresh rate in the zone defined by thresholds.
|
* Key for refresh rate in the low zone defined by thresholds.
|
||||||
*
|
*
|
||||||
|
* Note that the name and value don't match because they were added before we had a high
|
||||||
|
* zone to consider.
|
||||||
* @see android.provider.DeviceConfig#NAMESPACE_DISPLAY_MANAGER
|
* @see android.provider.DeviceConfig#NAMESPACE_DISPLAY_MANAGER
|
||||||
* @see android.R.integer#config_defaultZoneBehavior
|
* @see android.R.integer#config_defaultZoneBehavior
|
||||||
*/
|
*/
|
||||||
String KEY_REFRESH_RATE_IN_ZONE = "refresh_rate_in_zone";
|
String KEY_REFRESH_RATE_IN_LOW_ZONE = "refresh_rate_in_zone";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Key for accessing the low display brightness thresholds for the configured refresh
|
||||||
|
* rate zone.
|
||||||
|
* The value will be a pair of comma separated integers representing the minimum and maximum
|
||||||
|
* thresholds of the zone, respectively, in display backlight units (i.e. [0, 255]).
|
||||||
|
*
|
||||||
|
* Note that the name and value don't match because they were added before we had a high
|
||||||
|
* zone to consider.
|
||||||
|
*
|
||||||
|
* @see android.provider.DeviceConfig#NAMESPACE_DISPLAY_MANAGER
|
||||||
|
* @see android.R.array#config_brightnessThresholdsOfPeakRefreshRate
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
String KEY_FIXED_REFRESH_RATE_LOW_DISPLAY_BRIGHTNESS_THRESHOLDS =
|
||||||
|
"peak_refresh_rate_brightness_thresholds";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Key for accessing the low ambient brightness thresholds for the configured refresh
|
||||||
|
* rate zone. The value will be a pair of comma separated integers representing the minimum
|
||||||
|
* and maximum thresholds of the zone, respectively, in lux.
|
||||||
|
*
|
||||||
|
* Note that the name and value don't match because they were added before we had a high
|
||||||
|
* zone to consider.
|
||||||
|
*
|
||||||
|
* @see android.provider.DeviceConfig#NAMESPACE_DISPLAY_MANAGER
|
||||||
|
* @see android.R.array#config_ambientThresholdsOfPeakRefreshRate
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
String KEY_FIXED_REFRESH_RATE_LOW_AMBIENT_BRIGHTNESS_THRESHOLDS =
|
||||||
|
"peak_refresh_rate_ambient_thresholds";
|
||||||
|
/**
|
||||||
|
* Key for refresh rate in the high zone defined by thresholds.
|
||||||
|
*
|
||||||
|
* @see android.provider.DeviceConfig#NAMESPACE_DISPLAY_MANAGER
|
||||||
|
* @see android.R.integer#config_fixedRefreshRateInHighZone
|
||||||
|
*/
|
||||||
|
String KEY_REFRESH_RATE_IN_HIGH_ZONE = "refresh_rate_in_high_zone";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Key for accessing the display brightness thresholds for the configured refresh rate zone.
|
* Key for accessing the display brightness thresholds for the configured refresh rate zone.
|
||||||
@@ -888,11 +928,11 @@ public final class DisplayManager {
|
|||||||
* thresholds of the zone, respectively, in display backlight units (i.e. [0, 255]).
|
* thresholds of the zone, respectively, in display backlight units (i.e. [0, 255]).
|
||||||
*
|
*
|
||||||
* @see android.provider.DeviceConfig#NAMESPACE_DISPLAY_MANAGER
|
* @see android.provider.DeviceConfig#NAMESPACE_DISPLAY_MANAGER
|
||||||
* @see android.R.array#config_brightnessThresholdsOfPeakRefreshRate
|
* @see android.R.array#config_brightnessHighThresholdsOfFixedRefreshRate
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
String KEY_PEAK_REFRESH_RATE_DISPLAY_BRIGHTNESS_THRESHOLDS =
|
String KEY_FIXED_REFRESH_RATE_HIGH_DISPLAY_BRIGHTNESS_THRESHOLDS =
|
||||||
"peak_refresh_rate_brightness_thresholds";
|
"fixed_refresh_rate_high_display_brightness_thresholds";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Key for accessing the ambient brightness thresholds for the configured refresh rate zone.
|
* Key for accessing the ambient brightness thresholds for the configured refresh rate zone.
|
||||||
@@ -900,12 +940,11 @@ public final class DisplayManager {
|
|||||||
* thresholds of the zone, respectively, in lux.
|
* thresholds of the zone, respectively, in lux.
|
||||||
*
|
*
|
||||||
* @see android.provider.DeviceConfig#NAMESPACE_DISPLAY_MANAGER
|
* @see android.provider.DeviceConfig#NAMESPACE_DISPLAY_MANAGER
|
||||||
* @see android.R.array#config_ambientThresholdsOfPeakRefreshRate
|
* @see android.R.array#config_ambientHighThresholdsOfFixedRefreshRate
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
String KEY_PEAK_REFRESH_RATE_AMBIENT_BRIGHTNESS_THRESHOLDS =
|
String KEY_FIXED_REFRESH_RATE_HIGH_AMBIENT_BRIGHTNESS_THRESHOLDS =
|
||||||
"peak_refresh_rate_ambient_thresholds";
|
"fixed_refresh_rate_high_ambient_brightness_thresholds";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Key for default peak refresh rate
|
* Key for default peak refresh rate
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ public class DisplayModeDirector {
|
|||||||
private static final int MSG_LOW_BRIGHTNESS_THRESHOLDS_CHANGED = 2;
|
private static final int MSG_LOW_BRIGHTNESS_THRESHOLDS_CHANGED = 2;
|
||||||
private static final int MSG_DEFAULT_PEAK_REFRESH_RATE_CHANGED = 3;
|
private static final int MSG_DEFAULT_PEAK_REFRESH_RATE_CHANGED = 3;
|
||||||
private static final int MSG_REFRESH_RATE_IN_LOW_ZONE_CHANGED = 4;
|
private static final int MSG_REFRESH_RATE_IN_LOW_ZONE_CHANGED = 4;
|
||||||
|
private static final int MSG_REFRESH_RATE_IN_HIGH_ZONE_CHANGED = 5;
|
||||||
|
private static final int MSG_HIGH_BRIGHTNESS_THRESHOLDS_CHANGED = 6;
|
||||||
|
|
||||||
// Special ID used to indicate that given vote is to be applied globally, rather than to a
|
// Special ID used to indicate that given vote is to be applied globally, rather than to a
|
||||||
// specific display.
|
// specific display.
|
||||||
@@ -515,13 +517,6 @@ public class DisplayModeDirector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
void updateSettingForHighZone(int refreshRate, int[] brightnessThresholds,
|
|
||||||
int[] ambientThresholds) {
|
|
||||||
mBrightnessObserver.updateThresholdsRefreshRateForHighZone(refreshRate,
|
|
||||||
brightnessThresholds, ambientThresholds);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listens for changes refresh rate coordination.
|
* Listens for changes refresh rate coordination.
|
||||||
*/
|
*/
|
||||||
@@ -540,11 +535,35 @@ public class DisplayModeDirector {
|
|||||||
@Override
|
@Override
|
||||||
public void handleMessage(Message msg) {
|
public void handleMessage(Message msg) {
|
||||||
switch (msg.what) {
|
switch (msg.what) {
|
||||||
case MSG_LOW_BRIGHTNESS_THRESHOLDS_CHANGED:
|
case MSG_LOW_BRIGHTNESS_THRESHOLDS_CHANGED: {
|
||||||
Pair<int[], int[]> thresholds = (Pair<int[], int[]>) msg.obj;
|
Pair<int[], int[]> thresholds = (Pair<int[], int[]>) msg.obj;
|
||||||
mBrightnessObserver.onDeviceConfigLowBrightnessThresholdsChanged(
|
mBrightnessObserver.onDeviceConfigLowBrightnessThresholdsChanged(
|
||||||
thresholds.first, thresholds.second);
|
thresholds.first, thresholds.second);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case MSG_REFRESH_RATE_IN_LOW_ZONE_CHANGED: {
|
||||||
|
int refreshRateInZone = msg.arg1;
|
||||||
|
mBrightnessObserver.onDeviceConfigRefreshRateInLowZoneChanged(
|
||||||
|
refreshRateInZone);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case MSG_HIGH_BRIGHTNESS_THRESHOLDS_CHANGED: {
|
||||||
|
Pair<int[], int[]> thresholds = (Pair<int[], int[]>) msg.obj;
|
||||||
|
|
||||||
|
mBrightnessObserver.onDeviceConfigHighBrightnessThresholdsChanged(
|
||||||
|
thresholds.first, thresholds.second);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case MSG_REFRESH_RATE_IN_HIGH_ZONE_CHANGED: {
|
||||||
|
int refreshRateInZone = msg.arg1;
|
||||||
|
mBrightnessObserver.onDeviceConfigRefreshRateInHighZoneChanged(
|
||||||
|
refreshRateInZone);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case MSG_DEFAULT_PEAK_REFRESH_RATE_CHANGED:
|
case MSG_DEFAULT_PEAK_REFRESH_RATE_CHANGED:
|
||||||
Float defaultPeakRefreshRate = (Float) msg.obj;
|
Float defaultPeakRefreshRate = (Float) msg.obj;
|
||||||
@@ -552,12 +571,6 @@ public class DisplayModeDirector {
|
|||||||
defaultPeakRefreshRate);
|
defaultPeakRefreshRate);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MSG_REFRESH_RATE_IN_LOW_ZONE_CHANGED:
|
|
||||||
int refreshRateInZone = msg.arg1;
|
|
||||||
mBrightnessObserver.onDeviceConfigRefreshRateInLowZoneChanged(
|
|
||||||
refreshRateInZone);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MSG_REFRESH_RATE_RANGE_CHANGED:
|
case MSG_REFRESH_RATE_RANGE_CHANGED:
|
||||||
DesiredDisplayModeSpecsListener desiredDisplayModeSpecsListener =
|
DesiredDisplayModeSpecsListener desiredDisplayModeSpecsListener =
|
||||||
(DesiredDisplayModeSpecsListener) msg.obj;
|
(DesiredDisplayModeSpecsListener) msg.obj;
|
||||||
@@ -1220,13 +1233,6 @@ public class DisplayModeDirector {
|
|||||||
mLightSensor, LIGHT_SENSOR_RATE_MS * 1000, mHandler);
|
mLightSensor, LIGHT_SENSOR_RATE_MS * 1000, mHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateThresholdsRefreshRateForHighZone(int refreshRate,
|
|
||||||
int[] brightnessThresholds, int[] ambientThresholds) {
|
|
||||||
mRefreshRateInHighZone = refreshRate;
|
|
||||||
mHighDisplayBrightnessThresholds = brightnessThresholds;
|
|
||||||
mHighAmbientBrightnessThresholds = ambientThresholds;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void observe(SensorManager sensorManager) {
|
public void observe(SensorManager sensorManager) {
|
||||||
mSensorManager = sensorManager;
|
mSensorManager = sensorManager;
|
||||||
final ContentResolver cr = mContext.getContentResolver();
|
final ContentResolver cr = mContext.getContentResolver();
|
||||||
@@ -1246,7 +1252,22 @@ public class DisplayModeDirector {
|
|||||||
mLowAmbientBrightnessThresholds = lowAmbientBrightnessThresholds;
|
mLowAmbientBrightnessThresholds = lowAmbientBrightnessThresholds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int[] highDisplayBrightnessThresholds =
|
||||||
|
mDeviceConfigDisplaySettings.getHighDisplayBrightnessThresholds();
|
||||||
|
int[] highAmbientBrightnessThresholds =
|
||||||
|
mDeviceConfigDisplaySettings.getHighAmbientBrightnessThresholds();
|
||||||
|
|
||||||
|
if (highDisplayBrightnessThresholds != null && highAmbientBrightnessThresholds != null
|
||||||
|
&& highDisplayBrightnessThresholds.length
|
||||||
|
== highAmbientBrightnessThresholds.length) {
|
||||||
|
mHighDisplayBrightnessThresholds = highDisplayBrightnessThresholds;
|
||||||
|
mHighAmbientBrightnessThresholds = highAmbientBrightnessThresholds;
|
||||||
|
}
|
||||||
|
|
||||||
mRefreshRateInLowZone = mDeviceConfigDisplaySettings.getRefreshRateInLowZone();
|
mRefreshRateInLowZone = mDeviceConfigDisplaySettings.getRefreshRateInLowZone();
|
||||||
|
mRefreshRateInHighZone = mDeviceConfigDisplaySettings.getRefreshRateInHighZone();
|
||||||
|
|
||||||
restartObserver();
|
restartObserver();
|
||||||
mDeviceConfigDisplaySettings.startListening();
|
mDeviceConfigDisplaySettings.startListening();
|
||||||
}
|
}
|
||||||
@@ -1293,6 +1314,29 @@ public class DisplayModeDirector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onDeviceConfigHighBrightnessThresholdsChanged(int[] displayThresholds,
|
||||||
|
int[] ambientThresholds) {
|
||||||
|
if (displayThresholds != null && ambientThresholds != null
|
||||||
|
&& displayThresholds.length == ambientThresholds.length) {
|
||||||
|
mHighDisplayBrightnessThresholds = displayThresholds;
|
||||||
|
mHighAmbientBrightnessThresholds = ambientThresholds;
|
||||||
|
} else {
|
||||||
|
// Invalid or empty. Use device default.
|
||||||
|
mHighDisplayBrightnessThresholds = mContext.getResources().getIntArray(
|
||||||
|
R.array.config_highDisplayBrightnessThresholdsOfFixedRefreshRate);
|
||||||
|
mHighAmbientBrightnessThresholds = mContext.getResources().getIntArray(
|
||||||
|
R.array.config_highAmbientBrightnessThresholdsOfFixedRefreshRate);
|
||||||
|
}
|
||||||
|
restartObserver();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onDeviceConfigRefreshRateInHighZoneChanged(int refreshRate) {
|
||||||
|
if (refreshRate != mRefreshRateInHighZone) {
|
||||||
|
mRefreshRateInHighZone = refreshRate;
|
||||||
|
restartObserver();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void dumpLocked(PrintWriter pw) {
|
public void dumpLocked(PrintWriter pw) {
|
||||||
pw.println(" BrightnessObserver");
|
pw.println(" BrightnessObserver");
|
||||||
pw.println(" mAmbientLux: " + mAmbientLux);
|
pw.println(" mAmbientLux: " + mAmbientLux);
|
||||||
@@ -1668,7 +1712,7 @@ public class DisplayModeDirector {
|
|||||||
public int[] getLowDisplayBrightnessThresholds() {
|
public int[] getLowDisplayBrightnessThresholds() {
|
||||||
return getIntArrayProperty(
|
return getIntArrayProperty(
|
||||||
DisplayManager.DeviceConfig.
|
DisplayManager.DeviceConfig.
|
||||||
KEY_PEAK_REFRESH_RATE_DISPLAY_BRIGHTNESS_THRESHOLDS);
|
KEY_FIXED_REFRESH_RATE_LOW_DISPLAY_BRIGHTNESS_THRESHOLDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1677,7 +1721,7 @@ public class DisplayModeDirector {
|
|||||||
public int[] getLowAmbientBrightnessThresholds() {
|
public int[] getLowAmbientBrightnessThresholds() {
|
||||||
return getIntArrayProperty(
|
return getIntArrayProperty(
|
||||||
DisplayManager.DeviceConfig.
|
DisplayManager.DeviceConfig.
|
||||||
KEY_PEAK_REFRESH_RATE_AMBIENT_BRIGHTNESS_THRESHOLDS);
|
KEY_FIXED_REFRESH_RATE_LOW_AMBIENT_BRIGHTNESS_THRESHOLDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRefreshRateInLowZone() {
|
public int getRefreshRateInLowZone() {
|
||||||
@@ -1686,7 +1730,37 @@ public class DisplayModeDirector {
|
|||||||
|
|
||||||
int refreshRate = mDeviceConfig.getInt(
|
int refreshRate = mDeviceConfig.getInt(
|
||||||
DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
|
DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
|
||||||
DisplayManager.DeviceConfig.KEY_REFRESH_RATE_IN_ZONE,
|
DisplayManager.DeviceConfig.KEY_REFRESH_RATE_IN_LOW_ZONE,
|
||||||
|
defaultRefreshRateInZone);
|
||||||
|
|
||||||
|
return refreshRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return null if no such property or wrong format (not comma separated integers).
|
||||||
|
*/
|
||||||
|
public int[] getHighDisplayBrightnessThresholds() {
|
||||||
|
return getIntArrayProperty(
|
||||||
|
DisplayManager.DeviceConfig
|
||||||
|
.KEY_FIXED_REFRESH_RATE_HIGH_DISPLAY_BRIGHTNESS_THRESHOLDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return null if no such property or wrong format (not comma separated integers).
|
||||||
|
*/
|
||||||
|
public int[] getHighAmbientBrightnessThresholds() {
|
||||||
|
return getIntArrayProperty(
|
||||||
|
DisplayManager.DeviceConfig
|
||||||
|
.KEY_FIXED_REFRESH_RATE_HIGH_AMBIENT_BRIGHTNESS_THRESHOLDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRefreshRateInHighZone() {
|
||||||
|
int defaultRefreshRateInZone = mContext.getResources().getInteger(
|
||||||
|
R.integer.config_fixedRefreshRateInHighZone);
|
||||||
|
|
||||||
|
int refreshRate = mDeviceConfig.getInt(
|
||||||
|
DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
|
||||||
|
DisplayManager.DeviceConfig.KEY_REFRESH_RATE_IN_HIGH_ZONE,
|
||||||
defaultRefreshRateInZone);
|
defaultRefreshRateInZone);
|
||||||
|
|
||||||
return refreshRate;
|
return refreshRate;
|
||||||
@@ -1721,6 +1795,16 @@ public class DisplayModeDirector {
|
|||||||
.sendToTarget();
|
.sendToTarget();
|
||||||
mHandler.obtainMessage(MSG_REFRESH_RATE_IN_LOW_ZONE_CHANGED, refreshRateInLowZone, 0)
|
mHandler.obtainMessage(MSG_REFRESH_RATE_IN_LOW_ZONE_CHANGED, refreshRateInLowZone, 0)
|
||||||
.sendToTarget();
|
.sendToTarget();
|
||||||
|
|
||||||
|
int[] highDisplayBrightnessThresholds = getHighDisplayBrightnessThresholds();
|
||||||
|
int[] highAmbientBrightnessThresholds = getHighAmbientBrightnessThresholds();
|
||||||
|
int refreshRateInHighZone = getRefreshRateInHighZone();
|
||||||
|
|
||||||
|
mHandler.obtainMessage(MSG_HIGH_BRIGHTNESS_THRESHOLDS_CHANGED,
|
||||||
|
new Pair<>(highDisplayBrightnessThresholds, highAmbientBrightnessThresholds))
|
||||||
|
.sendToTarget();
|
||||||
|
mHandler.obtainMessage(MSG_REFRESH_RATE_IN_HIGH_ZONE_CHANGED, refreshRateInHighZone, 0)
|
||||||
|
.sendToTarget();
|
||||||
}
|
}
|
||||||
|
|
||||||
private int[] getIntArrayProperty(String prop) {
|
private int[] getIntArrayProperty(String prop) {
|
||||||
|
|||||||
@@ -16,9 +16,12 @@
|
|||||||
|
|
||||||
package com.android.server.display;
|
package com.android.server.display;
|
||||||
|
|
||||||
import static android.hardware.display.DisplayManager.DeviceConfig.KEY_PEAK_REFRESH_RATE_AMBIENT_BRIGHTNESS_THRESHOLDS;
|
import static android.hardware.display.DisplayManager.DeviceConfig.KEY_FIXED_REFRESH_RATE_HIGH_AMBIENT_BRIGHTNESS_THRESHOLDS;
|
||||||
import static android.hardware.display.DisplayManager.DeviceConfig.KEY_PEAK_REFRESH_RATE_DISPLAY_BRIGHTNESS_THRESHOLDS;
|
import static android.hardware.display.DisplayManager.DeviceConfig.KEY_FIXED_REFRESH_RATE_HIGH_DISPLAY_BRIGHTNESS_THRESHOLDS;
|
||||||
import static android.hardware.display.DisplayManager.DeviceConfig.KEY_REFRESH_RATE_IN_ZONE;
|
import static android.hardware.display.DisplayManager.DeviceConfig.KEY_FIXED_REFRESH_RATE_LOW_AMBIENT_BRIGHTNESS_THRESHOLDS;
|
||||||
|
import static android.hardware.display.DisplayManager.DeviceConfig.KEY_FIXED_REFRESH_RATE_LOW_DISPLAY_BRIGHTNESS_THRESHOLDS;
|
||||||
|
import static android.hardware.display.DisplayManager.DeviceConfig.KEY_REFRESH_RATE_IN_HIGH_ZONE;
|
||||||
|
import static android.hardware.display.DisplayManager.DeviceConfig.KEY_REFRESH_RATE_IN_LOW_ZONE;
|
||||||
|
|
||||||
import static com.android.server.display.DisplayModeDirector.Vote.PRIORITY_FLICKER;
|
import static com.android.server.display.DisplayModeDirector.Vote.PRIORITY_FLICKER;
|
||||||
|
|
||||||
@@ -451,7 +454,11 @@ public class DisplayModeDirectorTest {
|
|||||||
setPeakRefreshRate(90 /*fps*/);
|
setPeakRefreshRate(90 /*fps*/);
|
||||||
director.getSettingsObserver().setDefaultRefreshRate(90);
|
director.getSettingsObserver().setDefaultRefreshRate(90);
|
||||||
director.getBrightnessObserver().setDefaultDisplayState(true);
|
director.getBrightnessObserver().setDefaultDisplayState(true);
|
||||||
director.updateSettingForHighZone(60, new int[] {255}, new int[] {8000});
|
|
||||||
|
final FakeDeviceConfig config = mInjector.getDeviceConfig();
|
||||||
|
config.setRefreshRateInHighZone(60);
|
||||||
|
config.setHighDisplayBrightnessThresholds(new int[] { 255 });
|
||||||
|
config.setHighAmbientBrightnessThresholds(new int[] { 8000 });
|
||||||
|
|
||||||
Sensor lightSensor = createLightSensor();
|
Sensor lightSensor = createLightSensor();
|
||||||
SensorManager sensorManager = createMockSensorManager(lightSensor);
|
SensorManager sensorManager = createMockSensorManager(lightSensor);
|
||||||
@@ -508,7 +515,7 @@ public class DisplayModeDirectorTest {
|
|||||||
|
|
||||||
void setRefreshRateInLowZone(int fps) {
|
void setRefreshRateInLowZone(int fps) {
|
||||||
putPropertyAndNotify(
|
putPropertyAndNotify(
|
||||||
DeviceConfig.NAMESPACE_DISPLAY_MANAGER, KEY_REFRESH_RATE_IN_ZONE,
|
DeviceConfig.NAMESPACE_DISPLAY_MANAGER, KEY_REFRESH_RATE_IN_LOW_ZONE,
|
||||||
String.valueOf(fps));
|
String.valueOf(fps));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -521,7 +528,7 @@ public class DisplayModeDirectorTest {
|
|||||||
|
|
||||||
putPropertyAndNotify(
|
putPropertyAndNotify(
|
||||||
DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
|
DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
|
||||||
KEY_PEAK_REFRESH_RATE_DISPLAY_BRIGHTNESS_THRESHOLDS,
|
KEY_FIXED_REFRESH_RATE_LOW_DISPLAY_BRIGHTNESS_THRESHOLDS,
|
||||||
thresholds);
|
thresholds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -534,7 +541,39 @@ public class DisplayModeDirectorTest {
|
|||||||
|
|
||||||
putPropertyAndNotify(
|
putPropertyAndNotify(
|
||||||
DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
|
DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
|
||||||
KEY_PEAK_REFRESH_RATE_AMBIENT_BRIGHTNESS_THRESHOLDS,
|
KEY_FIXED_REFRESH_RATE_LOW_AMBIENT_BRIGHTNESS_THRESHOLDS,
|
||||||
|
thresholds);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setRefreshRateInHighZone(int fps) {
|
||||||
|
putPropertyAndNotify(
|
||||||
|
DeviceConfig.NAMESPACE_DISPLAY_MANAGER, KEY_REFRESH_RATE_IN_HIGH_ZONE,
|
||||||
|
String.valueOf(fps));
|
||||||
|
}
|
||||||
|
|
||||||
|
void setHighDisplayBrightnessThresholds(int[] brightnessThresholds) {
|
||||||
|
String thresholds = toPropertyValue(brightnessThresholds);
|
||||||
|
|
||||||
|
if (DEBUG) {
|
||||||
|
Slog.e(TAG, "Brightness Thresholds = " + thresholds);
|
||||||
|
}
|
||||||
|
|
||||||
|
putPropertyAndNotify(
|
||||||
|
DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
|
||||||
|
KEY_FIXED_REFRESH_RATE_HIGH_DISPLAY_BRIGHTNESS_THRESHOLDS,
|
||||||
|
thresholds);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setHighAmbientBrightnessThresholds(int[] ambientThresholds) {
|
||||||
|
String thresholds = toPropertyValue(ambientThresholds);
|
||||||
|
|
||||||
|
if (DEBUG) {
|
||||||
|
Slog.e(TAG, "Ambient Thresholds = " + thresholds);
|
||||||
|
}
|
||||||
|
|
||||||
|
putPropertyAndNotify(
|
||||||
|
DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
|
||||||
|
KEY_FIXED_REFRESH_RATE_HIGH_AMBIENT_BRIGHTNESS_THRESHOLDS,
|
||||||
thresholds);
|
thresholds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user