IME switcher should not always require IME_VISIBLE.
When one ore more physical keyboards are attached, we should not require
InputMethodService.IME_VISIBLE to show the IME switcher because some
IMEs such as LatinIME shows no software keyboard w/ physical keyboard.
Bug: 26245853
Change-Id: I8aac9f5989ebaf544ace06a3ba0993b3a834869d
diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
index e042483..77b3111 100644
--- a/services/core/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -1715,8 +1715,9 @@
// exists in the IME switcher dialog. Might be OK to remove this condition once
// SHOW_IME_WITH_HARD_KEYBOARD settings finds a good place to live.
return true;
+ } else if ((visibility & InputMethodService.IME_VISIBLE) == 0) {
+ return false;
}
- if ((visibility & InputMethodService.IME_VISIBLE) == 0) return false;
List<InputMethodInfo> imis = mSettings.getEnabledInputMethodListLocked();
final int N = imis.size();