diff options
Diffstat (limited to 'policy/src/com/android/internal/policy/impl/SimUnlockScreen.java')
-rw-r--r-- | policy/src/com/android/internal/policy/impl/SimUnlockScreen.java | 23 |
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); |