diff options
6 files changed, 30 insertions, 12 deletions
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAccountView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAccountView.java index ba695acd58a8..ebca4acd0eac 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAccountView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAccountView.java @@ -84,6 +84,9 @@ public class KeyguardAccountView extends LinearLayout implements KeyguardSecurit protected void onFinishInflate() { super.onFinishInflate(); + // We always set a dummy NavigationManager to avoid null checks + mSecurityMessageDisplay = new KeyguardNavigationManager(null); + mLogin = (EditText) findViewById(R.id.login); mLogin.setFilters(new InputFilter[] { new LoginFilter.UsernameFilterGeneric() } ); mLogin.addTextChangedListener(this); @@ -315,7 +318,8 @@ public class KeyguardAccountView extends LinearLayout implements KeyguardSecurit @Override public void setSecurityMessageDisplay(SecurityMessageDisplay display) { - mSecurityMessageDisplay = display; + mSecurityMessageDisplay = display; + reset(); } } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardNavigationManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardNavigationManager.java index 8dc38e7e1bfc..cec2668ff23e 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardNavigationManager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardNavigationManager.java @@ -23,16 +23,20 @@ public class KeyguardNavigationManager implements SecurityMessageDisplay { private TextView mMessageArea; public KeyguardNavigationManager(TextView messageArea) { - mMessageArea = messageArea; - mMessageArea.setSelected(true); // Make marquee work + if (messageArea != null) { + mMessageArea = messageArea; + mMessageArea.setSelected(true); // Make marquee work + } } public void setMessage(CharSequence msg, boolean important) { + if (mMessageArea == null) return; mMessageArea.setText(msg); mMessageArea.announceForAccessibility(mMessageArea.getText()); } public void setMessage(int resId, boolean important) { + if (mMessageArea == null) return; if (resId != 0) { mMessageArea.setText(resId); mMessageArea.announceForAccessibility(mMessageArea.getText()); @@ -42,6 +46,7 @@ public class KeyguardNavigationManager implements SecurityMessageDisplay { } public void setMessage(int resId, boolean important, Object... formatArgs) { + if (mMessageArea == null) return; if (resId != 0) { mMessageArea.setText(mMessageArea.getContext().getString(resId, formatArgs)); mMessageArea.announceForAccessibility(mMessageArea.getText()); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java index 8df6f8e6c10d..3b37d563149b 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java @@ -109,6 +109,9 @@ public class KeyguardPasswordView extends LinearLayout @Override protected void onFinishInflate() { + // We always set a dummy NavigationManager to avoid null checks + mSecurityMessageDisplay = new KeyguardNavigationManager(null); + mLockPatternUtils = new LockPatternUtils(mContext); // TODO: use common one final int quality = mLockPatternUtils.getKeyguardStoredPasswordQuality(); @@ -366,10 +369,10 @@ public class KeyguardPasswordView extends LinearLayout public void afterTextChanged(Editable s) { } - @Override public void setSecurityMessageDisplay(SecurityMessageDisplay display) { - mSecurityMessageDisplay = display; + mSecurityMessageDisplay = display; + reset(); } } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java index 73614813a3ca..79dc2d24f4b9 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java @@ -111,6 +111,9 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit protected void onFinishInflate() { super.onFinishInflate(); + // We always set a dummy NavigationManager to avoid null checks + mSecurityMessageDisplay = new KeyguardNavigationManager(null); + mLockPatternUtils = mLockPatternUtils == null ? new LockPatternUtils(mContext) : mLockPatternUtils; @@ -371,7 +374,8 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit @Override public void setSecurityMessageDisplay(SecurityMessageDisplay display) { - mSecurityMessageDisplay = display; + mSecurityMessageDisplay = display; + reset(); } } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java index 31ae8fae4c3a..7878e461313a 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java @@ -76,6 +76,9 @@ public class KeyguardSimPinView extends LinearLayout protected void onFinishInflate() { super.onFinishInflate(); + // We always set a dummy NavigationManager to avoid null checks + mSecurityMessageDisplay = new KeyguardNavigationManager(null); + mPinEntry = (EditText) findViewById(R.id.sim_pin_entry); mPinEntry.setOnEditorActionListener(this); mPinEntry.addTextChangedListener(this); @@ -110,9 +113,7 @@ public class KeyguardSimPinView extends LinearLayout public void reset() { // start fresh - if (mSecurityMessageDisplay != null) { - mSecurityMessageDisplay.setMessage(R.string.kg_sim_pin_instructions, true); - } + mSecurityMessageDisplay.setMessage(R.string.kg_sim_pin_instructions, true); // make sure that the number of entered digits is consistent when we // erase the SIM unlock code, including orientation changes. diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java index 4c0d3b71b530..c0eb3819a230 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java @@ -107,9 +107,7 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList mPinText=""; mPukText=""; state = ENTER_PUK; - if (mSecurityMessageDisplay != null) { - mSecurityMessageDisplay.setMessage(R.string.kg_puk_enter_puk_hint, true); - } + mSecurityMessageDisplay.setMessage(R.string.kg_puk_enter_puk_hint, true); mSimPinEntry.requestFocus(); } } @@ -132,6 +130,9 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList protected void onFinishInflate() { super.onFinishInflate(); + // We always set a dummy NavigationManager to avoid null checks + mSecurityMessageDisplay = new KeyguardNavigationManager(null); + mSimPinEntry = (TextView) findViewById(R.id.sim_pin_entry); mSimPinEntry.setOnEditorActionListener(this); mSimPinEntry.addTextChangedListener(this); |