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

Commit a78a8350 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

Merge "Update CoreSettingsObserver internal state correctly."

parents 5cb1e8e6 c45c3875
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -126,6 +126,7 @@ final class CoreSettingsObserver extends ContentObserver {
                value = Settings.Global.getString(context.getContentResolver(), setting);
            }
            if (value == null) {
                snapshot.remove(setting);
                continue;
            }
            Class<?> type = entry.getValue();
+29 −8
Original line number Diff line number Diff line
@@ -132,15 +132,36 @@ public class CoreSettingsObserverTest {
                settingsBundle.containsKey(TEST_SETTING_SYSTEM_STRING));
    }

    @Test
    public void testPopulateSettings_settingDeleted() {
        Settings.Secure.putInt(mContentResolver, TEST_SETTING_SECURE_INT, TEST_INT);
        Settings.Global.putFloat(mContentResolver, TEST_SETTING_GLOBAL_FLOAT, TEST_FLOAT);
        Settings.System.putString(mContentResolver, TEST_SETTING_SYSTEM_STRING, TEST_STRING);

        Bundle settingsBundle = getPopulatedBundle();

        assertEquals("Unexpected value of " + TEST_SETTING_SECURE_INT,
                TEST_INT, settingsBundle.getInt(TEST_SETTING_SECURE_INT));
        assertEquals("Unexpected value of " + TEST_SETTING_GLOBAL_FLOAT,
                TEST_FLOAT, settingsBundle.getFloat(TEST_SETTING_GLOBAL_FLOAT), 0);
        assertEquals("Unexpected value of " + TEST_SETTING_SYSTEM_STRING,
                TEST_STRING, settingsBundle.getString(TEST_SETTING_SYSTEM_STRING));

        Settings.Global.putString(mContentResolver, TEST_SETTING_GLOBAL_FLOAT, null);
        settingsBundle = getPopulatedBundle();

        assertFalse("Bundle should not contain " + TEST_SETTING_GLOBAL_FLOAT,
                settingsBundle.containsKey(TEST_SETTING_GLOBAL_FLOAT));
        assertEquals("Unexpected value of " + TEST_SETTING_SECURE_INT,
                TEST_INT, settingsBundle.getInt(TEST_SETTING_SECURE_INT));
        assertEquals("Unexpected value of " + TEST_SETTING_SYSTEM_STRING,
                TEST_STRING, settingsBundle.getString(TEST_SETTING_SYSTEM_STRING));

    }

    private Bundle getPopulatedBundle() {
        final Bundle settingsBundle = new Bundle();
        mCoreSettingsObserver.populateSettings(settingsBundle,
                CoreSettingsObserver.sGlobalSettingToTypeMap);
        mCoreSettingsObserver.populateSettings(settingsBundle,
                CoreSettingsObserver.sSecureSettingToTypeMap);
        mCoreSettingsObserver.populateSettings(settingsBundle,
                CoreSettingsObserver.sSystemSettingToTypeMap);
        return settingsBundle;
        mCoreSettingsObserver.onChange(false);
        return mCoreSettingsObserver.getCoreSettingsLocked();
    }

    private class TestInjector extends Injector {