diff options
author | 2013-09-17 02:19:48 -0700 | |
---|---|---|
committer | 2013-09-17 02:19:48 -0700 | |
commit | 2715b01de4e1f6788adbb3ed46a3a462721e4f76 (patch) | |
tree | b304906a3be5d8027366d836be2ad65b9367246d /java/src | |
parent | 7c9542683dd6343a59ddd5ddc6bb21f2d9c8d878 (diff) | |
parent | ac7e005ef0013fdd9af173e7bce968e26100949d (diff) | |
download | latinime-2715b01de4e1f6788adbb3ed46a3a462721e4f76.tar.gz latinime-2715b01de4e1f6788adbb3ed46a3a462721e4f76.tar.xz latinime-2715b01de4e1f6788adbb3ed46a3a462721e4f76.zip |
am ac7e005e: Merge "Prepare dictionary saving in native code."
* commit 'ac7e005ef0013fdd9af173e7bce968e26100949d':
Prepare dictionary saving in native code.
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/BinaryDictionary.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index dae56b52a..709b0a16e 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -19,6 +19,7 @@ package com.android.inputmethod.latin; import android.text.TextUtils; import android.util.SparseArray; +import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.keyboard.ProximityInfo; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.settings.NativeSuggestOptions; @@ -47,6 +48,7 @@ public final class BinaryDictionary extends Dictionary { private long mNativeDict; private final Locale mLocale; private final long mDictSize; + private final String mDictFilePath; private final int[] mInputCodePoints = new int[MAX_WORD_LENGTH]; private final int[] mOutputCodePoints = new int[MAX_WORD_LENGTH * MAX_RESULTS]; private final int[] mSpaceIndices = new int[MAX_RESULTS]; @@ -91,6 +93,7 @@ public final class BinaryDictionary extends Dictionary { super(dictType); mLocale = locale; mDictSize = length; + mDictFilePath = filename; mNativeSuggestOptions.setUseFullEditDistance(useFullEditDistance); loadDictionary(filename, offset, length, isUpdatable); } @@ -101,6 +104,9 @@ public final class BinaryDictionary extends Dictionary { private static native long openNative(String sourceDir, long dictOffset, long dictSize, boolean isUpdatable); + private static native void flushNative(long dict, String filePath); + private static native boolean needsToRunGCNative(long dict); + private static native void flushWithGCNative(long dict, String filePath); private static native void closeNative(long dict); private static native int getProbabilityNative(long dict, int[] word); private static native boolean isValidBigramNative(long dict, int[] word0, int[] word1); @@ -261,6 +267,24 @@ public final class BinaryDictionary extends Dictionary { removeBigramWordsNative(mNativeDict, codePoints0, codePoints1); } + @UsedForTesting + public void flush() { + if (!isValidDictionary()) return; + flushNative(mNativeDict, mDictFilePath); + } + + @UsedForTesting + public void flushWithGC() { + if (!isValidDictionary()) return; + flushWithGCNative(mNativeDict, mDictFilePath); + } + + @UsedForTesting + public boolean needsToRunGC() { + if (!isValidDictionary()) return false; + return needsToRunGCNative(mNativeDict); + } + @Override public boolean shouldAutoCommit(final SuggestedWordInfo candidate) { // TODO: actually use the confidence rather than use this completely broken heuristic |