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

Commit 43a8a0c5 authored by Jean Chalard's avatar Jean Chalard
Browse files

Fallback on empty locales.

This is a very rare corner case.

Bug: 11072132
Change-Id: Iad2aa69511f7dc99105284a049c63f2f997b8ef0
parent 14d31d46
Loading
Loading
Loading
Loading
+18 −2
Original line number Original line Diff line number Diff line
@@ -605,8 +605,24 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
    }
    }


    private void initSuggest() {
    private void initSuggest() {
        final Locale subtypeLocale = mSubtypeSwitcher.getCurrentSubtypeLocale();
        final Locale switcherSubtypeLocale = mSubtypeSwitcher.getCurrentSubtypeLocale();
        final String localeStr = subtypeLocale.toString();
        final String switcherLocaleStr = switcherSubtypeLocale.toString();
        final Locale subtypeLocale;
        final String localeStr;
        if (TextUtils.isEmpty(switcherLocaleStr)) {
            // This happens in very rare corner cases - for example, immediately after a switch
            // to LatinIME has been requested, about a frame later another switch happens. In this
            // case, we are about to go down but we still don't know it, however the system tells
            // us there is no current subtype so the locale is the empty string. Take the best
            // possible guess instead -- it's bound to have no consequences, and we have no way
            // of knowing anyway.
            Log.e(TAG, "System is reporting no current subtype.");
            subtypeLocale = getResources().getConfiguration().locale;
            localeStr = subtypeLocale.toString();
        } else {
            subtypeLocale = switcherSubtypeLocale;
            localeStr = switcherLocaleStr;
        }


        final Suggest newSuggest = new Suggest(this /* Context */, subtypeLocale,
        final Suggest newSuggest = new Suggest(this /* Context */, subtypeLocale,
                this /* SuggestInitializationListener */);
                this /* SuggestInitializationListener */);