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

Commit d437df0a authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi
Browse files

Quit creating empty dictionary file in ExpandableBinaryDictionary.

Bug: 14166482
Change-Id: I7b7a25141851d7bb14744567639d8e5d8f04a036
parent 3b798475
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
import com.android.inputmethod.latin.makedict.WordProperty;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import com.android.inputmethod.latin.utils.AsyncResultHolder;
import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
import com.android.inputmethod.latin.utils.CollectionUtils;
import com.android.inputmethod.latin.utils.CombinedFormatUtils;
import com.android.inputmethod.latin.utils.ExecutorUtils;
@@ -233,24 +232,24 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
        mBinaryDictionary = null;
    }

    private void createBinaryDictionaryLocked() {
        BinaryDictionaryUtils.createEmptyDictFile(mDictFile.getAbsolutePath(),
                DICTIONARY_FORMAT_VERSION, mLocale, getHeaderAttributeMap());
    }

    private void openBinaryDictionaryLocked() {
        mBinaryDictionary = new BinaryDictionary(
                mDictFile.getAbsolutePath(), 0 /* offset */, mDictFile.length(),
                true /* useFullEditDistance */, mLocale, mDictType, true /* isUpdatable */);
    }

    private void createOnMemoryBinaryDictionaryLocked() {
        mBinaryDictionary = new BinaryDictionary(
                mDictFile.getAbsolutePath(), true /* useFullEditDistance */, mLocale, mDictType,
                DICTIONARY_FORMAT_VERSION, getHeaderAttributeMap());
    }

    protected void clear() {
        ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
            @Override
            public void run() {
                removeBinaryDictionaryLocked();
                createBinaryDictionaryLocked();
                openBinaryDictionaryLocked();
                createOnMemoryBinaryDictionaryLocked();
            }
        });
    }
@@ -512,8 +511,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
                    + mDictNameDictionaryUpdateController.mLastUpdateTime);
        }
        removeBinaryDictionaryLocked();
        createBinaryDictionaryLocked();
        openBinaryDictionaryLocked();
        createOnMemoryBinaryDictionaryLocked();
        loadInitialContentsLocked();
        // Run GC and flush to file when initial contents have been loaded.
        mBinaryDictionary.flushWithGCIfHasUpdated();
+1 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ public final class BinaryDictionaryUtils {
        return false;
    }

    @UsedForTesting
    public static boolean createEmptyDictFile(final String filePath, final long dictVersion,
            final Locale locale, final Map<String, String> attributeMap) {
        final String[] keyArray = new String[attributeMap.size()];