Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed67b77c authored by Kriti Dang's avatar Kriti Dang Committed by Automerger Merge Worker
Browse files

Merge "Initialise the brightness value with Float.NaN in PersistentDataStore"...

Merge "Initialise the brightness value with Float.NaN in PersistentDataStore" into tm-qpr-dev am: 0736fbfd am: 65574a3c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20609229



Change-Id: Ieccf30f1046c78da10ab14d4ec8e6461d152a0ec
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 0d471c79 65574a3c
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -619,7 +619,7 @@ final class PersistentDataStore {

    private static final class DisplayState {
        private int mColorMode;
        private float mBrightness;
        private float mBrightness = Float.NaN;
        private int mWidth;
        private int mHeight;
        private float mRefreshRate;
@@ -700,7 +700,11 @@ final class PersistentDataStore {
                        break;
                    case TAG_BRIGHTNESS_VALUE:
                        String brightness = parser.nextText();
                        try {
                            mBrightness = Float.parseFloat(brightness);
                        } catch (NumberFormatException e) {
                            mBrightness = Float.NaN;
                        }
                        break;
                    case TAG_BRIGHTNESS_CONFIGURATIONS:
                        mDisplayBrightnessConfigurations.loadFromXml(parser);
@@ -727,7 +731,9 @@ final class PersistentDataStore {
            serializer.endTag(null, TAG_COLOR_MODE);

            serializer.startTag(null, TAG_BRIGHTNESS_VALUE);
            if (!Float.isNaN(mBrightness)) {
                serializer.text(Float.toString(mBrightness));
            }
            serializer.endTag(null, TAG_BRIGHTNESS_VALUE);

            serializer.startTag(null, TAG_BRIGHTNESS_CONFIGURATIONS);
+34 −0
Original line number Diff line number Diff line
@@ -344,6 +344,40 @@ public class PersistentDataStoreTest {
        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 {
        private InputStream mReadStream;
        private OutputStream mWriteStream;