Loading java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java +3 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ import java.util.LinkedList; import java.util.List; import java.util.TreeMap; import javax.annotation.Nullable; /** * Various helper functions for the state database */ Loading Loading @@ -705,6 +707,7 @@ public class MetadataDbHelper extends SQLiteOpenHelper { * @param version the word list version. * @return the metadata about this word list. */ @Nullable public static ContentValues getContentValuesByWordListId(final SQLiteDatabase db, final String id, final int version) { final Cursor cursor = db.query(METADATA_TABLE_NAME, Loading java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java +13 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.inputmethod.dictionarypack; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.util.Log; import java.io.IOException; import java.io.InputStreamReader; Loading @@ -30,10 +31,13 @@ import java.util.List; * Helper class to easy up manipulation of dictionary pack metadata. */ public class MetadataHandler { public static final String TAG = MetadataHandler.class.getSimpleName(); // The canonical file name for metadata. This is not the name of a real file on the // device, but a symbolic name used in the database and in metadata handling. It is never // tested against, only used for human-readability as the file name for the metadata. public final static String METADATA_FILENAME = "metadata.json"; public static final String METADATA_FILENAME = "metadata.json"; /** * Reads the data from the cursor and store it in metadata objects. Loading Loading @@ -114,6 +118,14 @@ public class MetadataHandler { final String clientId, final String wordListId, final int version) { final ContentValues contentValues = MetadataDbHelper.getContentValuesByWordListId( MetadataDbHelper.getDb(context, clientId), wordListId, version); if (contentValues == null) { // TODO: Figure out why this would happen. // Check if this happens when the metadata gets updated in the background. Log.e(TAG, String.format( "Unable to find the current metadata for wordlist " + "(clientId=%s, wordListId=%s, version=%d) on the database", clientId, wordListId, version)); return null; } return WordListMetadata.createFromContentValues(contentValues); } Loading java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java +3 −0 Original line number Diff line number Diff line Loading @@ -1143,6 +1143,9 @@ public final class UpdateHandler { } final WordListMetadata wordListMetaData = MetadataHandler.getCurrentMetadataForWordList( context, clientId, wordlistId, version); if (wordListMetaData == null) { return; } final ActionBatch actions = new ActionBatch(); actions.add(new ActionBatch.StartDownloadAction( Loading java/src/com/android/inputmethod/dictionarypack/WordListMetadata.java +3 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.inputmethod.dictionarypack; import android.content.ContentValues; import javax.annotation.Nonnull; /** * The metadata for a single word list. * Loading Loading @@ -77,7 +79,7 @@ public class WordListMetadata { * * If this lacks any required field, IllegalArgumentException is thrown. */ public static WordListMetadata createFromContentValues(final ContentValues values) { public static WordListMetadata createFromContentValues(@Nonnull final ContentValues values) { final String id = values.getAsString(MetadataDbHelper.WORDLISTID_COLUMN); final Integer type = values.getAsInteger(MetadataDbHelper.TYPE_COLUMN); final String description = values.getAsString(MetadataDbHelper.DESCRIPTION_COLUMN); Loading Loading
java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java +3 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ import java.util.LinkedList; import java.util.List; import java.util.TreeMap; import javax.annotation.Nullable; /** * Various helper functions for the state database */ Loading Loading @@ -705,6 +707,7 @@ public class MetadataDbHelper extends SQLiteOpenHelper { * @param version the word list version. * @return the metadata about this word list. */ @Nullable public static ContentValues getContentValuesByWordListId(final SQLiteDatabase db, final String id, final int version) { final Cursor cursor = db.query(METADATA_TABLE_NAME, Loading
java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java +13 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.inputmethod.dictionarypack; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.util.Log; import java.io.IOException; import java.io.InputStreamReader; Loading @@ -30,10 +31,13 @@ import java.util.List; * Helper class to easy up manipulation of dictionary pack metadata. */ public class MetadataHandler { public static final String TAG = MetadataHandler.class.getSimpleName(); // The canonical file name for metadata. This is not the name of a real file on the // device, but a symbolic name used in the database and in metadata handling. It is never // tested against, only used for human-readability as the file name for the metadata. public final static String METADATA_FILENAME = "metadata.json"; public static final String METADATA_FILENAME = "metadata.json"; /** * Reads the data from the cursor and store it in metadata objects. Loading Loading @@ -114,6 +118,14 @@ public class MetadataHandler { final String clientId, final String wordListId, final int version) { final ContentValues contentValues = MetadataDbHelper.getContentValuesByWordListId( MetadataDbHelper.getDb(context, clientId), wordListId, version); if (contentValues == null) { // TODO: Figure out why this would happen. // Check if this happens when the metadata gets updated in the background. Log.e(TAG, String.format( "Unable to find the current metadata for wordlist " + "(clientId=%s, wordListId=%s, version=%d) on the database", clientId, wordListId, version)); return null; } return WordListMetadata.createFromContentValues(contentValues); } Loading
java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java +3 −0 Original line number Diff line number Diff line Loading @@ -1143,6 +1143,9 @@ public final class UpdateHandler { } final WordListMetadata wordListMetaData = MetadataHandler.getCurrentMetadataForWordList( context, clientId, wordlistId, version); if (wordListMetaData == null) { return; } final ActionBatch actions = new ActionBatch(); actions.add(new ActionBatch.StartDownloadAction( Loading
java/src/com/android/inputmethod/dictionarypack/WordListMetadata.java +3 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.inputmethod.dictionarypack; import android.content.ContentValues; import javax.annotation.Nonnull; /** * The metadata for a single word list. * Loading Loading @@ -77,7 +79,7 @@ public class WordListMetadata { * * If this lacks any required field, IllegalArgumentException is thrown. */ public static WordListMetadata createFromContentValues(final ContentValues values) { public static WordListMetadata createFromContentValues(@Nonnull final ContentValues values) { final String id = values.getAsString(MetadataDbHelper.WORDLISTID_COLUMN); final Integer type = values.getAsInteger(MetadataDbHelper.TYPE_COLUMN); final String description = values.getAsString(MetadataDbHelper.DESCRIPTION_COLUMN); Loading