diff options
| author | Fabrice Di Meglio <fdimeglio@google.com> | 2015-02-27 11:14:11 -0800 |
|---|---|---|
| committer | Fabrice Di Meglio <fdimeglio@google.com> | 2015-02-27 11:14:11 -0800 |
| commit | dff3faaf30bd6d695e4d9f632af53dbc73cf6506 (patch) | |
| tree | 547923597c67197aa19e8412e3e3b88e495c6f19 /src/com/android/settings/search | |
| parent | 0702e87ed4d13eac053c31ea1f6504d7f176da6d (diff) | |
| download | packages_apps_Settings-dff3faaf30bd6d695e4d9f632af53dbc73cf6506.tar.gz packages_apps_Settings-dff3faaf30bd6d695e4d9f632af53dbc73cf6506.tar.bz2 packages_apps_Settings-dff3faaf30bd6d695e4d9f632af53dbc73cf6506.zip | |
Fix bug #19313587 Settings unusable when userdata is full
- take care of low storage space use case: do not start
and Index update if we are is low storage space situation.
Change-Id: Ifa5bb618d087826c004b06aa7821b9634038734c
Diffstat (limited to 'src/com/android/settings/search')
| -rw-r--r-- | src/com/android/settings/search/Index.java | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/com/android/settings/search/Index.java b/src/com/android/settings/search/Index.java index 5dbf24f00..267c6c084 100644 --- a/src/com/android/settings/search/Index.java +++ b/src/com/android/settings/search/Index.java @@ -30,6 +30,7 @@ import android.database.Cursor; import android.database.DatabaseUtils; import android.database.MergeCursor; import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteException; import android.net.Uri; import android.os.AsyncTask; import android.provider.SearchIndexableData; @@ -501,7 +502,12 @@ public class Index { } private SQLiteDatabase getWritableDatabase() { - return IndexDatabaseHelper.getInstance(mContext).getWritableDatabase(); + try { + return IndexDatabaseHelper.getInstance(mContext).getWritableDatabase(); + } catch (SQLiteException e) { + Log.e(LOG_TAG, "Cannot open writable database", e); + return null; + } } private static Uri buildUriForXmlResources(String authority) { @@ -1172,6 +1178,10 @@ public class Index { final boolean forceUpdate = params[0].forceUpdate; final SQLiteDatabase database = getWritableDatabase(); + if (database == null) { + Log.e(LOG_TAG, "Cannot update Index as I cannot get a writable database"); + return null; + } final String localeStr = Locale.getDefault().toString(); try { @@ -1292,8 +1302,12 @@ public class Index { values.put(IndexDatabaseHelper.SavedQueriesColums.TIME_STAMP, now); final SQLiteDatabase database = getWritableDatabase(); + if (database == null) { + Log.e(LOG_TAG, "Cannot save Search queries as I cannot get a writable database"); + return -1L; + } - long lastInsertedRowId = -1; + long lastInsertedRowId = -1L; try { // First, delete all saved queries that are the same database.delete(Tables.TABLE_SAVED_QUERIES, |
