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

Commit dc9ddaee authored by satok's avatar satok
Browse files

Fix the behavior for choosing new default IME not to choose an auxiliary IME as the default IME

Bug: 5420127

Change-Id: I3649de36806fc24e1c85c2b15db5e37acad1f120
parent 2e12977a
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -574,7 +574,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
                }
            }
            if (defIm == null && mMethodList.size() > 0) {
                defIm = mMethodList.get(0);
                defIm = getMostApplicableDefaultIMELocked();
                Slog.i(TAG, "No default found, using " + defIm.getId());
            }
            if (defIm != null) {
@@ -1925,19 +1925,26 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
        return subtypes;
    }

    private boolean chooseNewDefaultIMELocked() {
    private InputMethodInfo getMostApplicableDefaultIMELocked() {
        List<InputMethodInfo> enabled = mSettings.getEnabledInputMethodListLocked();
        if (enabled != null && enabled.size() > 0) {
            // We'd prefer to fall back on a system IME, since that is safer.
            int i=enabled.size();
            while (i > 0) {
                i--;
                if ((enabled.get(i).getServiceInfo().applicationInfo.flags
                        & ApplicationInfo.FLAG_SYSTEM) != 0) {
                final InputMethodInfo imi = enabled.get(i);
                if (isSystemIme(imi) && !imi.isAuxiliaryIme()) {
                    break;
                }
            }
            InputMethodInfo imi = enabled.get(i);
            return enabled.get(i);
        }
        return null;
    }

    private boolean chooseNewDefaultIMELocked() {
        final InputMethodInfo imi = getMostApplicableDefaultIMELocked();
        if (imi != null) {
            if (DEBUG) {
                Slog.d(TAG, "New default IME was selected: " + imi.getId());
            }