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

Commit 56b4a040 authored by Jean-Baptiste Queru's avatar Jean-Baptiste Queru
Browse files

Reconcile with jb-dev - do not merge

Change-Id: Ie0db4cf684b9f45cdf5a729f3b62adb2128a7c91
parents 4a80d413 f1e13f1f
Loading
Loading
Loading
Loading
+23 −0
Original line number Original line Diff line number Diff line
@@ -16,9 +16,12 @@


package com.android.inputmethod.latin.spellcheck;
package com.android.inputmethod.latin.spellcheck;


import android.content.ContentResolver;
import android.content.Intent;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences;
import android.database.ContentObserver;
import android.preference.PreferenceManager;
import android.preference.PreferenceManager;
import android.provider.UserDictionary.Words;
import android.service.textservice.SpellCheckerService;
import android.service.textservice.SpellCheckerService;
import android.text.TextUtils;
import android.text.TextUtils;
import android.util.Log;
import android.util.Log;
@@ -490,6 +493,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService
        private final AndroidSpellCheckerService mService;
        private final AndroidSpellCheckerService mService;


        private final SuggestionsCache mSuggestionsCache = new SuggestionsCache();
        private final SuggestionsCache mSuggestionsCache = new SuggestionsCache();
        private final ContentObserver mObserver;


        private static class SuggestionsParams {
        private static class SuggestionsParams {
            public final String[] mSuggestions;
            public final String[] mSuggestions;
@@ -516,10 +520,23 @@ public class AndroidSpellCheckerService extends SpellCheckerService
                }
                }
                mUnigramSuggestionsInfoCache.put(query, new SuggestionsParams(suggestions, flags));
                mUnigramSuggestionsInfoCache.put(query, new SuggestionsParams(suggestions, flags));
            }
            }

            public void clearCache() {
                mUnigramSuggestionsInfoCache.evictAll();
            }
        }
        }


        AndroidSpellCheckerSession(final AndroidSpellCheckerService service) {
        AndroidSpellCheckerSession(final AndroidSpellCheckerService service) {
            mService = service;
            mService = service;
            final ContentResolver cres = service.getContentResolver();

            mObserver = new ContentObserver(null) {
                @Override
                public void onChange(boolean self) {
                    mSuggestionsCache.clearCache();
                }
            };
            cres.registerContentObserver(Words.CONTENT_URI, true, mObserver);
        }
        }


        @Override
        @Override
@@ -530,6 +547,12 @@ public class AndroidSpellCheckerService extends SpellCheckerService
            mScript = getScriptFromLocale(mLocale);
            mScript = getScriptFromLocale(mLocale);
        }
        }


        @Override
        public void onClose() {
            final ContentResolver cres = mService.getContentResolver();
            cres.unregisterContentObserver(mObserver);
        }

        /*
        /*
         * Returns whether the code point is a letter that makes sense for the specified
         * Returns whether the code point is a letter that makes sense for the specified
         * locale for this spell checker.
         * locale for this spell checker.