summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/res/Resources.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-05-09 17:10:34 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-05-09 17:10:34 -0700
commit05be6d6fe09ddfb706d1bef3b20c3d37f45e3c8a (patch)
treee267de423fabed80a38fd48d6f9e2910b69fc072 /core/java/android/content/res/Resources.java
parentba54feb094fdf0eb2201eae5751104a144a2a31d (diff)
parent4907d1d5e2c7d244b07579b8c52153df69754e85 (diff)
downloadframeworks_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-xcore/java/android/content/res/Resources.java31
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.
*