Don't overwrite the system global gender settings
Developer setting shouldn't rewrite the proper user-selected value. This is best effort and will still overwrite it when the values used to be the same. Bug: 332955145 Test: manual Change-Id: I7c350ff84dfc7e216835ab3b45b7c1316ea78155
This commit is contained in:
@@ -69,12 +69,19 @@ public class GrammaticalGenderPreferenceController extends DeveloperOptionsPrefe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
final var oldValue = SystemProperties.getInt(GRAMMATICAL_GENDER_PROPERTY,
|
||||||
|
Configuration.GRAMMATICAL_GENDER_NOT_SPECIFIED);
|
||||||
SystemProperties.set(GRAMMATICAL_GENDER_PROPERTY, newValue.toString());
|
SystemProperties.set(GRAMMATICAL_GENDER_PROPERTY, newValue.toString());
|
||||||
updateState(mPreference);
|
updateState(mPreference);
|
||||||
try {
|
try {
|
||||||
Configuration config = mActivityManager.getConfiguration();
|
Configuration config = mActivityManager.getConfiguration();
|
||||||
|
// Only apply the developer settings value if it is the one currently used,
|
||||||
|
// otherwise it means there's some kind of override that we don't want to
|
||||||
|
// touch here.
|
||||||
|
if (config.getGrammaticalGender() == oldValue) {
|
||||||
config.setGrammaticalGender(Integer.parseInt(newValue.toString()));
|
config.setGrammaticalGender(Integer.parseInt(newValue.toString()));
|
||||||
mActivityManager.updatePersistentConfiguration(config);
|
mActivityManager.updatePersistentConfiguration(config);
|
||||||
|
}
|
||||||
} catch (RemoteException ex) {
|
} catch (RemoteException ex) {
|
||||||
// intentional no-op
|
// intentional no-op
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user