Configurationpublic final class Configuration extends Object implements Comparable, android.os.ParcelableThis class describes all device configuration information that can
impact the resources the application retrieves. This includes both
user-specified configuration options (locale and scaling) as well
as dynamic device configuration (various types of input devices). |
Fields Summary |
---|
public float | fontScaleCurrent user preference for the scaling factor for fonts, relative
to the base density scaling. | public int | mccIMSI MCC (Mobile Country Code). 0 if undefined. | public int | mncIMSI MNC (Mobile Network Code). 0 if undefined. | public Locale | localeCurrent user preference for the locale. | public boolean | userSetLocaleLocale should persist on setting. This is hidden because it is really
questionable whether this is the right way to expose the functionality. | public static final int | TOUCHSCREEN_UNDEFINED | public static final int | TOUCHSCREEN_NOTOUCH | public static final int | TOUCHSCREEN_STYLUS | public static final int | TOUCHSCREEN_FINGER | public int | touchscreenThe kind of touch screen attached to the device.
One of: {@link #TOUCHSCREEN_NOTOUCH}, {@link #TOUCHSCREEN_STYLUS},
{@link #TOUCHSCREEN_FINGER}. | public static final int | KEYBOARD_UNDEFINED | public static final int | KEYBOARD_NOKEYS | public static final int | KEYBOARD_QWERTY | public static final int | KEYBOARD_12KEY | public int | keyboardThe kind of keyboard attached to the device.
One of: {@link #KEYBOARD_QWERTY}, {@link #KEYBOARD_12KEY}. | public static final int | KEYBOARDHIDDEN_UNDEFINED | public static final int | KEYBOARDHIDDEN_NO | public static final int | KEYBOARDHIDDEN_YES | public static final int | KEYBOARDHIDDEN_SOFTConstant matching actual resource implementation. {@hide} | public int | keyboardHiddenA flag indicating whether any keyboard is available. Unlike
{@link #hardKeyboardHidden}, this also takes into account a soft
keyboard, so if the hard keyboard is hidden but there is soft
keyboard available, it will be set to NO. Value is one of:
{@link #KEYBOARDHIDDEN_NO}, {@link #KEYBOARDHIDDEN_YES}. | public static final int | HARDKEYBOARDHIDDEN_UNDEFINED | public static final int | HARDKEYBOARDHIDDEN_NO | public static final int | HARDKEYBOARDHIDDEN_YES | public int | hardKeyboardHiddenA flag indicating whether the hard keyboard has been hidden. This will
be set on a device with a mechanism to hide the keyboard from the
user, when that mechanism is closed. One of:
{@link #HARDKEYBOARDHIDDEN_NO}, {@link #HARDKEYBOARDHIDDEN_YES}. | public static final int | NAVIGATION_UNDEFINED | public static final int | NAVIGATION_NONAV | public static final int | NAVIGATION_DPAD | public static final int | NAVIGATION_TRACKBALL | public static final int | NAVIGATION_WHEEL | public int | navigationThe kind of navigation method available on the device.
One of: {@link #NAVIGATION_DPAD}, {@link #NAVIGATION_TRACKBALL},
{@link #NAVIGATION_WHEEL}. | public static final int | ORIENTATION_UNDEFINED | public static final int | ORIENTATION_PORTRAIT | public static final int | ORIENTATION_LANDSCAPE | public static final int | ORIENTATION_SQUARE | public int | orientationOverall orientation of the screen. May be one of
{@link #ORIENTATION_LANDSCAPE}, {@link #ORIENTATION_PORTRAIT},
or {@link #ORIENTATION_SQUARE}. | public static final Parcelable.Creator | CREATOR |
Constructors Summary |
---|
public Configuration()Construct an invalid Configuration. You must call {@link #setToDefaults}
for this object to be valid. {@more}
setToDefaults();
| private Configuration(android.os.Parcel source)Construct this Configuration object, reading from the Parcel.
fontScale = source.readFloat();
mcc = source.readInt();
mnc = source.readInt();
if (source.readInt() != 0) {
locale = new Locale(source.readString(), source.readString(),
source.readString());
}
userSetLocale = (source.readInt()==1);
touchscreen = source.readInt();
keyboard = source.readInt();
keyboardHidden = source.readInt();
hardKeyboardHidden = source.readInt();
navigation = source.readInt();
orientation = source.readInt();
| public Configuration(Configuration o)Makes a deep copy suitable for modification.
fontScale = o.fontScale;
mcc = o.mcc;
mnc = o.mnc;
if (o.locale != null) {
locale = (Locale) o.locale.clone();
}
userSetLocale = o.userSetLocale;
touchscreen = o.touchscreen;
keyboard = o.keyboard;
keyboardHidden = o.keyboardHidden;
hardKeyboardHidden = o.hardKeyboardHidden;
navigation = o.navigation;
orientation = o.orientation;
|
Methods Summary |
---|
public int | compareTo(android.content.res.Configuration that)
int n;
float a = this.fontScale;
float b = that.fontScale;
if (a < b) return -1;
if (a > b) return 1;
n = this.mcc - that.mcc;
if (n != 0) return n;
n = this.mnc - that.mnc;
if (n != 0) return n;
n = this.locale.getLanguage().compareTo(that.locale.getLanguage());
if (n != 0) return n;
n = this.locale.getCountry().compareTo(that.locale.getCountry());
if (n != 0) return n;
n = this.locale.getVariant().compareTo(that.locale.getVariant());
if (n != 0) return n;
n = this.touchscreen - that.touchscreen;
if (n != 0) return n;
n = this.keyboard - that.keyboard;
if (n != 0) return n;
n = this.keyboardHidden - that.keyboardHidden;
if (n != 0) return n;
n = this.hardKeyboardHidden - that.hardKeyboardHidden;
if (n != 0) return n;
n = this.navigation - that.navigation;
if (n != 0) return n;
n = this.orientation - that.orientation;
//if (n != 0) return n;
return n;
| public int | describeContents()Parcelable methods
return 0;
| public int | diff(android.content.res.Configuration delta)Return a bit mask of the differences between this Configuration
object and the given one. Does not change the values of either. Any
undefined fields in delta are ignored.
int changed = 0;
if (delta.fontScale > 0 && fontScale != delta.fontScale) {
changed |= ActivityInfo.CONFIG_FONT_SCALE;
}
if (delta.mcc != 0 && mcc != delta.mcc) {
changed |= ActivityInfo.CONFIG_MCC;
}
if (delta.mnc != 0 && mnc != delta.mnc) {
changed |= ActivityInfo.CONFIG_MNC;
}
if (delta.locale != null
&& (locale == null || !locale.equals(delta.locale))) {
changed |= ActivityInfo.CONFIG_LOCALE;
}
if (delta.touchscreen != TOUCHSCREEN_UNDEFINED
&& touchscreen != delta.touchscreen) {
changed |= ActivityInfo.CONFIG_TOUCHSCREEN;
}
if (delta.keyboard != KEYBOARD_UNDEFINED
&& keyboard != delta.keyboard) {
changed |= ActivityInfo.CONFIG_KEYBOARD;
}
if (delta.keyboardHidden != KEYBOARDHIDDEN_UNDEFINED
&& keyboardHidden != delta.keyboardHidden) {
changed |= ActivityInfo.CONFIG_KEYBOARD_HIDDEN;
}
if (delta.hardKeyboardHidden != HARDKEYBOARDHIDDEN_UNDEFINED
&& hardKeyboardHidden != delta.hardKeyboardHidden) {
changed |= ActivityInfo.CONFIG_KEYBOARD_HIDDEN;
}
if (delta.navigation != NAVIGATION_UNDEFINED
&& navigation != delta.navigation) {
changed |= ActivityInfo.CONFIG_NAVIGATION;
}
if (delta.orientation != ORIENTATION_UNDEFINED
&& orientation != delta.orientation) {
changed |= ActivityInfo.CONFIG_ORIENTATION;
}
return changed;
| public boolean | equals(android.content.res.Configuration that)
if (that == null) return false;
if (that == this) return true;
return this.compareTo(that) == 0;
| public boolean | equals(java.lang.Object that)
try {
return equals((Configuration)that);
} catch (ClassCastException e) {
}
return false;
| public int | hashCode()
return ((int)this.fontScale) + this.mcc + this.mnc
+ this.locale.hashCode() + this.touchscreen
+ this.keyboard + this.keyboardHidden + this.hardKeyboardHidden
+ this.navigation + this.orientation;
| public void | makeDefault(){@hide}
setToDefaults();
| public static boolean | needNewResources(int configChanges, int interestingChanges)Determine if a new resource needs to be loaded from the bit set of
configuration changes returned by {@link #updateFrom(Configuration)}.
return (configChanges & (interestingChanges|ActivityInfo.CONFIG_FONT_SCALE)) != 0;
| public void | setToDefaults()Set this object to the system defaults.
fontScale = 1;
mcc = mnc = 0;
locale = Locale.getDefault();
userSetLocale = false;
touchscreen = TOUCHSCREEN_UNDEFINED;
keyboard = KEYBOARD_UNDEFINED;
keyboardHidden = KEYBOARDHIDDEN_UNDEFINED;
hardKeyboardHidden = HARDKEYBOARDHIDDEN_UNDEFINED;
navigation = NAVIGATION_UNDEFINED;
orientation = ORIENTATION_UNDEFINED;
| public java.lang.String | toString()
return "{ scale=" + fontScale + " imsi=" + mcc + "/" + mnc
+ " locale=" + locale
+ " touch=" + touchscreen + " key=" + keyboard + "/"
+ keyboardHidden + "/" + hardKeyboardHidden
+ " nav=" + navigation + " orien=" + orientation + " }";
| public int | updateFrom(android.content.res.Configuration delta)Copy the fields from delta into this Configuration object, keeping
track of which ones have changed. Any undefined fields in
delta are ignored and not copied in to the current
Configuration.
int changed = 0;
if (delta.fontScale > 0 && fontScale != delta.fontScale) {
changed |= ActivityInfo.CONFIG_FONT_SCALE;
fontScale = delta.fontScale;
}
if (delta.mcc != 0 && mcc != delta.mcc) {
changed |= ActivityInfo.CONFIG_MCC;
mcc = delta.mcc;
}
if (delta.mnc != 0 && mnc != delta.mnc) {
changed |= ActivityInfo.CONFIG_MNC;
mnc = delta.mnc;
}
if (delta.locale != null
&& (locale == null || !locale.equals(delta.locale))) {
changed |= ActivityInfo.CONFIG_LOCALE;
locale = delta.locale != null
? (Locale) delta.locale.clone() : null;
}
if (delta.userSetLocale && (!userSetLocale || ((changed & ActivityInfo.CONFIG_LOCALE) != 0)))
{
userSetLocale = true;
changed |= ActivityInfo.CONFIG_LOCALE;
}
if (delta.touchscreen != TOUCHSCREEN_UNDEFINED
&& touchscreen != delta.touchscreen) {
changed |= ActivityInfo.CONFIG_TOUCHSCREEN;
touchscreen = delta.touchscreen;
}
if (delta.keyboard != KEYBOARD_UNDEFINED
&& keyboard != delta.keyboard) {
changed |= ActivityInfo.CONFIG_KEYBOARD;
keyboard = delta.keyboard;
}
if (delta.keyboardHidden != KEYBOARDHIDDEN_UNDEFINED
&& keyboardHidden != delta.keyboardHidden) {
changed |= ActivityInfo.CONFIG_KEYBOARD_HIDDEN;
keyboardHidden = delta.keyboardHidden;
}
if (delta.hardKeyboardHidden != HARDKEYBOARDHIDDEN_UNDEFINED
&& hardKeyboardHidden != delta.hardKeyboardHidden) {
changed |= ActivityInfo.CONFIG_KEYBOARD_HIDDEN;
hardKeyboardHidden = delta.hardKeyboardHidden;
}
if (delta.navigation != NAVIGATION_UNDEFINED
&& navigation != delta.navigation) {
changed |= ActivityInfo.CONFIG_NAVIGATION;
navigation = delta.navigation;
}
if (delta.orientation != ORIENTATION_UNDEFINED
&& orientation != delta.orientation) {
changed |= ActivityInfo.CONFIG_ORIENTATION;
orientation = delta.orientation;
}
return changed;
| public void | writeToParcel(android.os.Parcel dest, int flags)
dest.writeFloat(fontScale);
dest.writeInt(mcc);
dest.writeInt(mnc);
if (locale == null) {
dest.writeInt(0);
} else {
dest.writeInt(1);
dest.writeString(locale.getLanguage());
dest.writeString(locale.getCountry());
dest.writeString(locale.getVariant());
}
if(userSetLocale) {
dest.writeInt(1);
} else {
dest.writeInt(0);
}
dest.writeInt(touchscreen);
dest.writeInt(keyboard);
dest.writeInt(keyboardHidden);
dest.writeInt(hardKeyboardHidden);
dest.writeInt(navigation);
dest.writeInt(orientation);
|
|