Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 870a1ab1 authored by Jean Chalard's avatar Jean Chalard Committed by Android (Google) Code Review
Browse files

Merge "Try to survive unavailability of local storage"

parents d054aa17 f3f90e6d
Loading
Loading
Loading
Loading
+25 −7
Original line number Diff line number Diff line
@@ -212,7 +212,8 @@ public class UserBigramDictionary extends ExpandableDictionary {
    @Override
    public void loadDictionaryAsync() {
        // Load the words that correspond to the current input locale
        Cursor cursor = query(MAIN_COLUMN_LOCALE + "=?", new String[] { mLocale });
        final Cursor cursor = query(MAIN_COLUMN_LOCALE + "=?", new String[] { mLocale });
        if (null == cursor) return;
        try {
            if (cursor.moveToFirst()) {
                int word1Index = cursor.getColumnIndex(MAIN_COLUMN_WORD1);
@@ -249,11 +250,17 @@ public class UserBigramDictionary extends ExpandableDictionary {
        qb.setProjectionMap(sDictProjectionMap);

        // Get the database and run the query
        try {
            SQLiteDatabase db = sOpenHelper.getReadableDatabase();
            Cursor c = qb.query(db,
                    new String[] { MAIN_COLUMN_WORD1, MAIN_COLUMN_WORD2, FREQ_COLUMN_FREQUENCY },
                    selection, selectionArgs, null, null, null);
            return c;
        } catch (android.database.sqlite.SQLiteCantOpenDatabaseException e) {
            // Can't open the database : presumably we can't access storage. That may happen
            // when the device is wedged; do a best effort to still start the keyboard.
            return null;
        }
    }

    /**
@@ -344,7 +351,18 @@ public class UserBigramDictionary extends ExpandableDictionary {

        @Override
        protected Void doInBackground(Void... v) {
            SQLiteDatabase db = mDbHelper.getWritableDatabase();
            SQLiteDatabase db = null;
            try {
                db = mDbHelper.getWritableDatabase();
            } catch (android.database.sqlite.SQLiteCantOpenDatabaseException e) {
                // If we can't open the db, don't do anything. Exit through the next test
                // for non-nullity of the db variable.
            }
            if (null == db) {
                // Not much we can do. Just exit.
                sUpdatingDB = false;
                return null;
            }
            db.execSQL("PRAGMA foreign_keys = ON;");
            // Write all the entries to the db
            Iterator<Bigram> iterator = mMap.iterator();
+20 −6
Original line number Diff line number Diff line
@@ -121,7 +121,8 @@ public class UserUnigramDictionary extends ExpandableDictionary {
    public void loadDictionaryAsync() {
        if (!ENABLE_USER_UNIGRAM_DICTIONARY) return;
        // Load the words that correspond to the current input locale
        Cursor cursor = query(COLUMN_LOCALE + "=?", new String[] { mLocale });
        final Cursor cursor = query(COLUMN_LOCALE + "=?", new String[] { mLocale });
        if (null == cursor) return;
        try {
            if (cursor.moveToFirst()) {
                int wordIndex = cursor.getColumnIndex(COLUMN_WORD);
@@ -212,10 +213,16 @@ public class UserUnigramDictionary extends ExpandableDictionary {
        qb.setProjectionMap(sDictProjectionMap);

        // Get the database and run the query
        try {
            SQLiteDatabase db = sOpenHelper.getReadableDatabase();
            Cursor c = qb.query(db, null, selection, selectionArgs, null, null,
                    DEFAULT_SORT_ORDER);
            return c;
        } catch (android.database.sqlite.SQLiteCantOpenDatabaseException e) {
            // Can't open the database : presumably we can't access storage. That may happen
            // when the device is wedged; do a best effort to still start the keyboard.
            return null;
        }
    }

    /**
@@ -236,7 +243,14 @@ public class UserUnigramDictionary extends ExpandableDictionary {

        @Override
        protected Void doInBackground(Void... v) {
            SQLiteDatabase db = mDbHelper.getWritableDatabase();
            SQLiteDatabase db = null;
            try {
                db = mDbHelper.getWritableDatabase();
            } catch (android.database.sqlite.SQLiteCantOpenDatabaseException e) {
                // With no access to the DB, this is moot. Do nothing: we'll exit through the
                // test for null == db.
            }
            if (null == db) return null;
            // Write all the entries to the db
            Set<Entry<String,Integer>> mEntries = mMap.entrySet();
            for (Entry<String,Integer> entry : mEntries) {