summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/LauncherProvider.java')
-rw-r--r--src/com/android/launcher3/LauncherProvider.java22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index b31df9894..ea1c1d1f3 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -34,6 +34,7 @@ import android.content.res.Resources;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteFullException;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteQueryBuilder;
import android.database.sqlite.SQLiteStatement;
@@ -194,7 +195,18 @@ public class LauncherProvider extends ContentProvider {
throw new RuntimeException("Error: attempting to add item without specifying an id");
}
helper.checkId(table, values);
- return db.insert(table, nullColumnHack, values);
+
+ long inserted;
+ try {
+ inserted = db.insert(table, nullColumnHack, values);
+ } catch (SQLiteFullException e) {
+ Log.e(TAG, "Could not insert database entry", e);
+ inserted = 0L;
+ }
+ if (Utilities.IS_DEBUG_DEVICE && inserted < 0) {
+ Log.d(TAG, "Could not insert database entry", new RuntimeException());
+ }
+ return inserted;
}
private void reloadLauncherIfExternal() {
@@ -357,7 +369,13 @@ public class LauncherProvider extends ContentProvider {
addModifiedTime(values);
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
- int count = db.update(args.table, values, args.where, args.args);
+ int count;
+ try {
+ count = db.update(args.table, values, args.where, args.args);
+ } catch (SQLiteFullException e) {
+ Log.e(TAG, "Could not update database", e);
+ count = 0;
+ }
if (count > 0) notifyListeners();
reloadLauncherIfExternal();