Manual merge of Idf6bb25438336616e6453e7afe0e79f227af98d3

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.

Change-Id: Ic4480ff69ff4479557ddb7f76c751b005b1c60bf
This commit is contained in:
Jim Miller
2010-04-15 17:33:43 -07:00
parent 5c14f2d08f
commit ecaced9a78
2 changed files with 9 additions and 2 deletions

View File

@@ -29,7 +29,6 @@ import android.content.Context;
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 @@ public class AccountUnlockScreen extends RelativeLayout implements KeyguardScree
private final KeyguardScreenCallback mCallback;
private final LockPatternUtils mLockPatternUtils;
private KeyguardUpdateMonitor mUpdateMonitor;
private TextView mTopHeader;
private TextView mInstructions;
@@ -81,9 +81,11 @@ public class AccountUnlockScreen extends RelativeLayout implements KeyguardScree
/**
* 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 class AccountUnlockScreen extends RelativeLayout implements KeyguardScree
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 class AccountUnlockScreen extends RelativeLayout implements KeyguardScree
if (mCheckingDialog != null) {
mCheckingDialog.hide();
}
mUpdateMonitor.removeCallback(this);
}
/** {@inheritDoc} */

View File

@@ -601,6 +601,7 @@ public class LockPatternKeyguardView extends KeyguardViewBase {
unlockView = new AccountUnlockScreen(
mContext,
mConfiguration,
mUpdateMonitor,
mKeyguardScreenCallback,
mLockPatternUtils);
} catch (IllegalStateException e) {