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
|
||||
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());
|
||||
updateState(mPreference);
|
||||
try {
|
||||
Configuration config = mActivityManager.getConfiguration();
|
||||
config.setGrammaticalGender(Integer.parseInt(newValue.toString()));
|
||||
mActivityManager.updatePersistentConfiguration(config);
|
||||
// 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()));
|
||||
mActivityManager.updatePersistentConfiguration(config);
|
||||
}
|
||||
} catch (RemoteException ex) {
|
||||
// intentional no-op
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user