diff options
author | Adam Lesinski <adamlesinski@google.com> | 2013-09-19 20:33:15 -0700 |
---|---|---|
committer | Adam Lesinski <adamlesinski@google.com> | 2013-09-20 11:04:40 -0700 |
commit | 79a8ffe54f9c99ffc34f7b5b73c22eea2673424a (patch) | |
tree | 57366f7c4e4e0bc28b049f45dc99ff0a8ae5d60a /core/java/android/content/res | |
parent | 0286f5e2786865e35781180c88e67a0f981e942d (diff) | |
download | frameworks_base-79a8ffe54f9c99ffc34f7b5b73c22eea2673424a.zip frameworks_base-79a8ffe54f9c99ffc34f7b5b73c22eea2673424a.tar.gz frameworks_base-79a8ffe54f9c99ffc34f7b5b73c22eea2673424a.tar.bz2 |
Ensures that CompatibilityInfo is always set in Resources
- Adds null checks when setting mCompatibilityInfo and uses default no-op
CompatibilityInfo object instead of null
- Removes null checks when calling methods on mCompatibilityInfo since it is never
null
bug:10204942
Change-Id: I36e88f5cdceb46b8b19fb902270ef74023a81546
Diffstat (limited to 'core/java/android/content/res')
-rw-r--r-- | core/java/android/content/res/Resources.java | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java index 6483cd9..cd5b5d2 100644 --- a/core/java/android/content/res/Resources.java +++ b/core/java/android/content/res/Resources.java @@ -195,7 +195,9 @@ public class Resources { CompatibilityInfo compatInfo, IBinder token) { mAssets = assets; mMetrics.setToDefaults(); - mCompatibilityInfo = compatInfo; + if (compatInfo != null) { + mCompatibilityInfo = compatInfo; + } mToken = new WeakReference<IBinder>(token); updateConfiguration(config, metrics); assets.ensureStringBlocks(); @@ -1536,9 +1538,8 @@ public class Resources { // it would be cleaner and more maintainble to just be // consistently dealing with a compatible display everywhere in // the framework. - if (mCompatibilityInfo != null) { - mCompatibilityInfo.applyToDisplayMetrics(mMetrics); - } + mCompatibilityInfo.applyToDisplayMetrics(mMetrics); + int configChanges = 0xfffffff; if (config != null) { mTmpConfig.setTo(config); @@ -1546,9 +1547,9 @@ public class Resources { if (density == Configuration.DENSITY_DPI_UNDEFINED) { density = mMetrics.noncompatDensityDpi; } - if (mCompatibilityInfo != null) { - mCompatibilityInfo.applyToConfiguration(density, mTmpConfig); - } + + mCompatibilityInfo.applyToConfiguration(density, mTmpConfig); + if (mTmpConfig.locale == null) { mTmpConfig.locale = Locale.getDefault(); mTmpConfig.setLayoutDirection(mTmpConfig.locale); @@ -1697,8 +1698,7 @@ public class Resources { * @hide */ public CompatibilityInfo getCompatibilityInfo() { - return mCompatibilityInfo != null ? mCompatibilityInfo - : CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO; + return mCompatibilityInfo; } /** @@ -1706,8 +1706,10 @@ public class Resources { * @hide */ public void setCompatibilityInfo(CompatibilityInfo ci) { - mCompatibilityInfo = ci; - updateConfiguration(mConfiguration, mMetrics); + if (ci != null) { + mCompatibilityInfo = ci; + updateConfiguration(mConfiguration, mMetrics); + } } /** @@ -2407,6 +2409,5 @@ public class Resources { mMetrics.setToDefaults(); updateConfiguration(null, null); mAssets.ensureStringBlocks(); - mCompatibilityInfo = CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO; } } |