mirror of
https://gitlab.futo.org/keyboard/latinime.git
synced 2024-09-28 14:54:30 +01:00
Merge "[HD03] Straighten out attribute key names in Java."
This commit is contained in:
commit
4e6f72cb80
@ -267,9 +267,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
|
||||
|
||||
protected Map<String, String> getHeaderAttributeMap() {
|
||||
HashMap<String, String> attributeMap = new HashMap<String, String>();
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_ID_ATTRIBUTE, mDictName);
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_ATTRIBUTE, mLocale.toString());
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_VERSION_ATTRIBUTE,
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_ID_KEY, mDictName);
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_KEY, mLocale.toString());
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_VERSION_KEY,
|
||||
String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
|
||||
return attributeMap;
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ public abstract class AbstractDictDecoder implements DictDecoder {
|
||||
final FileHeader header = new FileHeader(headerSize,
|
||||
new FusionDictionary.DictionaryOptions(attributes),
|
||||
new FormatOptions(version, FileHeader.ATTRIBUTE_VALUE_TRUE.equals(
|
||||
attributes.get(FileHeader.HAS_HISTORICAL_INFO_ATTRIBUTE))));
|
||||
attributes.get(FileHeader.HAS_HISTORICAL_INFO_KEY))));
|
||||
return header;
|
||||
}
|
||||
|
||||
|
@ -336,16 +336,19 @@ public final class FormatSpec {
|
||||
public final int mBodyOffset;
|
||||
public final DictionaryOptions mDictionaryOptions;
|
||||
public final FormatOptions mFormatOptions;
|
||||
|
||||
// Note that these are corresponding definitions in native code in latinime::HeaderPolicy
|
||||
// and latinime::HeaderReadWriteUtils.
|
||||
public static final String USES_FORGETTING_CURVE_ATTRIBUTE = "USES_FORGETTING_CURVE";
|
||||
public static final String HAS_HISTORICAL_INFO_ATTRIBUTE = "HAS_HISTORICAL_INFO";
|
||||
// TODO: Standardize the key names and bump up the format version, taking care not to
|
||||
// break format version 2 dictionaries.
|
||||
public static final String DICTIONARY_VERSION_KEY = "version";
|
||||
public static final String DICTIONARY_LOCALE_KEY = "locale";
|
||||
public static final String DICTIONARY_ID_KEY = "dictionary";
|
||||
public static final String DICTIONARY_DESCRIPTION_KEY = "description";
|
||||
public static final String DICTIONARY_DATE_KEY = "date";
|
||||
public static final String HAS_HISTORICAL_INFO_KEY = "HAS_HISTORICAL_INFO";
|
||||
public static final String USES_FORGETTING_CURVE_KEY = "USES_FORGETTING_CURVE";
|
||||
public static final String ATTRIBUTE_VALUE_TRUE = "1";
|
||||
|
||||
public static final String DICTIONARY_VERSION_ATTRIBUTE = "version";
|
||||
public static final String DICTIONARY_LOCALE_ATTRIBUTE = "locale";
|
||||
public static final String DICTIONARY_ID_ATTRIBUTE = "dictionary";
|
||||
private static final String DICTIONARY_DESCRIPTION_ATTRIBUTE = "description";
|
||||
public FileHeader(final int headerSize, final DictionaryOptions dictionaryOptions,
|
||||
final FormatOptions formatOptions) throws UnsupportedFormatException {
|
||||
mDictionaryOptions = dictionaryOptions;
|
||||
@ -365,24 +368,24 @@ public final class FormatSpec {
|
||||
|
||||
// Helper method to get the locale as a String
|
||||
public String getLocaleString() {
|
||||
return mDictionaryOptions.mAttributes.get(FileHeader.DICTIONARY_LOCALE_ATTRIBUTE);
|
||||
return mDictionaryOptions.mAttributes.get(FileHeader.DICTIONARY_LOCALE_KEY);
|
||||
}
|
||||
|
||||
// Helper method to get the version String
|
||||
public String getVersion() {
|
||||
return mDictionaryOptions.mAttributes.get(FileHeader.DICTIONARY_VERSION_ATTRIBUTE);
|
||||
return mDictionaryOptions.mAttributes.get(FileHeader.DICTIONARY_VERSION_KEY);
|
||||
}
|
||||
|
||||
// Helper method to get the dictionary ID as a String
|
||||
public String getId() {
|
||||
return mDictionaryOptions.mAttributes.get(FileHeader.DICTIONARY_ID_ATTRIBUTE);
|
||||
return mDictionaryOptions.mAttributes.get(FileHeader.DICTIONARY_ID_KEY);
|
||||
}
|
||||
|
||||
// Helper method to get the description
|
||||
public String getDescription() {
|
||||
// TODO: Right now each dictionary file comes with a description in its own language.
|
||||
// It will display as is no matter the device's locale. It should be internationalized.
|
||||
return mDictionaryOptions.mAttributes.get(FileHeader.DICTIONARY_DESCRIPTION_ATTRIBUTE);
|
||||
return mDictionaryOptions.mAttributes.get(FileHeader.DICTIONARY_DESCRIPTION_KEY);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ public class Ver4DictEncoder implements DictEncoder {
|
||||
final BinaryDictionary binaryDict = new BinaryDictionary(mDictPlacedDir.getAbsolutePath(),
|
||||
0l, mDictPlacedDir.length(), true /* useFullEditDistance */,
|
||||
LocaleUtils.constructLocaleFromString(dict.mOptions.mAttributes.get(
|
||||
FormatSpec.FileHeader.DICTIONARY_LOCALE_ATTRIBUTE)),
|
||||
FormatSpec.FileHeader.DICTIONARY_LOCALE_KEY)),
|
||||
Dictionary.TYPE_USER /* Dictionary type. Does not matter for us */,
|
||||
true /* isUpdatable */);
|
||||
if (!binaryDict.isValidDictionary()) {
|
||||
|
@ -95,13 +95,13 @@ public abstract class DecayingExpandableBinaryDictionaryBase extends ExpandableB
|
||||
@Override
|
||||
protected Map<String, String> getHeaderAttributeMap() {
|
||||
HashMap<String, String> attributeMap = new HashMap<String, String>();
|
||||
attributeMap.put(FormatSpec.FileHeader.USES_FORGETTING_CURVE_ATTRIBUTE,
|
||||
attributeMap.put(FormatSpec.FileHeader.USES_FORGETTING_CURVE_KEY,
|
||||
FormatSpec.FileHeader.ATTRIBUTE_VALUE_TRUE);
|
||||
attributeMap.put(FormatSpec.FileHeader.HAS_HISTORICAL_INFO_ATTRIBUTE,
|
||||
attributeMap.put(FormatSpec.FileHeader.HAS_HISTORICAL_INFO_KEY,
|
||||
FormatSpec.FileHeader.ATTRIBUTE_VALUE_TRUE);
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_ID_ATTRIBUTE, mDictName);
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_ATTRIBUTE, mLocale.toString());
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_VERSION_ATTRIBUTE,
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_ID_KEY, mDictName);
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_KEY, mLocale.toString());
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_VERSION_KEY,
|
||||
String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
|
||||
return attributeMap;
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import com.android.inputmethod.annotations.UsedForTesting;
|
||||
import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
|
||||
import com.android.inputmethod.latin.makedict.DictDecoder;
|
||||
import com.android.inputmethod.latin.makedict.DictEncoder;
|
||||
import com.android.inputmethod.latin.makedict.FormatSpec;
|
||||
import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
|
||||
import com.android.inputmethod.latin.makedict.FusionDictionary;
|
||||
import com.android.inputmethod.latin.makedict.FusionDictionary.PtNodeArray;
|
||||
@ -44,9 +45,6 @@ import java.util.concurrent.TimeUnit;
|
||||
public final class UserHistoryDictIOUtils {
|
||||
private static final String TAG = UserHistoryDictIOUtils.class.getSimpleName();
|
||||
private static final boolean DEBUG = false;
|
||||
private static final String USES_FORGETTING_CURVE_KEY = "USES_FORGETTING_CURVE";
|
||||
private static final String USES_FORGETTING_CURVE_VALUE = "1";
|
||||
private static final String DATE_KEY = "date";
|
||||
|
||||
public interface OnAddWordListener {
|
||||
/**
|
||||
@ -75,8 +73,9 @@ public final class UserHistoryDictIOUtils {
|
||||
final BigramDictionaryInterface dict, final UserHistoryDictionaryBigramList bigrams,
|
||||
final FormatOptions formatOptions, final HashMap<String, String> options) {
|
||||
final FusionDictionary fusionDict = constructFusionDictionary(dict, bigrams, options);
|
||||
fusionDict.addOptionAttribute(USES_FORGETTING_CURVE_KEY, USES_FORGETTING_CURVE_VALUE);
|
||||
fusionDict.addOptionAttribute(DATE_KEY,
|
||||
fusionDict.addOptionAttribute(FormatSpec.FileHeader.USES_FORGETTING_CURVE_KEY,
|
||||
FormatSpec.FileHeader.ATTRIBUTE_VALUE_TRUE);
|
||||
fusionDict.addOptionAttribute(FormatSpec.FileHeader.DICTIONARY_DATE_KEY,
|
||||
String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
|
||||
try {
|
||||
dictEncoder.writeDictionary(fusionDict, formatOptions);
|
||||
|
@ -102,13 +102,13 @@ public class BinaryDictionaryDecayingTests extends AndroidTestCase {
|
||||
getContext().getCacheDir());
|
||||
FileUtils.deleteRecursively(file);
|
||||
Map<String, String> attributeMap = new HashMap<String, String>();
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_ID_ATTRIBUTE, dictId);
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_ATTRIBUTE, dictId);
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_VERSION_ATTRIBUTE,
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_ID_KEY, dictId);
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_KEY, dictId);
|
||||
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_VERSION_KEY,
|
||||
String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
|
||||
attributeMap.put(FormatSpec.FileHeader.USES_FORGETTING_CURVE_ATTRIBUTE,
|
||||
attributeMap.put(FormatSpec.FileHeader.USES_FORGETTING_CURVE_KEY,
|
||||
FormatSpec.FileHeader.ATTRIBUTE_VALUE_TRUE);
|
||||
attributeMap.put(FormatSpec.FileHeader.HAS_HISTORICAL_INFO_ATTRIBUTE,
|
||||
attributeMap.put(FormatSpec.FileHeader.HAS_HISTORICAL_INFO_KEY,
|
||||
FormatSpec.FileHeader.ATTRIBUTE_VALUE_TRUE);
|
||||
if (BinaryDictionary.createEmptyDictFile(file.getAbsolutePath(),
|
||||
FormatSpec.VERSION4, attributeMap)) {
|
||||
|
@ -39,13 +39,13 @@ public class BinaryDictUtils {
|
||||
public static DictionaryOptions makeDictionaryOptions(final String id, final String version,
|
||||
final FormatSpec.FormatOptions formatOptions) {
|
||||
final DictionaryOptions options = new DictionaryOptions(new HashMap<String, String>());
|
||||
options.mAttributes.put(FileHeader.DICTIONARY_LOCALE_ATTRIBUTE, "en_US");
|
||||
options.mAttributes.put(FileHeader.DICTIONARY_ID_ATTRIBUTE, id);
|
||||
options.mAttributes.put(FileHeader.DICTIONARY_VERSION_ATTRIBUTE, version);
|
||||
options.mAttributes.put(FileHeader.DICTIONARY_LOCALE_KEY, "en_US");
|
||||
options.mAttributes.put(FileHeader.DICTIONARY_ID_KEY, id);
|
||||
options.mAttributes.put(FileHeader.DICTIONARY_VERSION_KEY, version);
|
||||
if (formatOptions.mHasTimestamp) {
|
||||
options.mAttributes.put(FileHeader.HAS_HISTORICAL_INFO_ATTRIBUTE,
|
||||
options.mAttributes.put(FileHeader.HAS_HISTORICAL_INFO_KEY,
|
||||
FileHeader.ATTRIBUTE_VALUE_TRUE);
|
||||
options.mAttributes.put(FileHeader.USES_FORGETTING_CURVE_ATTRIBUTE,
|
||||
options.mAttributes.put(FileHeader.USES_FORGETTING_CURVE_KEY,
|
||||
FileHeader.ATTRIBUTE_VALUE_TRUE);
|
||||
}
|
||||
return options;
|
||||
|
@ -56,9 +56,9 @@ public class UserHistoryDictIOUtilsTests extends AndroidTestCase
|
||||
private static final String TEST_DICT_FILE_EXTENSION = ".testDict";
|
||||
private static final HashMap<String, String> HEADER_OPTIONS = new HashMap<String, String>();
|
||||
static {
|
||||
HEADER_OPTIONS.put(FileHeader.DICTIONARY_LOCALE_ATTRIBUTE, "en_US");
|
||||
HEADER_OPTIONS.put(FileHeader.DICTIONARY_ID_ATTRIBUTE, "test");
|
||||
HEADER_OPTIONS.put(FileHeader.DICTIONARY_VERSION_ATTRIBUTE, "1000");
|
||||
HEADER_OPTIONS.put(FileHeader.DICTIONARY_LOCALE_KEY, "en_US");
|
||||
HEADER_OPTIONS.put(FileHeader.DICTIONARY_ID_KEY, "test");
|
||||
HEADER_OPTIONS.put(FileHeader.DICTIONARY_VERSION_KEY, "1000");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -48,9 +48,9 @@ public class BinaryDictOffdeviceUtilsTests extends TestCase {
|
||||
|
||||
// Create a thrice-compressed dictionary file.
|
||||
final DictionaryOptions testOptions = new DictionaryOptions(new HashMap<String, String>());
|
||||
testOptions.mAttributes.put(FormatSpec.FileHeader.DICTIONARY_VERSION_ATTRIBUTE, VERSION);
|
||||
testOptions.mAttributes.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_ATTRIBUTE, LOCALE);
|
||||
testOptions.mAttributes.put(FormatSpec.FileHeader.DICTIONARY_ID_ATTRIBUTE, ID);
|
||||
testOptions.mAttributes.put(FormatSpec.FileHeader.DICTIONARY_VERSION_KEY, VERSION);
|
||||
testOptions.mAttributes.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_KEY, LOCALE);
|
||||
testOptions.mAttributes.put(FormatSpec.FileHeader.DICTIONARY_ID_KEY, ID);
|
||||
final FusionDictionary dict = new FusionDictionary(new PtNodeArray(), testOptions);
|
||||
dict.add("foo", TEST_FREQ, null, false /* isNotAWord */);
|
||||
dict.add("fta", 1, null, false /* isNotAWord */);
|
||||
@ -80,11 +80,11 @@ public class BinaryDictOffdeviceUtilsTests extends TestCase {
|
||||
null /* dict : an optional dictionary to add words to, or null */,
|
||||
false /* deleteDictIfBroken */);
|
||||
assertEquals("Wrong version attribute", VERSION, resultDict.mOptions.mAttributes.get(
|
||||
FormatSpec.FileHeader.DICTIONARY_VERSION_ATTRIBUTE));
|
||||
FormatSpec.FileHeader.DICTIONARY_VERSION_KEY));
|
||||
assertEquals("Wrong locale attribute", LOCALE, resultDict.mOptions.mAttributes.get(
|
||||
FormatSpec.FileHeader.DICTIONARY_LOCALE_ATTRIBUTE));
|
||||
FormatSpec.FileHeader.DICTIONARY_LOCALE_KEY));
|
||||
assertEquals("Wrong id attribute", ID, resultDict.mOptions.mAttributes.get(
|
||||
FormatSpec.FileHeader.DICTIONARY_ID_ATTRIBUTE));
|
||||
FormatSpec.FileHeader.DICTIONARY_ID_KEY));
|
||||
assertEquals("Dictionary can't be read back correctly",
|
||||
FusionDictionary.findWordInTree(resultDict.mRootNodeArray, "foo").getFrequency(),
|
||||
TEST_FREQ);
|
||||
|
Loading…
Reference in New Issue
Block a user