diff options
Diffstat (limited to 'policy/src/com/android/internal/policy/impl/PhoneWindowManager.java')
-rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 85d3b5d..6ee08a7 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -53,6 +53,7 @@ import android.os.Vibrator; import android.provider.CmSystem; import android.provider.Settings; +import com.android.internal.app.ThemeUtils; import com.android.internal.policy.PolicyManager; import com.android.internal.statusbar.IStatusBarService; import com.android.internal.telephony.ITelephony; @@ -187,6 +188,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { final Object mLock = new Object(); Context mContext; + Context mUiContext; IWindowManager mWindowManager; LocalPowerManager mPowerManager; Vibrator mVibrator; // Vibrator for giving feedback of orientation changes @@ -588,7 +590,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (uid >= Process.FIRST_APPLICATION_UID && uid <= Process.LAST_APPLICATION_UID && appInfo.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { // Kill the entire pid - Toast.makeText(mContext, R.string.app_killed_message, Toast.LENGTH_SHORT).show(); + Toast.makeText(getUiContext(), R.string.app_killed_message, Toast.LENGTH_SHORT).show(); if (appInfo.pkgList!=null && (apps.size() > 0)){ mgr.forceStopPackage(appInfo.pkgList[0]); }else{ @@ -658,6 +660,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { }; }; + private Context getUiContext() { + if (mUiContext == null) { + mUiContext = ThemeUtils.createUiContext(mContext); + } + return mUiContext != null ? mUiContext : mContext; + } + protected void sendMediaButtonEvent(int code) { long eventtime = SystemClock.uptimeMillis(); @@ -768,6 +777,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { mDockMode = intent.getIntExtra(Intent.EXTRA_DOCK_STATE, Intent.EXTRA_DOCK_STATE_UNDOCKED); } + // register for theme change events + ThemeUtils.registerThemeChangeReceiver(context, mThemeChangeReceiver); mVibrator = new Vibrator(); mLongPressVibePattern = loadHaptic(HapticFeedbackConstants.LONG_PRESS); mVirtualKeyVibePattern = loadHaptic(HapticFeedbackConstants.VIRTUAL_KEY); @@ -2361,6 +2372,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { } }; + BroadcastReceiver mThemeChangeReceiver = new BroadcastReceiver() { + public void onReceive(Context context, Intent intent) { + mUiContext = null; + } + }; + /** {@inheritDoc} */ public void screenTurnedOff(int why) { EventLog.writeEvent(70000, 0); |