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();