summaryrefslogtreecommitdiffstats
path: root/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java
diff options
context:
space:
mode:
Diffstat (limited to 'policy/src/com/android/internal/policy/impl/SimUnlockScreen.java')
-rw-r--r--policy/src/com/android/internal/policy/impl/SimUnlockScreen.java23
1 files changed, 22 insertions, 1 deletions
diff --git a/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java b/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java
index e5ae964..cfd985a 100644
--- a/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java
+++ b/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java
@@ -18,11 +18,14 @@ package com.android.internal.policy.impl;
import android.app.Dialog;
import android.app.ProgressDialog;
+import android.content.BroadcastReceiver;
import android.content.Context;
+import android.content.Intent;
import android.content.res.Configuration;
import android.os.RemoteException;
import android.os.ServiceManager;
+import com.android.internal.app.ThemeUtils;
import com.android.internal.telephony.ITelephony;
import com.android.internal.widget.LockPatternUtils;
@@ -58,6 +61,7 @@ public class SimUnlockScreen extends LinearLayout implements KeyguardScreen, Vie
private final int[] mEnteredPin = {0, 0, 0, 0, 0, 0, 0, 0};
private int mEnteredDigits = 0;
+ private Context mUiContext;
private ProgressDialog mSimUnlockProgressDialog = null;
private LockPatternUtils mLockPatternUtils;
@@ -75,6 +79,14 @@ public class SimUnlockScreen extends LinearLayout implements KeyguardScreen, Vie
mUpdateMonitor = updateMonitor;
mCallback = callback;
+ ThemeUtils.registerThemeChangeReceiver(context, new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ mUiContext = null;
+ mSimUnlockProgressDialog = null;
+ }
+ });
+
mCreationOrientation = configuration.orientation;
mKeyboardHidden = configuration.hardKeyboardHidden;
mLockPatternUtils = lockpatternutils;
@@ -192,8 +204,17 @@ public class SimUnlockScreen extends LinearLayout implements KeyguardScreen, Vie
}
private Dialog getSimUnlockProgressDialog() {
+ if (mUiContext == null && mSimUnlockProgressDialog != null) {
+ mSimUnlockProgressDialog.dismiss();
+ mSimUnlockProgressDialog = null;
+ }
+
if (mSimUnlockProgressDialog == null) {
- mSimUnlockProgressDialog = new ProgressDialog(mContext);
+ mUiContext = ThemeUtils.createUiContext(mContext);
+
+ final Context uiContext = mUiContext != null ? mUiContext : mContext;
+
+ mSimUnlockProgressDialog = new ProgressDialog(uiContext);
mSimUnlockProgressDialog.setMessage(
mContext.getString(R.string.lockscreen_sim_unlock_progress_dialog_message));
mSimUnlockProgressDialog.setIndeterminate(true);