Merge "Initialise the brightness value with Float.NaN in PersistentDataStore" into tm-qpr-dev
This commit is contained in:
@@ -619,7 +619,7 @@ final class PersistentDataStore {
|
|||||||
|
|
||||||
private static final class DisplayState {
|
private static final class DisplayState {
|
||||||
private int mColorMode;
|
private int mColorMode;
|
||||||
private float mBrightness;
|
private float mBrightness = Float.NaN;
|
||||||
private int mWidth;
|
private int mWidth;
|
||||||
private int mHeight;
|
private int mHeight;
|
||||||
private float mRefreshRate;
|
private float mRefreshRate;
|
||||||
@@ -700,7 +700,11 @@ final class PersistentDataStore {
|
|||||||
break;
|
break;
|
||||||
case TAG_BRIGHTNESS_VALUE:
|
case TAG_BRIGHTNESS_VALUE:
|
||||||
String brightness = parser.nextText();
|
String brightness = parser.nextText();
|
||||||
mBrightness = Float.parseFloat(brightness);
|
try {
|
||||||
|
mBrightness = Float.parseFloat(brightness);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
mBrightness = Float.NaN;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case TAG_BRIGHTNESS_CONFIGURATIONS:
|
case TAG_BRIGHTNESS_CONFIGURATIONS:
|
||||||
mDisplayBrightnessConfigurations.loadFromXml(parser);
|
mDisplayBrightnessConfigurations.loadFromXml(parser);
|
||||||
@@ -727,7 +731,9 @@ final class PersistentDataStore {
|
|||||||
serializer.endTag(null, TAG_COLOR_MODE);
|
serializer.endTag(null, TAG_COLOR_MODE);
|
||||||
|
|
||||||
serializer.startTag(null, TAG_BRIGHTNESS_VALUE);
|
serializer.startTag(null, TAG_BRIGHTNESS_VALUE);
|
||||||
serializer.text(Float.toString(mBrightness));
|
if (!Float.isNaN(mBrightness)) {
|
||||||
|
serializer.text(Float.toString(mBrightness));
|
||||||
|
}
|
||||||
serializer.endTag(null, TAG_BRIGHTNESS_VALUE);
|
serializer.endTag(null, TAG_BRIGHTNESS_VALUE);
|
||||||
|
|
||||||
serializer.startTag(null, TAG_BRIGHTNESS_CONFIGURATIONS);
|
serializer.startTag(null, TAG_BRIGHTNESS_CONFIGURATIONS);
|
||||||
|
|||||||
@@ -344,6 +344,40 @@ public class PersistentDataStoreTest {
|
|||||||
assertEquals(85.3f, newDataStore.getUserPreferredRefreshRate(testDisplayDevice), 0.1f);
|
assertEquals(85.3f, newDataStore.getUserPreferredRefreshRate(testDisplayDevice), 0.1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBrightnessInitialisesWithInvalidFloat() {
|
||||||
|
final String uniqueDisplayId = "test:123";
|
||||||
|
DisplayDevice testDisplayDevice = new DisplayDevice(null, null, uniqueDisplayId, null) {
|
||||||
|
@Override
|
||||||
|
public boolean hasStableUniqueId() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DisplayDeviceInfo getDisplayDeviceInfoLocked() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Set any value which initialises Display state
|
||||||
|
float refreshRate = 85.3f;
|
||||||
|
mDataStore.loadIfNeeded();
|
||||||
|
mDataStore.setUserPreferredRefreshRate(testDisplayDevice, refreshRate);
|
||||||
|
|
||||||
|
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
mInjector.setWriteStream(baos);
|
||||||
|
mDataStore.saveIfNeeded();
|
||||||
|
mTestLooper.dispatchAll();
|
||||||
|
assertTrue(mInjector.wasWriteSuccessful());
|
||||||
|
TestInjector newInjector = new TestInjector();
|
||||||
|
PersistentDataStore newDataStore = new PersistentDataStore(newInjector);
|
||||||
|
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
|
||||||
|
newInjector.setReadStream(bais);
|
||||||
|
newDataStore.loadIfNeeded();
|
||||||
|
assertTrue(Float.isNaN(mDataStore.getBrightness(testDisplayDevice)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public class TestInjector extends PersistentDataStore.Injector {
|
public class TestInjector extends PersistentDataStore.Injector {
|
||||||
private InputStream mReadStream;
|
private InputStream mReadStream;
|
||||||
private OutputStream mWriteStream;
|
private OutputStream mWriteStream;
|
||||||
|
|||||||
Reference in New Issue
Block a user