OSDN Git Service

Retry "Always show auxiliary subtypes from NavBar keyboard icon."
authorSeigo Nonaka <nona@gogole.com>
Thu, 7 May 2015 04:04:13 +0000 (21:04 -0700)
committerYohei Yukawa <yukawa@google.com>
Thu, 7 May 2015 04:34:07 +0000 (21:34 -0700)
commit14e139179be7daab6ed452105387a3922752c219
tree67bb61296b49a2e56d30c617c8756b1d329c89ff
parent9132c5ab0746f56909ed5630a6e93c9fadefabd0
Retry "Always show auxiliary subtypes from NavBar keyboard icon."

This CL relands I1e50ee42838a1bf64a612da4904aa93458d44ea4, which was
reverted by I3decaf37198e5864a1763a059df4a36ebc70c5a7 due to the build
breakage in 'layoutlib' target, with a proper fix.

Hereafter the original CL description is repeated.

The auxiliary subtypes should be listed if the input method picker is
opened from NavBar keyboard icon.  However there is only
IMM#showInputMethodPicker() API to open input method picker and this is
also used from LockScreen or Settings UI.  Auxiliary subtypes should not
be listed there(Id7cf5d122).  Thus framework shows auxiliary subtypes
based on IMMS#mInputShown and LockScreen state, but it is not a perfect
solution.  If a physical keyboard is connected, the soft input may be
gone.  As the result, auxiliary subtypes won't be listed even if it is
opened from NavBar keyboard icon.

To fix this issue, this CL introduces IMM#showInputMethodPicker(boolean)
to be able to decide showing auxiliary subtypes by caller.
Note that IMM#showInputMethodPicker(boolean) is still hidden with @hide.
There is no public API change in this CL.

Bug: 20763994
Change-Id: Id156c85535a221235737ea6dcc15a67f1c4b9f71
core/java/android/view/inputmethod/InputMethodManager.java
core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
core/java/com/android/internal/view/IInputMethodManager.aidl
packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
services/core/java/com/android/server/InputMethodManagerService.java
tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java