diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 38a4475064af6..67bdad576af3a 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -326,10 +326,30 @@ public abstract class Context { */ public static final int BIND_NOT_VISIBLE = 0x40000000; - /** Return an AssetManager instance for your application's package. */ + /** + * Returns an AssetManager instance for the application's package. + *
+ * Note: Implementations of this method should return + * an AssetManager instance that is consistent with the Resources instance + * returned by {@link #getResources()}. For example, they should share the + * same {@link Configuration} object. + * + * @return an AssetManager instance for the application's package + * @see #getResources() + */ public abstract AssetManager getAssets(); - /** Return a Resources instance for your application's package. */ + /** + * Returns a Resources instance for the application's package. + *
+ * Note: Implementations of this method should return + * a Resources instance that is consistent with the AssetManager instance + * returned by {@link #getAssets()}. For example, they should share the + * same {@link Configuration} object. + * + * @return a Resources instance for the application's package + * @see #getAssets() + */ public abstract Resources getResources(); /** Return PackageManager instance to find global package information. */ diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java index 1a3d262f6b56c..c99ddc8fbe118 100644 --- a/core/java/android/content/ContextWrapper.java +++ b/core/java/android/content/ContextWrapper.java @@ -82,8 +82,7 @@ public class ContextWrapper extends Context { } @Override - public Resources getResources() - { + public Resources getResources() { return mBase.getResources(); } diff --git a/core/java/android/view/ContextThemeWrapper.java b/core/java/android/view/ContextThemeWrapper.java index ea0873d6fb1be..4888877cb28be 100644 --- a/core/java/android/view/ContextThemeWrapper.java +++ b/core/java/android/view/ContextThemeWrapper.java @@ -104,11 +104,15 @@ public class ContextThemeWrapper extends ContextWrapper { @Override public AssetManager getAssets() { // Ensure we're returning assets with the correct configuration. - return getResources().getAssets(); + return getResourcesInternal().getAssets(); } @Override public Resources getResources() { + return getResourcesInternal(); + } + + private Resources getResourcesInternal() { if (mResources == null) { if (mOverrideConfiguration == null) { mResources = super.getResources(); @@ -117,7 +121,6 @@ public class ContextThemeWrapper extends ContextWrapper { mResources = resContext.getResources(); } } - return mResources; }