Permalink
Browse files

Fix 2575838: Update emergency button in AccountUnlockScreen DO NOT MERGE

AccountUnlockScreen wasn't registered to receive updates from
UpdateMonitor.  It now correctly updates the Emergency call button
to allow the user to return to the call in progress (InCallScreen).

Tested on WVGA device with keyboard:
- hitting Home during call, observing state, and pressing button to return to call.
- hitting Home while not in call to ensure it still invokes EmergencyDialer.
- above in various keyboard states.

Marked DO NOT MERGE since this will require manual merge to master due to framework restructuring.

Change-Id: Idf6bb25438336616e6453e7afe0e79f227af98d3
  • Loading branch information...
1 parent eeb2497 commit d1ecfc2de1059504cfbe35eebe42c4cda8461af6 Jim Miller committed Apr 12, 2010
@@ -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 @@ public AccountUnlockScreen(Context context,Configuration configuration,
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 @@ public void cleanUp() {
if (mCheckingDialog != null) {
mCheckingDialog.hide();
}
+ mUpdateMonitor.removeCallback(this);
}
/** {@inheritDoc} */
@@ -601,6 +601,7 @@ View createUnlockScreenFor(UnlockMode unlockMode) {
unlockView = new AccountUnlockScreen(
mContext,
mConfiguration,
+ mUpdateMonitor,
mKeyguardScreenCallback,
mLockPatternUtils);
} catch (IllegalStateException e) {

0 comments on commit d1ecfc2

Please sign in to comment.