From c78e729daaf82e0181a849cd0d68cbd3a89d683b Mon Sep 17 00:00:00 2001 From: Helium314 Date: Wed, 13 Sep 2023 17:09:23 +0200 Subject: [PATCH] provide the correct dictionary name (used for debugging only) --- .../inputmethod/latin/DictionaryFactory.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFactory.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFactory.java index 9f8764c4c..8182c54b5 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFactory.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFactory.java @@ -23,6 +23,7 @@ import android.os.Looper; import android.util.Log; import android.widget.Toast; +import org.dslul.openboard.inputmethod.latin.makedict.DictionaryHeader; import org.dslul.openboard.inputmethod.latin.utils.DictionaryInfoUtils; import java.io.File; @@ -45,11 +46,6 @@ public final class DictionaryFactory { * @param locale the locale for which to create the dictionary * @return an initialized instance of DictionaryCollection */ - // todo: this should be adjusted - // ONE call to getDictionaryFiles - // should return AssetFileAddress and locale (and maybe match level) - // this should consider the he/iw mess-up - // only if compressed dict needs to be used it should be extracted public static DictionaryCollection createMainDictionaryFromManager(final Context context, final Locale locale) { if (null == locale) { @@ -73,9 +69,15 @@ public final class DictionaryFactory { assetFileList = BinaryDictionaryGetter.getDictionaryFiles(locale, context, true); for (final AssetFileAddress f : assetFileList) { + final DictionaryHeader header = DictionaryInfoUtils.getDictionaryFileHeaderOrNull(new File(f.mFilename), f.mOffset, f.mLength); + String dictType = Dictionary.TYPE_MAIN; + if (header != null) { + // make sure the suggested words dictionary has the correct type + dictType = header.mIdString.split(":")[0]; + } final ReadOnlyBinaryDictionary readOnlyBinaryDictionary = new ReadOnlyBinaryDictionary(f.mFilename, f.mOffset, f.mLength, - false /* useFullEditDistance */, locale, Dictionary.TYPE_MAIN); + false /* useFullEditDistance */, locale, dictType); if (readOnlyBinaryDictionary.isValidDictionary()) { dictList.add(readOnlyBinaryDictionary); } else {