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

Commit d3e4bb5c authored by Jacky Wang's avatar Jacky Wang
Browse files

[Catalyst] Default value is written to datastore unexpectedly

Fix: 396260949
Flag: com.android.settings.flags.catalyst
Test: manual
Change-Id: I28aba526ab068e2de52d562c403d856c98c385fe
parent c3bac3f4
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -74,8 +74,14 @@ interface BooleanValuePreferenceBinding : PreferenceBinding {
    override fun bind(preference: Preference, metadata: PreferenceMetadata) {
        super.bind(preference, metadata)
        (preference as TwoStatePreference).apply {
            // MUST suppress persistent when initializing the checked state:
            //   1. default value is written to datastore if not set (b/396260949)
            //   2. avoid redundant read to the datastore
            val suppressPersistent = isPersistent
            if (suppressPersistent) isPersistent = false
            // "false" is kind of placeholder, metadata datastore should provide the default value
            isChecked = preferenceDataStore!!.getBoolean(key, false)
            if (suppressPersistent) isPersistent = true
        }
    }
}