Hide ime switch icon when there are only one IME and no enabled subtypes

Change-Id: I4684d852cc61db125538e1255fd99fa55d60d593
This commit is contained in:
satok
2010-12-14 13:58:49 +09:00
parent 4e47e716d6
commit a84b8d94fb

View File

@@ -157,6 +157,17 @@ public class InputMethodButton extends ImageView {
return null;
}
// Display IME switcher icon only when all of the followings are true:
// * There is only one enabled IME on the device. (Note that the IME should be the system IME)
// * There are no explicitly enabled (by the user) subtypes of the IME, or the IME doesn't have
// its subtypes at all
private boolean needsToShowIMEButton() {
List<InputMethodInfo> imis = mImm.getInputMethodList();
final int size = imis.size();
return size > 1
|| (size == 1 && mImm.getEnabledInputMethodSubtypeList(imis.get(0)).size() > 1);
}
private void refreshStatusIcon(boolean keyboardShown) {
if (!keyboardShown) {
setVisibility(View.INVISIBLE);
@@ -187,7 +198,7 @@ public class InputMethodButton extends ImageView {
public void setIMEButtonVisible(IBinder token, boolean visible) {
mToken = token;
mKeyboardShown = visible;
mKeyboardShown = visible ? needsToShowIMEButton() : false;
refreshStatusIcon(mKeyboardShown);
}
}