diff --git a/core/java/com/android/internal/policy/DecorContext.java b/core/java/com/android/internal/policy/DecorContext.java index 4f17c39ddf813..eac9f64f3fa0b 100644 --- a/core/java/com/android/internal/policy/DecorContext.java +++ b/core/java/com/android/internal/policy/DecorContext.java @@ -17,22 +17,27 @@ package com.android.internal.policy; import android.content.Context; +import android.content.res.AssetManager; +import android.content.res.Resources; import android.view.ContextThemeWrapper; import android.view.WindowManager; import android.view.WindowManagerImpl; /** * Context for decor views which can be seeded with pure application context and not depend on the - * activity, but still provide some of the facilities that Activity has, e.g. themes. + * activity, but still provide some of the facilities that Activity has, + * e.g. themes, activity-based resources, etc. * * @hide */ class DecorContext extends ContextThemeWrapper { private PhoneWindow mPhoneWindow; private WindowManager mWindowManager; + private Resources mActivityResources; - public DecorContext(Context context) { + public DecorContext(Context context, Resources activityResources) { super(context, null); + mActivityResources = activityResources; } void setPhoneWindow(PhoneWindow phoneWindow) { @@ -52,4 +57,14 @@ class DecorContext extends ContextThemeWrapper { } return super.getSystemService(name); } + + @Override + public Resources getResources() { + return mActivityResources; + } + + @Override + public AssetManager getAssets() { + return mActivityResources.getAssets(); + } } diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java index fe632678713d9..151c530eea3c3 100644 --- a/core/java/com/android/internal/policy/PhoneWindow.java +++ b/core/java/com/android/internal/policy/PhoneWindow.java @@ -2297,7 +2297,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (applicationContext == null) { context = getContext(); } else { - context = new DecorContext(applicationContext); + context = new DecorContext(applicationContext, getContext().getResources()); if (mTheme != -1) { context.setTheme(mTheme); }