History log of /frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b1e2f4fc3a7b6676aa2c19f470338d6d57ff0ce6 11-Apr-2016 Yohei Yukawa <yukawa@google.com> Shift+Meta+Space should reverse-rotate subtypes part 2.

This CL adds JavaDoc to clarify what previous CL [1] wanted to do.
No behavior change is intended in this CL.

[1]: I3694edd80be6dfe18b90360e24ae4d451b331928
d39ae854820edebe3f1cb8580117c451ffa5c4ec

Bug: 25753404
Bug: 28103839
Change-Id: I246223c0856382d68323f22987b998cd1613e98c
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
d39ae854820edebe3f1cb8580117c451ffa5c4ec 11-Apr-2016 Yohei Yukawa <yukawa@google.com> Shift+Meta+Space should reverse-rotate subtypes.

This is a follow up CL to my previous CL [1], which added a new key
binding Meta+Space to rotate enabled IME subtypes. With this CL,
Shift+Meta+Space starts reverse-rotating enabled IME subtypes as
originally planed.

[1]: I4005692215edfcf8bed3e86b1e07000148f986f5
ae61f7118a92e097e854c840d5726c0920f5db0e

Bug: 25753404
Bug: 28103839
Change-Id: I3694edd80be6dfe18b90360e24ae4d451b331928
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
7025964d1230e4fc064658e1911fea9aab3def68 10-Dec-2015 Yohei Yukawa <yukawa@google.com> Apply Java 7 diamond operator.

This is a mechanical refactoring to apply Java 7 diamond operators in
InputMethodSubtypeSwitchingController.java.

Bug: 22859862
Change-Id: If80df0bcf0b1485c43d55ff51cab69c8ae211eb2
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
e512f85002379c5949f65daeffdcae3198964dad 10-Dec-2015 Yohei Yukawa <yukawa@google.com> Remove a redundant method overload.

Bug: 22859862
Change-Id: I4e91b2d7f2da7716ae5a34125a29db5e1ad5a983
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
5f8e731f18c5cbfd345236c691db0b09aceb7c5d 10-Dec-2015 Yohei Yukawa <yukawa@google.com> Remove unnecessary parameter that is always true.

This is a mechanical refactoring that removes an unnecessary parameter
that is always specified to 'true'.

No behavior change is intended.

Bug: 22859862
Change-Id: If3aef8209a355af1432ca2600bcc3a0027a6c24c
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
d724886cc13990ebcf55134455ef0fa223054ae8 04-Jun-2015 Yohei Yukawa <yukawa@google.com> Include InputMethodSubtypeSwitchingController in state dump.

In order to diagnose IME issues in multi-user / multi-profile
environment, internal state of
InputMethodSubtypeSwitchingController needs to be included in
the bugreport.

Bug: 19340792
Bug: 19587437
Bug: 21612582
Change-Id: I34aca2c1a4330ec08b5e40441e631809a8bb844e
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
14e139179be7daab6ed452105387a3922752c219 07-May-2015 Seigo Nonaka <nona@gogole.com> 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
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
d130bdc462b163f9afcaf144b477be80959e04d6 07-May-2015 Bart Sears <bsears@google.com> Revert "Always show auxiliary subtypes from NavBar keyboard icon."

CL is breaking the build. Discussed with Seigo and verting until he can take a look at it.

This reverts commit 80ff4ed6bb8dbdad7192d679a01096aa888e090b.

Change-Id: I3decaf37198e5864a1763a059df4a36ebc70c5a7
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
80ff4ed6bb8dbdad7192d679a01096aa888e090b 04-May-2015 Seigo Nonaka <nona@google.com> Always show auxiliary subtypes from NavBar keyboard icon.

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: I1e50ee42838a1bf64a612da4904aa93458d44ea4
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
71cf0a32d0d9a45653704a671154f26a8bc3132b 24-Jul-2014 Yohei Yukawa <yukawa@google.com> Stop assuming language part in locale string is up to 2-letter

With this CL, InputMethodSubtypeSwitchingController stop
assuming that language part in locale string is up to 2-letter.

this CL is not so risky because
InputMethodSubtypeSwitchingController have used language part for
nothing but sorting subtypes to determine the initial rotation
order of IME switching.

BUG: 16502987
Change-Id: Ib159ece0b7aa04f8fd7abc96c9a6e0832a4b7cd2
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
0297051162193ef2b7d906409868e404f77e4c31 05-Jun-2014 Yohei Yukawa <yukawa@google.com> Trivial method renaming for notifyTextCommitted

This CL does not change existing behavior but only renames
notifyTextCommitted with notifyUserAction so that we can use
not only text commit but also other actions such as just typing
a character will be used as a trigger to update the IME
rotation order for better IME switching experience.

BUG: 7043015
Change-Id: I7f3e13a7226ef0dceee82b67e8a0d8536f7e9807
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
07bd732034fbf4ce0e51b99c7199edf20dff1565 02-Jun-2014 Yohei Yukawa <yukawa@google.com> Reenable DynamicRotationList for language-switching-aware IMEs

In order to reenable DynamicRotationList for
language-switching-aware IMEs, this CL reverts
I84291fd4a7d6192b3bd0c366c49 with fixing a bug that the dynamic
rotation state is reset even when the list of input methods is
not changed.

With this CL, the dynamic rotation state is preserved when the
enabled input methods is not changed actually.

BUG: 7043015
Change-Id: I506828c7a363e79f1c767eeb28f0d3746ff1cb0d
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
529001f06761205bcaae1570d81556be397f56fb 27-May-2014 Yohei Yukawa <yukawa@google.com> Switch back to StaticRotationList from DynamicRotationList

Ic005b94379f9d847ea, which introduced DynamicRotationList for
smarter input method rotation, is suspected to be causing a
strange behavior that InputMethodManager#switchToNextInputMethod
is choosing unexected/disabled IME/subtype.

With this CL, we switch back to StaticRotationList until the root
cause is addressed.

BUG: 7043015
Change-Id: I95fc8b28536cea6d09ea325e0caee14007cfc0a7
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
a9bda774276f1c5a1fc6fd67a7782a06e696be8f 23-May-2014 Yohei Yukawa <yukawa@google.com> Implement dynamic IME rotation based on user action

With this CL, the IME rotation order will be updated dynamically
based on user actions on IMEs. Currently only onCommitText is
took into considered.

Imagine that we have the following rotation order.
[A, B, C, D, E]
If a user action for C is observed, the rotation order will be
updated as follows:
[C, A, B, D, E]
Then another user action for D updates the rotation order as
follows:
[D, C, A, B, E]

BUG: 7043015
Change-Id: Ic005b94379f9d847ea87046473ed77d8018d930e
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
9b29d04565e1faf0a49054f538ed1881cb24fe12 22-May-2014 Yohei Yukawa <yukawa@google.com> Consolidate the language-switching logic

This CL does not change the existing behavior.
In I84291fd4a7d6192b, the IME rotation group is logically
devided into two groups, one is for IMEs that are declared as
supportsSwitchingToNextInputMethod == true, and the other is
IMEs that are not declared so. The problem is that the logic
was implemented with a single ime/subtype list where these two
kinds of IMEs are completely mixed. This makes the code
unnecessarily complex.
With this CL, these two rotation groups are actually managed
as two different collections separately. This allows us to
simplify the rotation logic as well as its test cases.
This CL is also a groundwork to implement smarter
language-switching logic that is applied to
language-switching-aware IMEs only.

BUG: 7043015
Change-Id: I7f08ec299ec41d614e2cd3912320687db1576e80
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
4fae8e165b3e10d8365ab9c08b13704d57e119c7 22-May-2014 Yohei Yukawa <yukawa@google.com> Merge "Remove unnecessary internal lock"
5a647b69be8ac8d40c33ed9abe63e41514699e5b 21-May-2014 Yohei Yukawa <yukawa@google.com> Remove unnecessary internal lock

Previously, InputMethodSubtypeSwitchingController has relied on
its own internal lock for #getNextInputMethod and
class has to be invalidated whenever
InputMethodManagerService#mMethodMap is updated, any method of
InputMethodSubtypeSwitchingController should be called under
the global lock of InputMethodManagerService#mMethodMap.

As a consequence, we can conclude that
InputMethodSubtypeSwitchingController does not need its own
internal lock.

This CL also adds additional synchronization blocks into
the constructor of InputMethodManagerService to address the
existing inconsistency that methods with *Locked suffix are
called without the lock actually.

BUG: 7043015
Change-Id: I9d4d3d7232c984432185c10c13fb726a6158cac8
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
1c63079b55cbb161ec6bed731a751943e6ac5736 22-May-2014 Yohei Yukawa <yukawa@google.com> Overrides ImeSubtypeListItem#toString

This makes it easy to debug.

BUG: 7043015
Change-Id: Ic389fc20d417c01196e06046f5259ad56a7aca6c
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
4013940b62ae2227c9b30d8761d7533ee6190a9f 21-May-2014 Yohei Yukawa <yukawa@google.com> Style fix and dead code removal

This CL does not change the existing behavior.
Smarter language switching will be coverted by subsequent CLs.

BUG: 7043015
Change-Id: I281a33191d44be448492c2b74760cb8680719124
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
a1223cfe6f2e04da1ab6e0ad781068687446ee56 01-May-2014 Yohei Yukawa <yukawa@google.com> Take supportsSwitchingToNextInputMethod into considertaion

With this CL, InputMethodManager#switchToNextInputMethod starts
behaving as if there are two rotation groups: one is for the new
input methods that are declared with
supportsSwitchingToNextInputMethod set to true to indicate they
have some language switching UI, and the other is for the other
input methods to preserve the existing behavior.

In addition to the above change, this CL also fixes the behavior
of InputMethodManager#shouldOfferSwitchingToNextInputMethod()
so as to return true if and only if the former rotation group
consists of two or more input methods, as originally designed.

BUG: 12981505
Change-Id: I84291fd4a7d6192b3bd0c366c49586e79135584f
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
d1da11529813f6d3f51518b5fe028e0b8084f5cc 01-May-2014 Yohei Yukawa <yukawa@google.com> Add unit tests for InputMethodSubtypeSwitchingController

This CL adds unit tests for InputMethodSubtypeSwitchingController
as a ground work to make it aware of
supportsSwitchingToNextInputMethod in a subsequent CL.

This CL never changes existing behavior.

BUG: 12981505
Change-Id: I3b2c46c47c7686b811fa248ad549f20875367425
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
f03ba0cacea9f05d60e7b36058efa291b616fc8c 29-Oct-2013 Satoshi Kataoka <satok@google.com> Ignore IME subtype switching support flag until it's ready

Bug: 7043015

Change-Id: Id55f4e23eb0931975c0f80fbd9cb28c2d29ac005
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
d787f6953371c4520bd51d6bf8eccc59f1d0f945 25-Oct-2013 Satoshi Kataoka <satok@google.com> Refactor InputMethodAndSubtypeCircularList

Change-Id: I452bb01d4af7097d214f2c2e7ed58bf1ca9fa219
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java
d7443c83ceae0bdd20d68bf84648cf3b40115d85 15-Oct-2013 Satoshi Kataoka <satok@google.com> Notify commitText event to InputMethodManagerService

for the intelligent subtype switching

Bug: 7043015
Change-Id: I11ed9a767588f8080753cd9bce011dac7db579ad
/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java