summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Wren <cwren@android.com> 2012-11-07 09:12:31 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2012-11-07 09:12:32 -0800
commitcf9ee4c55db750f86fdcb765c4f21c44bb4bc893 (patch)
treec69ea6b34e39bea2bd805cd4b46658b50c78919e
parent6b4ab7f170ea54e5b99cf0635d3803a9407439d7 (diff)
parenta042ac90640c0c3fd3c5349083b86bbfd6319b64 (diff)
Merge "Don't pop the IME for passwors at ScreenOn on tablets." into jb-mr1-lockscreen-dev
-rw-r--r--core/res/res/values-sw600dp/bools.xml1
-rw-r--r--core/res/res/values/bools.xml1
-rw-r--r--core/res/res/values/symbols.xml1
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardAbsKeyInputView.java2
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardAccountView.java2
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java2
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java4
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java15
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java2
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityView.java6
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewFlipper.java4
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java2
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java2
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewStateManager.java2
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();
}