am f5c757c6: Merge "More fix for bug #8159072 Spinner widget should be RTL\'ized" into jb-mr2-dev

* commit 'f5c757c6292fb2623757ef73020d3730ead063d7':
  More fix for bug #8159072 Spinner widget should be RTL'ized
This commit is contained in:
Fabrice Di Meglio
2013-04-11 18:07:06 -07:00
committed by Android Git Automerger
3 changed files with 13 additions and 10 deletions

View File

@@ -426,7 +426,7 @@ public class ActivityInfo extends ComponentInfo
* Bit in {@link #configChanges} that indicates that the activity
* can itself handle changes to the font scaling factor. Set from the
* {@link android.R.attr#configChanges} attribute. This is
* not a core resource configutation, but a higher-level value, so its
* not a core resource configuration, but a higher-level value, so its
* constant starts at the high bits.
*/
public static final int CONFIG_FONT_SCALE = 0x40000000;

View File

@@ -1977,17 +1977,20 @@ public class Resources {
}
}
private boolean verifyPreloadConfig(TypedValue value, String name) {
if ((value.changingConfigurations&~(ActivityInfo.CONFIG_FONT_SCALE
| ActivityInfo.CONFIG_DENSITY)) != 0) {
static private final int VARYING_CONFIGS = ActivityInfo.activityInfoConfigToNative(
ActivityInfo.CONFIG_LAYOUT_DIRECTION);
private boolean verifyPreloadConfig(int changingConfigurations, int resourceId, String name) {
if (((changingConfigurations&~(ActivityInfo.CONFIG_FONT_SCALE |
ActivityInfo.CONFIG_DENSITY)) & VARYING_CONFIGS) != 0) {
String resName;
try {
resName = getResourceName(value.resourceId);
resName = getResourceName(resourceId);
} catch (NotFoundException e) {
resName = "?";
}
Log.w(TAG, "Preloaded " + name + " resource #0x"
+ Integer.toHexString(value.resourceId)
+ Integer.toHexString(resourceId)
+ " (" + resName + ") that varies with configuration!!");
return false;
}
@@ -2090,7 +2093,7 @@ public class Resources {
cs = dr.getConstantState();
if (cs != null) {
if (mPreloading) {
if (verifyPreloadConfig(value, "drawable")) {
if (verifyPreloadConfig(cs.getChangingConfigurations(), value.resourceId, "drawable")) {
if (isColorDrawable) {
sPreloadedColorDrawables.put(key, cs);
} else {
@@ -2160,7 +2163,7 @@ public class Resources {
csl = ColorStateList.valueOf(value.data);
if (mPreloading) {
if (verifyPreloadConfig(value, "color")) {
if (verifyPreloadConfig(value.changingConfigurations, value.resourceId, "color")) {
sPreloadedColorStateLists.put(key, csl);
}
}
@@ -2206,7 +2209,7 @@ public class Resources {
if (csl != null) {
if (mPreloading) {
if (verifyPreloadConfig(value, "color")) {
if (verifyPreloadConfig(value.changingConfigurations, value.resourceId, "color")) {
sPreloadedColorStateLists.put(key, csl);
}
} else {

View File

@@ -512,7 +512,7 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
@Override
public int getChangingConfigurations() {
return mChangingConfigurations;
return mChangingConfigurations | mChildrenChangingConfigurations;
}
public final int addChild(Drawable dr) {