From 267e528253801423768a1197b0c7d76e073ee9ab Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Wed, 21 May 2014 12:45:54 +0900
Subject: [PATCH] Arrange to send the rawChecksum to LatinIME.

Bug: 13125743
Change-Id: I5d111336e6a0f5ab4e93ff333654a7a1f8f46480
---
 .../dictionarypack/DictionaryProvider.java       | 16 ++++++++++++----
 .../latin/BinaryDictionaryFileDumper.java        |  3 ++-
 .../android/inputmethod/latin/WordListInfo.java  |  4 +++-
 3 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java
index 80def701df..c35995b248 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java
@@ -89,10 +89,13 @@ public final class DictionaryProvider extends ContentProvider {
     private static final class WordListInfo {
         public final String mId;
         public final String mLocale;
+        public final String mRawChecksum;
         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;
             mLocale = locale;
+            mRawChecksum = rawChecksum;
             mMatchLevel = matchLevel;
         }
     }
@@ -106,7 +109,8 @@ public final class DictionaryProvider extends ContentProvider {
     private static final class ResourcePathCursor extends AbstractCursor {
 
         // 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.
         final WordListInfo[] mWordLists;
@@ -141,6 +145,7 @@ public final class DictionaryProvider extends ContentProvider {
             switch (column) {
                 case 0: return mWordLists[mPos].mId;
                 case 1: return mWordLists[mPos].mLocale;
+                case 2: return mWordLists[mPos].mRawChecksum;
                 default : return null;
             }
         }
@@ -357,6 +362,8 @@ public final class DictionaryProvider extends ContentProvider {
             final int localeIndex = results.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN);
             final int localFileNameIndex =
                     results.getColumnIndex(MetadataDbHelper.LOCAL_FILENAME_COLUMN);
+            final int rawChecksumIndex =
+                    results.getColumnIndex(MetadataDbHelper.RAW_CHECKSUM_COLUMN);
             final int statusIndex = results.getColumnIndex(MetadataDbHelper.STATUS_COLUMN);
             if (results.moveToFirst()) {
                 do {
@@ -379,6 +386,7 @@ public final class DictionaryProvider extends ContentProvider {
                     }
                     final String wordListLocale = results.getString(localeIndex);
                     final String wordListLocalFilename = results.getString(localFileNameIndex);
+                    final String wordListRawChecksum = results.getString(rawChecksumIndex);
                     final int wordListStatus = results.getInt(statusIndex);
                     // Test the requested locale against this wordlist locale. The requested locale
                     // 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);
                     if (null == currentBestMatch
                             || currentBestMatch.mMatchLevel < matchLevel) {
-                        dicts.put(wordListCategory,
-                                new WordListInfo(wordListId, wordListLocale, matchLevel));
+                        dicts.put(wordListCategory, new WordListInfo(wordListId, wordListLocale,
+                                wordListRawChecksum, matchLevel));
                     }
                 } while (results.moveToNext());
             }
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index e428b1d543..669ad09dde 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -167,8 +167,9 @@ public final class BinaryDictionaryFileDumper {
             do {
                 final String wordListId = cursor.getString(0);
                 final String wordListLocale = cursor.getString(1);
+                final String wordListRawChecksum = cursor.getString(2);
                 if (TextUtils.isEmpty(wordListId)) continue;
-                list.add(new WordListInfo(wordListId, wordListLocale));
+                list.add(new WordListInfo(wordListId, wordListLocale, wordListRawChecksum));
             } while (cursor.moveToNext());
             return list;
         } catch (RemoteException e) {
diff --git a/java/src/com/android/inputmethod/latin/WordListInfo.java b/java/src/com/android/inputmethod/latin/WordListInfo.java
index 5ac806a0c0..268fe98182 100644
--- a/java/src/com/android/inputmethod/latin/WordListInfo.java
+++ b/java/src/com/android/inputmethod/latin/WordListInfo.java
@@ -22,8 +22,10 @@ package com.android.inputmethod.latin;
 public final class WordListInfo {
     public final String mId;
     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;
         mLocale = locale;
+        mRawChecksum = rawChecksum;
     }
 }
-- 
GitLab