diff options
| author | 2012-11-07 09:12:31 -0800 | |
|---|---|---|
| committer | 2012-11-07 09:12:32 -0800 | |
| commit | cf9ee4c55db750f86fdcb765c4f21c44bb4bc893 (patch) | |
| tree | c69ea6b34e39bea2bd805cd4b46658b50c78919e | |
| parent | 6b4ab7f170ea54e5b99cf0635d3803a9407439d7 (diff) | |
| parent | a042ac90640c0c3fd3c5349083b86bbfd6319b64 (diff) | |
Merge "Don't pop the IME for passwors at ScreenOn on tablets." into jb-mr1-lockscreen-dev
14 files changed, 29 insertions, 17 deletions
diff --git a/core/res/res/values-sw600dp/bools.xml b/core/res/res/values-sw600dp/bools.xml index 00f45c1512a2..ddc48c575381 100644 --- a/core/res/res/values-sw600dp/bools.xml +++ b/core/res/res/values-sw600dp/bools.xml @@ -19,6 +19,7 @@ <bool name="show_ongoing_ime_switcher">true</bool> <bool name="kg_share_status_area">false</bool> <bool name="kg_sim_puk_account_full_screen">false</bool> + <bool name="kg_show_ime_at_screen_on">false</bool> <!-- No camera for you, tablet user --> <bool name="kg_enable_camera_default_widget">false</bool> <bool name="kg_center_small_widgets_vertically">true</bool> diff --git a/core/res/res/values/bools.xml b/core/res/res/values/bools.xml index 457131a4f84a..18e4f2f9b3a8 100644 --- a/core/res/res/values/bools.xml +++ b/core/res/res/values/bools.xml @@ -18,6 +18,7 @@ <bool name="kg_enable_camera_default_widget">true</bool> <bool name="kg_center_small_widgets_vertically">false</bool> <bool name="kg_top_align_page_shrink_on_bouncer_visible">true</bool> + <bool name="kg_show_ime_at_screen_on">true</bool> <bool name="action_bar_embed_tabs">true</bool> <bool name="action_bar_embed_tabs_pre_jb">false</bool> <bool name="split_action_bar_is_narrow">true</bool> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index cd21d80a0baa..f2e4d5123f52 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1218,6 +1218,7 @@ <java-symbol type="bool" name="kg_top_align_page_shrink_on_bouncer_visible" /> <java-symbol type="bool" name="target_honeycomb_needs_options_menu" /> <java-symbol type="bool" name="kg_center_small_widgets_vertically" /> + <java-symbol type="bool" name="kg_show_ime_at_screen_on" /> <java-symbol type="color" name="kg_multi_user_text_active" /> <java-symbol type="color" name="kg_multi_user_text_inactive" /> <java-symbol type="color" name="kg_widget_pager_gradient" /> 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 7c769a705b24..cc520dc856b2 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 d552b35d4191..e0e7128c4c5a 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 6250e5499ca2..de3354ad05fd 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 d9f7980cf67b..01d890882fa9 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 23ea2e9c1c90..d52c993c82d2 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 186d717347ba..67469d914325 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 027b16e5fabc..a3ac39c1b2f0 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 f9b1756219e0..072c688c9fa5 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 916741205a93..062f1ec02957 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 7100f1c3a690..34356197f17c 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 49483436cdb4..4fdf7d836ba9 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(); } |