diff --git a/core/res/res/values-sw600dp/bools.xml b/core/res/res/values-sw600dp/bools.xml index 00f45c1512a2b..ddc48c575381c 100644 --- a/core/res/res/values-sw600dp/bools.xml +++ b/core/res/res/values-sw600dp/bools.xml @@ -19,6 +19,7 @@ true false false + false false true diff --git a/core/res/res/values/bools.xml b/core/res/res/values/bools.xml index 457131a4f84a8..18e4f2f9b3a82 100644 --- a/core/res/res/values/bools.xml +++ b/core/res/res/values/bools.xml @@ -18,6 +18,7 @@ true false true + true true false true diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index cd21d80a0baa5..f2e4d5123f528 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1218,6 +1218,7 @@ + diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAbsKeyInputView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAbsKeyInputView.java index 7c769a705b24f..cc520dc856b20 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAbsKeyInputView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAbsKeyInputView.java @@ -215,7 +215,7 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout } @Override - public void onResume() { + public void onResume(int reason) { reset(); } 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 d552b35d4191f..e0e7128c4c5ab 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAccountView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardAccountView.java @@ -314,7 +314,7 @@ public class KeyguardAccountView extends LinearLayout implements KeyguardSecurit } @Override - public void onResume() { + public void onResume(int reason) { reset(); } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java index 6250e5499ca25..de3354ad05fd5 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java @@ -103,7 +103,7 @@ public class KeyguardFaceUnlockView extends LinearLayout implements KeyguardSecu } @Override - public void onResume() { + public void onResume(int reason) { if (DEBUG) Log.d(TAG, "onResume()"); mIsShowing = KeyguardUpdateMonitor.getInstance(mContext).isKeyguardVisible(); maybeStartBiometricUnlock(); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java index d9f7980cf67b6..01d890882fa92 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java @@ -739,7 +739,7 @@ public class KeyguardHostView extends KeyguardViewBase { oldView.onPause(); oldView.setKeyguardCallback(mNullCallback); // ignore requests from old view } - newView.onResume(); + newView.onResume(KeyguardSecurityView.VIEW_REVEALED); newView.setKeyguardCallback(mCallback); final boolean needsInput = newView.needsInput(); @@ -773,7 +773,7 @@ public class KeyguardHostView extends KeyguardViewBase { public void onScreenTurnedOn() { if (DEBUG) Log.d(TAG, "screen on, instance " + Integer.toHexString(hashCode())); showPrimarySecurityScreen(false); - getSecurityView(mCurrentSecuritySelection).onResume(); + getSecurityView(mCurrentSecuritySelection).onResume(KeyguardSecurityView.SCREEN_ON); // This is a an attempt to fix bug 7137389 where the device comes back on but the entire // layout is blank but forcing a layout causes it to reappear (e.g. with with 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 23ea2e9c1c902..d52c993c82d2f 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java @@ -44,14 +44,18 @@ import java.util.List; public class KeyguardPasswordView extends KeyguardAbsKeyInputView implements KeyguardSecurityView, OnEditorActionListener, TextWatcher { + private final boolean mShowImeAtScreenOn; + InputMethodManager mImm; public KeyguardPasswordView(Context context) { - super(context); + this(context, null); } public KeyguardPasswordView(Context context, AttributeSet attrs) { super(context, attrs); + mShowImeAtScreenOn = context.getResources(). + getBoolean(R.bool.kg_show_ime_at_screen_on); } protected void resetState() { @@ -70,11 +74,12 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView } @Override - public void onResume() { - super.onResume(); - // XXX this is still not right because onResume is being called every time the page changes + public void onResume(int reason) { + super.onResume(reason); mPasswordEntry.requestFocus(); - mImm.showSoftInput(mPasswordEntry, InputMethodManager.SHOW_IMPLICIT); + if (reason != KeyguardSecurityView.SCREEN_ON || mShowImeAtScreenOn) { + mImm.showSoftInput(mPasswordEntry, InputMethodManager.SHOW_IMPLICIT); + } } @Override 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 186d717347ba8..67469d9143251 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java @@ -384,7 +384,7 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit } @Override - public void onResume() { + public void onResume(int reason) { reset(); } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityView.java index 027b16e5fabc6..a3ac39c1b2f0e 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityView.java @@ -18,6 +18,9 @@ package com.android.internal.policy.impl.keyguard; import com.android.internal.widget.LockPatternUtils; public interface KeyguardSecurityView { + static public final int SCREEN_ON = 1; + static public final int VIEW_REVEALED = 2; + /** * Interface back to keyguard to tell it when security * @param callback @@ -45,8 +48,9 @@ public interface KeyguardSecurityView { /** * Emulate activity life cycle within this view. When called, the view should prepare itself * to be shown. + * @param reason the root cause of the event. */ - void onResume(); + void onResume(int reason); /** * Inquire whether this view requires IME (keyboard) interaction. diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewFlipper.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewFlipper.java index f9b1756219e0a..072c688c9fa5d 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewFlipper.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewFlipper.java @@ -107,10 +107,10 @@ public class KeyguardSecurityViewFlipper extends ViewFlipper implements Keyguard } @Override - public void onResume() { + public void onResume(int reason) { KeyguardSecurityView ksv = getSecurityView(); if (ksv != null) { - ksv.onResume(); + ksv.onResume(reason); } } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java index 916741205a93a..062f1ec029573 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java @@ -253,7 +253,7 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri } @Override - public void onResume() { + public void onResume(int reason) { KeyguardUpdateMonitor.getInstance(getContext()).registerCallback(mInfoCallback); } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java index 7100f1c3a6908..34356197f17ce 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java @@ -169,7 +169,7 @@ class KeyguardStatusViewManager implements SecurityMessageDisplay { } /** {@inheritDoc} */ - public void onResume() { + public void onResume(int reason) { if (DEBUG) Log.v(TAG, "onResume()"); // Force-update the time when we show this view. diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewStateManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewStateManager.java index 49483436cdb40..4fdf7d836ba94 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewStateManager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewStateManager.java @@ -218,7 +218,7 @@ public class KeyguardViewStateManager implements updateEdgeSwiping(); if (mChallengeLayout.isChallengeShowing()) { - mKeyguardSecurityContainer.onResume(); + mKeyguardSecurityContainer.onResume(KeyguardSecurityView.VIEW_REVEALED); } else { mKeyguardSecurityContainer.onPause(); }