diff options
author | 2024-12-16 21:45:41 -0500 | |
---|---|---|
committer | 2025-01-11 14:17:35 -0500 | |
commit | e9a0e66716dab4dd3184d009d8920de1961efdfa (patch) | |
tree | 02dcc096643d74645bf28459c2834c3d4a2ad7f2 /java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java | |
parent | fb3b9360d70596d7e921de8bf7d3ca99564a077e (diff) | |
download | latinime-e9a0e66716dab4dd3184d009d8920de1961efdfa.tar.gz latinime-e9a0e66716dab4dd3184d009d8920de1961efdfa.tar.xz latinime-e9a0e66716dab4dd3184d009d8920de1961efdfa.zip |
Rename to Kelar Keyboard (org.kelar.inputmethod.latin)
Diffstat (limited to 'java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java deleted file mode 100644 index cbaf6ea4e..000000000 --- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.inputmethod.latin; - -import java.util.Locale; -import java.util.concurrent.TimeUnit; - -import android.content.Context; -import android.util.Log; - -/** - * Cache for dictionary facilitators of multiple locales. - * This class automatically creates and releases up to 3 facilitator instances using LRU policy. - */ -public class DictionaryFacilitatorLruCache { - private static final String TAG = "DictionaryFacilitatorLruCache"; - private static final int WAIT_FOR_LOADING_MAIN_DICT_IN_MILLISECONDS = 1000; - private static final int MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT = 5; - - private final Context mContext; - private final String mDictionaryNamePrefix; - private final Object mLock = new Object(); - private final DictionaryFacilitator mDictionaryFacilitator; - private boolean mUseContactsDictionary; - private Locale mLocale; - - public DictionaryFacilitatorLruCache(final Context context, final String dictionaryNamePrefix) { - mContext = context; - mDictionaryNamePrefix = dictionaryNamePrefix; - mDictionaryFacilitator = DictionaryFacilitatorProvider.getDictionaryFacilitator( - true /* isNeededForSpellChecking */); - } - - private static void waitForLoadingMainDictionary( - final DictionaryFacilitator dictionaryFacilitator) { - for (int i = 0; i < MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT; i++) { - try { - dictionaryFacilitator.waitForLoadingMainDictionaries( - WAIT_FOR_LOADING_MAIN_DICT_IN_MILLISECONDS, TimeUnit.MILLISECONDS); - return; - } catch (final InterruptedException e) { - Log.i(TAG, "Interrupted during waiting for loading main dictionary.", e); - if (i < MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT - 1) { - Log.i(TAG, "Retry", e); - } else { - Log.w(TAG, "Give up retrying. Retried " - + MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT + " times.", e); - } - } - } - } - - private void resetDictionariesForLocaleLocked() { - // Nothing to do if the locale is null. This would be the case before any get() calls. - if (mLocale != null) { - // Note: Given that personalized dictionaries are not used here; we can pass null account. - mDictionaryFacilitator.resetDictionaries(mContext, mLocale, - mUseContactsDictionary, false /* usePersonalizedDicts */, - false /* forceReloadMainDictionary */, null /* account */, - mDictionaryNamePrefix, null /* listener */); - } - } - - public void setUseContactsDictionary(final boolean useContactsDictionary) { - synchronized (mLock) { - if (mUseContactsDictionary == useContactsDictionary) { - // The value has not been changed. - return; - } - mUseContactsDictionary = useContactsDictionary; - resetDictionariesForLocaleLocked(); - waitForLoadingMainDictionary(mDictionaryFacilitator); - } - } - - public DictionaryFacilitator get(final Locale locale) { - synchronized (mLock) { - if (!mDictionaryFacilitator.isForLocale(locale)) { - mLocale = locale; - resetDictionariesForLocaleLocked(); - } - waitForLoadingMainDictionary(mDictionaryFacilitator); - return mDictionaryFacilitator; - } - } - - public void closeDictionaries() { - synchronized (mLock) { - mDictionaryFacilitator.closeDictionaries(); - } - } -} |