summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author satok <satok@google.com> 2011-11-17 18:03:46 -0800
committer Android Git Automerger <android-git-automerger@android.com> 2011-11-17 18:03:46 -0800
commit852b589a51531f8f7a166f36f7596c255896f35c (patch)
tree7f6c860abf5bb094ddf82cdfbe216445fd541b7d
parenta8606cf661fde3300165f181c5825cf0535adc66 (diff)
parent1a3c051bcc787363d9154da4a8e8e562dda32926 (diff)
am 1a3c051b: Merge "Hide/show ime switch icon properly" into ics-mr1
* commit '1a3c051bcc787363d9154da4a8e8e562dda32926': Hide/show ime switch icon properly
-rw-r--r--services/java/com/android/server/InputMethodManagerService.java27
1 files changed, 17 insertions, 10 deletions
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java
index ddac35c5d533..f5c4ed46c411 100644
--- a/services/java/com/android/server/InputMethodManagerService.java
+++ b/services/java/com/android/server/InputMethodManagerService.java
@@ -382,6 +382,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
mScreenOn = true;
+ refreshImeWindowVisibilityLocked();
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
mScreenOn = false;
setImeWindowVisibilityStatusHiddenLocked();
@@ -640,6 +641,21 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
updateImeWindowStatusLocked();
}
+ private void refreshImeWindowVisibilityLocked() {
+ final Configuration conf = mRes.getConfiguration();
+ final boolean haveHardKeyboard = conf.keyboard
+ != Configuration.KEYBOARD_NOKEYS;
+ final boolean hardKeyShown = haveHardKeyboard
+ && conf.hardKeyboardHidden
+ != Configuration.HARDKEYBOARDHIDDEN_YES;
+ final boolean isScreenLocked = mKeyguardManager != null
+ && mKeyguardManager.isKeyguardLocked()
+ && mKeyguardManager.isKeyguardSecure();
+ mImeWindowVis = (!isScreenLocked && (mInputShown || hardKeyShown)) ?
+ (InputMethodService.IME_ACTIVE | InputMethodService.IME_VISIBLE) : 0;
+ updateImeWindowStatusLocked();
+ }
+
private void updateImeWindowStatusLocked() {
setImeWindowStatus(mCurToken, mImeWindowVis, mBackDisposition);
}
@@ -1285,16 +1301,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
}
if (mCurMethod != null) {
try {
- final Configuration conf = mRes.getConfiguration();
- final boolean haveHardKeyboard = conf.keyboard
- != Configuration.KEYBOARD_NOKEYS;
- final boolean hardKeyShown = haveHardKeyboard
- && conf.hardKeyboardHidden
- != Configuration.HARDKEYBOARDHIDDEN_YES;
- mImeWindowVis = (mInputShown || hardKeyShown) ? (
- InputMethodService.IME_ACTIVE | InputMethodService.IME_VISIBLE)
- : 0;
- updateImeWindowStatusLocked();
+ refreshImeWindowVisibilityLocked();
// If subtype is null, try to find the most applicable one from
// getCurrentInputMethodSubtype.
if (subtype == null) {