Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a84b8d94 authored by satok's avatar satok
Browse files

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

Change-Id: I4684d852cc61db125538e1255fd99fa55d60d593
parent 4e47e716
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -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);
    }
}