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

Commit af8139ee authored by satok's avatar satok Committed by Android (Google) Code Review
Browse files

Merge "Fix the behavior for choosing new default IME not to choose an...

Merge "Fix the behavior for choosing new default IME not to choose an auxiliary IME as the default IME"
parents f6497e45 dc9ddaee
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());
            }