Merge "Arrange to send the rawChecksum to LatinIME."

main
Jean Chalard 2014-05-22 03:18:51 +00:00 committed by Android (Google) Code Review
commit 814cf03470
3 changed files with 17 additions and 6 deletions

View File

@ -89,10 +89,13 @@ public final class DictionaryProvider extends ContentProvider {
private static final class WordListInfo { private static final class WordListInfo {
public final String mId; public final String mId;
public final String mLocale; public final String mLocale;
public final String mRawChecksum;
public final int mMatchLevel; public final int mMatchLevel;
public WordListInfo(final String id, final String locale, final int matchLevel) { public WordListInfo(final String id, final String locale, final String rawChecksum,
final int matchLevel) {
mId = id; mId = id;
mLocale = locale; mLocale = locale;
mRawChecksum = rawChecksum;
mMatchLevel = matchLevel; mMatchLevel = matchLevel;
} }
} }
@ -106,7 +109,8 @@ public final class DictionaryProvider extends ContentProvider {
private static final class ResourcePathCursor extends AbstractCursor { private static final class ResourcePathCursor extends AbstractCursor {
// Column names for the cursor returned by this content provider. // Column names for the cursor returned by this content provider.
static private final String[] columnNames = { "id", "locale" }; static private final String[] columnNames = { MetadataDbHelper.WORDLISTID_COLUMN,
MetadataDbHelper.LOCALE_COLUMN, MetadataDbHelper.RAW_CHECKSUM_COLUMN };
// The list of word lists served by this provider that match the client request. // The list of word lists served by this provider that match the client request.
final WordListInfo[] mWordLists; final WordListInfo[] mWordLists;
@ -141,6 +145,7 @@ public final class DictionaryProvider extends ContentProvider {
switch (column) { switch (column) {
case 0: return mWordLists[mPos].mId; case 0: return mWordLists[mPos].mId;
case 1: return mWordLists[mPos].mLocale; case 1: return mWordLists[mPos].mLocale;
case 2: return mWordLists[mPos].mRawChecksum;
default : return null; default : return null;
} }
} }
@ -357,6 +362,8 @@ public final class DictionaryProvider extends ContentProvider {
final int localeIndex = results.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN); final int localeIndex = results.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN);
final int localFileNameIndex = final int localFileNameIndex =
results.getColumnIndex(MetadataDbHelper.LOCAL_FILENAME_COLUMN); results.getColumnIndex(MetadataDbHelper.LOCAL_FILENAME_COLUMN);
final int rawChecksumIndex =
results.getColumnIndex(MetadataDbHelper.RAW_CHECKSUM_COLUMN);
final int statusIndex = results.getColumnIndex(MetadataDbHelper.STATUS_COLUMN); final int statusIndex = results.getColumnIndex(MetadataDbHelper.STATUS_COLUMN);
if (results.moveToFirst()) { if (results.moveToFirst()) {
do { do {
@ -379,6 +386,7 @@ public final class DictionaryProvider extends ContentProvider {
} }
final String wordListLocale = results.getString(localeIndex); final String wordListLocale = results.getString(localeIndex);
final String wordListLocalFilename = results.getString(localFileNameIndex); final String wordListLocalFilename = results.getString(localFileNameIndex);
final String wordListRawChecksum = results.getString(rawChecksumIndex);
final int wordListStatus = results.getInt(statusIndex); final int wordListStatus = results.getInt(statusIndex);
// Test the requested locale against this wordlist locale. The requested locale // Test the requested locale against this wordlist locale. The requested locale
// has to either match exactly or be more specific than the dictionary - a // has to either match exactly or be more specific than the dictionary - a
@ -412,8 +420,8 @@ public final class DictionaryProvider extends ContentProvider {
final WordListInfo currentBestMatch = dicts.get(wordListCategory); final WordListInfo currentBestMatch = dicts.get(wordListCategory);
if (null == currentBestMatch if (null == currentBestMatch
|| currentBestMatch.mMatchLevel < matchLevel) { || currentBestMatch.mMatchLevel < matchLevel) {
dicts.put(wordListCategory, dicts.put(wordListCategory, new WordListInfo(wordListId, wordListLocale,
new WordListInfo(wordListId, wordListLocale, matchLevel)); wordListRawChecksum, matchLevel));
} }
} while (results.moveToNext()); } while (results.moveToNext());
} }

View File

@ -167,8 +167,9 @@ public final class BinaryDictionaryFileDumper {
do { do {
final String wordListId = cursor.getString(0); final String wordListId = cursor.getString(0);
final String wordListLocale = cursor.getString(1); final String wordListLocale = cursor.getString(1);
final String wordListRawChecksum = cursor.getString(2);
if (TextUtils.isEmpty(wordListId)) continue; if (TextUtils.isEmpty(wordListId)) continue;
list.add(new WordListInfo(wordListId, wordListLocale)); list.add(new WordListInfo(wordListId, wordListLocale, wordListRawChecksum));
} while (cursor.moveToNext()); } while (cursor.moveToNext());
return list; return list;
} catch (RemoteException e) { } catch (RemoteException e) {

View File

@ -22,8 +22,10 @@ package com.android.inputmethod.latin;
public final class WordListInfo { public final class WordListInfo {
public final String mId; public final String mId;
public final String mLocale; public final String mLocale;
public WordListInfo(final String id, final String locale) { public final String mRawChecksum;
public WordListInfo(final String id, final String locale, final String rawChecksum) {
mId = id; mId = id;
mLocale = locale; mLocale = locale;
mRawChecksum = rawChecksum;
} }
} }