Merge "Fix 2575838: Update emergency button in AccountUnlockScreen DO NOT MERGE" into froyo
diff --git a/phone/com/android/internal/policy/impl/AccountUnlockScreen.java b/phone/com/android/internal/policy/impl/AccountUnlockScreen.java
index 9921069..cb88916 100644
--- a/phone/com/android/internal/policy/impl/AccountUnlockScreen.java
+++ b/phone/com/android/internal/policy/impl/AccountUnlockScreen.java
@@ -29,7 +29,6 @@
 import android.content.Intent;
 import android.content.res.Configuration;
 import android.graphics.Rect;
-import android.telephony.TelephonyManager;
 import android.text.Editable;
 import android.text.InputFilter;
 import android.text.LoginFilter;
@@ -65,6 +64,7 @@
 
     private final KeyguardScreenCallback mCallback;
     private final LockPatternUtils mLockPatternUtils;
+    private KeyguardUpdateMonitor mUpdateMonitor;
 
     private TextView mTopHeader;
     private TextView mInstructions;
@@ -81,9 +81,11 @@
     /**
      * AccountUnlockScreen constructor.
      * @param configuration
+     * @param updateMonitor
      */
     public AccountUnlockScreen(Context context,Configuration configuration,
-            KeyguardScreenCallback callback, LockPatternUtils lockPatternUtils) {
+            KeyguardUpdateMonitor updateMonitor, KeyguardScreenCallback callback,
+            LockPatternUtils lockPatternUtils) {
         super(context);
         mCallback = callback;
         mLockPatternUtils = lockPatternUtils;
@@ -111,6 +113,9 @@
         mEmergencyCall = (Button) findViewById(R.id.emergencyCall);
         mEmergencyCall.setOnClickListener(this);
         mLockPatternUtils.updateEmergencyCallButtonState(mEmergencyCall);
+
+        mUpdateMonitor = updateMonitor;
+        mUpdateMonitor.registerInfoCallback(this);
     }
 
     public void afterTextChanged(Editable s) {
@@ -154,6 +159,7 @@
         if (mCheckingDialog != null) {
             mCheckingDialog.hide();
         }
+        mUpdateMonitor.removeCallback(this);
     }
 
     /** {@inheritDoc} */
diff --git a/phone/com/android/internal/policy/impl/LockPatternKeyguardView.java b/phone/com/android/internal/policy/impl/LockPatternKeyguardView.java
index c1b14c4..27706ef 100644
--- a/phone/com/android/internal/policy/impl/LockPatternKeyguardView.java
+++ b/phone/com/android/internal/policy/impl/LockPatternKeyguardView.java
@@ -601,6 +601,7 @@
                 unlockView = new AccountUnlockScreen(
                         mContext,
                         mConfiguration,
+                        mUpdateMonitor,
                         mKeyguardScreenCallback,
                         mLockPatternUtils);
             } catch (IllegalStateException e) {