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

Commit 769cecf7 authored by Jean Chalard's avatar Jean Chalard
Browse files

Close spell-checking dictionaries in a background thread

Bug: 6584677
Change-Id: Ifd9b0f995f4e0cf4d35a7ecde767826ab976f0b8
parent 69b4e411
Loading
Loading
Loading
Loading
+25 −20
Original line number Diff line number Diff line
@@ -372,6 +372,9 @@ public class AndroidSpellCheckerService extends SpellCheckerService
        mUserDictionaries = Collections.synchronizedMap(new TreeMap<String, Dictionary>());
        final Map<String, Dictionary> oldWhitelistDictionaries = mWhitelistDictionaries;
        mWhitelistDictionaries = Collections.synchronizedMap(new TreeMap<String, Dictionary>());
        new Thread("spellchecker_close_dicts") {
            @Override
            public void run() {
                for (DictionaryPool pool : oldPools.values()) {
                    pool.close();
                }
@@ -387,13 +390,15 @@ public class AndroidSpellCheckerService extends SpellCheckerService
                        // or several pools, but it is shielded against multiple closing and it's
                        // safe to call it several times.
                        final Dictionary dictToClose = mContactsDictionary;
                // TODO: revert to the concrete type when USE_BINARY_CONTACTS_DICTIONARY is no
                // longer needed
                        // TODO: revert to the concrete type when USE_BINARY_CONTACTS_DICTIONARY
                        // is no longer needed
                        mContactsDictionary = null;
                        dictToClose.close();
                    }
                }
            }
        }.start();
    }

    private DictionaryPool getDictionaryPool(final String locale) {
        DictionaryPool pool = mDictionaryPools.get(locale);