diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-05-09 17:10:34 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-05-09 17:10:34 -0700 |
commit | 05be6d6fe09ddfb706d1bef3b20c3d37f45e3c8a (patch) | |
tree | e267de423fabed80a38fd48d6f9e2910b69fc072 /core/java/android/content/res/Resources.java | |
parent | ba54feb094fdf0eb2201eae5751104a144a2a31d (diff) | |
parent | 4907d1d5e2c7d244b07579b8c52153df69754e85 (diff) | |
download | frameworks_base-05be6d6fe09ddfb706d1bef3b20c3d37f45e3c8a.zip frameworks_base-05be6d6fe09ddfb706d1bef3b20c3d37f45e3c8a.tar.gz frameworks_base-05be6d6fe09ddfb706d1bef3b20c3d37f45e3c8a.tar.bz2 |
am 4907d1d5: am 0c6cbf41: Merge "Better compat mode part one: start scaling windows." into honeycomb-mr2
* commit '4907d1d5e2c7d244b07579b8c52153df69754e85':
Better compat mode part one: start scaling windows.
Diffstat (limited to 'core/java/android/content/res/Resources.java')
-rwxr-xr-x | core/java/android/content/res/Resources.java | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java index 81eb09c..00b49e8 100755 --- a/core/java/android/content/res/Resources.java +++ b/core/java/android/content/res/Resources.java @@ -91,6 +91,7 @@ public class Resources { private static boolean mPreloaded; /*package*/ final TypedValue mTmpValue = new TypedValue(); + /*package*/ final Configuration mTmpConfig = new Configuration(); // These are protected by the mTmpValue lock. private final LongSparseArray<WeakReference<Drawable.ConstantState> > mDrawableCache @@ -1400,18 +1401,30 @@ public class Resources { */ public void updateConfiguration(Configuration config, DisplayMetrics metrics) { + updateConfiguration(config, metrics, null); + } + + /** + * @hide + */ + public void updateConfiguration(Configuration config, + DisplayMetrics metrics, CompatibilityInfo compat) { synchronized (mTmpValue) { + if (compat != null) { + mCompatibilityInfo = compat; + } int configChanges = 0xfffffff; if (config != null) { - configChanges = mConfiguration.updateFrom(config); + mTmpConfig.setTo(config); + mCompatibilityInfo.applyToConfiguration(mTmpConfig); + configChanges = mConfiguration.updateFrom(mTmpConfig); } if (mConfiguration.locale == null) { mConfiguration.locale = Locale.getDefault(); } if (metrics != null) { mMetrics.setTo(metrics); - mMetrics.updateMetrics(mCompatibilityInfo, - mConfiguration.orientation, mConfiguration.screenLayout); + mCompatibilityInfo.applyToDisplayMetrics(mMetrics); } mMetrics.scaledDensity = mMetrics.density * mConfiguration.fontScale; @@ -1500,15 +1513,23 @@ public class Resources { * * @hide */ - public static void updateSystemConfiguration(Configuration config, DisplayMetrics metrics) { + public static void updateSystemConfiguration(Configuration config, DisplayMetrics metrics, + CompatibilityInfo compat) { if (mSystem != null) { - mSystem.updateConfiguration(config, metrics); + mSystem.updateConfiguration(config, metrics, compat); //Log.i(TAG, "Updated system resources " + mSystem // + ": " + mSystem.getConfiguration()); } } /** + * @hide + */ + public static void updateSystemConfiguration(Configuration config, DisplayMetrics metrics) { + updateSystemConfiguration(config, metrics, null); + } + + /** * Return the current display metrics that are in effect for this resource * object. The returned object should be treated as read-only. * |