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

Commit 65574a3c 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

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



Change-Id: Ic21c33ff420ca2e8916c4acc4c3ac0fc23f7eb76
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 304c9ad3 0736fbfd
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;