Merge "Add check to retrieve grammatical gender value from system properties after reboot and introduce an internal constant in Configuration to fix bugs that block updating grammatical gender value." into main
This commit is contained in:
@@ -154,7 +154,6 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
/**
|
||||
* Current user preference for the grammatical gender.
|
||||
*/
|
||||
@GrammaticalGender
|
||||
private int mGrammaticalGender;
|
||||
|
||||
/** @hide */
|
||||
@@ -166,6 +165,13 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
})
|
||||
public @interface GrammaticalGender {}
|
||||
|
||||
/**
|
||||
* Constant for grammatical gender: to indicate that the grammatical gender is undefined.
|
||||
* Only for internal usage.
|
||||
* @hide
|
||||
*/
|
||||
public static final int GRAMMATICAL_GENDER_UNDEFINED = -1;
|
||||
|
||||
/**
|
||||
* Constant for grammatical gender: to indicate the user has not specified the terms
|
||||
* of address for the application.
|
||||
@@ -1120,12 +1126,12 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
} else {
|
||||
sb.append(" ?localeList");
|
||||
}
|
||||
if (mGrammaticalGender != 0) {
|
||||
if (mGrammaticalGender > 0) {
|
||||
switch (mGrammaticalGender) {
|
||||
case GRAMMATICAL_GENDER_NEUTRAL: sb.append(" neuter"); break;
|
||||
case GRAMMATICAL_GENDER_FEMININE: sb.append(" feminine"); break;
|
||||
case GRAMMATICAL_GENDER_MASCULINE: sb.append(" masculine"); break;
|
||||
case GRAMMATICAL_GENDER_NOT_SPECIFIED: sb.append(" ?grgend"); break;
|
||||
default: sb.append(" ?grgend"); break;
|
||||
}
|
||||
}
|
||||
int layoutDir = (screenLayout&SCREENLAYOUT_LAYOUTDIR_MASK);
|
||||
@@ -1570,7 +1576,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
seq = 0;
|
||||
windowConfiguration.setToDefaults();
|
||||
fontWeightAdjustment = FONT_WEIGHT_ADJUSTMENT_UNDEFINED;
|
||||
mGrammaticalGender = GRAMMATICAL_GENDER_NOT_SPECIFIED;
|
||||
mGrammaticalGender = GRAMMATICAL_GENDER_UNDEFINED;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1773,7 +1779,8 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
changed |= ActivityInfo.CONFIG_FONT_WEIGHT_ADJUSTMENT;
|
||||
fontWeightAdjustment = delta.fontWeightAdjustment;
|
||||
}
|
||||
if (delta.mGrammaticalGender != mGrammaticalGender) {
|
||||
if (delta.mGrammaticalGender != GRAMMATICAL_GENDER_UNDEFINED
|
||||
&& delta.mGrammaticalGender != mGrammaticalGender) {
|
||||
changed |= ActivityInfo.CONFIG_GRAMMATICAL_GENDER;
|
||||
mGrammaticalGender = delta.mGrammaticalGender;
|
||||
}
|
||||
@@ -1998,7 +2005,8 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
changed |= ActivityInfo.CONFIG_FONT_WEIGHT_ADJUSTMENT;
|
||||
}
|
||||
|
||||
if (mGrammaticalGender != delta.mGrammaticalGender) {
|
||||
if ((compareUndefined || delta.mGrammaticalGender != GRAMMATICAL_GENDER_UNDEFINED)
|
||||
&& mGrammaticalGender != delta.mGrammaticalGender) {
|
||||
changed |= ActivityInfo.CONFIG_GRAMMATICAL_GENDER;
|
||||
}
|
||||
return changed;
|
||||
@@ -2284,6 +2292,17 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
*/
|
||||
@GrammaticalGender
|
||||
public int getGrammaticalGender() {
|
||||
return mGrammaticalGender == GRAMMATICAL_GENDER_UNDEFINED
|
||||
? GRAMMATICAL_GENDER_NOT_SPECIFIED : mGrammaticalGender;
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal getter of grammatical gender, to get the raw value of grammatical gender,
|
||||
* which include {@link #GRAMMATICAL_GENDER_UNDEFINED}.
|
||||
* @hide
|
||||
*/
|
||||
|
||||
public int getGrammaticalGenderRaw() {
|
||||
return mGrammaticalGender;
|
||||
}
|
||||
|
||||
@@ -2972,7 +2991,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
configOut.fontWeightAdjustment = XmlUtils.readIntAttribute(parser,
|
||||
XML_ATTR_FONT_WEIGHT_ADJUSTMENT, FONT_WEIGHT_ADJUSTMENT_UNDEFINED);
|
||||
configOut.mGrammaticalGender = XmlUtils.readIntAttribute(parser,
|
||||
XML_ATTR_GRAMMATICAL_GENDER, GRAMMATICAL_GENDER_NOT_SPECIFIED);
|
||||
XML_ATTR_GRAMMATICAL_GENDER, GRAMMATICAL_GENDER_UNDEFINED);
|
||||
|
||||
// For persistence, we don't care about assetsSeq and WindowConfiguration, so do not read it
|
||||
// out.
|
||||
|
||||
@@ -311,6 +311,7 @@ import java.util.Set;
|
||||
* {@hide}
|
||||
*/
|
||||
public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
|
||||
private static final String GRAMMATICAL_GENDER_PROPERTY = "persist.sys.grammatical_gender";
|
||||
private static final String TAG = TAG_WITH_CLASS_NAME ? "ActivityTaskManagerService" : TAG_ATM;
|
||||
static final String TAG_ROOT_TASK = TAG + POSTFIX_ROOT_TASK;
|
||||
static final String TAG_SWITCH = TAG + POSTFIX_SWITCH;
|
||||
@@ -928,6 +929,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
|
||||
configuration.setLayoutDirection(configuration.locale);
|
||||
}
|
||||
|
||||
// Retrieve the grammatical gender from system property, set it into configuration which
|
||||
// will get updated later if the grammatical gender raw value of current configuration is
|
||||
// {@link Configuration#GRAMMATICAL_GENDER_UNDEFINED}.
|
||||
if (configuration.getGrammaticalGenderRaw() == Configuration.GRAMMATICAL_GENDER_UNDEFINED) {
|
||||
configuration.setGrammaticalGender(SystemProperties.getInt(GRAMMATICAL_GENDER_PROPERTY,
|
||||
Configuration.GRAMMATICAL_GENDER_UNDEFINED));
|
||||
}
|
||||
|
||||
synchronized (mGlobalLock) {
|
||||
mForceResizableActivities = forceResizable;
|
||||
mDevEnableNonResizableMultiWindow = devEnableNonResizableMultiWindow;
|
||||
|
||||
Reference in New Issue
Block a user