diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index ca3fa66fbc..004b14f184 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -27,6 +27,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.database.sqlite.SQLiteDatabaseCorruptException; import android.graphics.Paint; import android.net.Uri; import android.os.Bundle; @@ -192,9 +193,14 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc new SimpleTask() { @Override protected Void onExecute(Context context, Bundle args) { - SQLiteDatabase sdb = FtsDbHelper.getInstance(context); - FtsDbHelper.delete(sdb); - FtsDbHelper.optimize(sdb); + try { + SQLiteDatabase sdb = FtsDbHelper.getInstance(context); + FtsDbHelper.delete(sdb); + FtsDbHelper.optimize(sdb); + } catch (SQLiteDatabaseCorruptException ex) { + Log.e(ex); + FtsDbHelper.delete(context); + } DB db = DB.getInstance(context); db.message().resetFts(); diff --git a/app/src/main/java/eu/faircode/email/FtsDbHelper.java b/app/src/main/java/eu/faircode/email/FtsDbHelper.java index 5850874a9a..d82864c442 100644 --- a/app/src/main/java/eu/faircode/email/FtsDbHelper.java +++ b/app/src/main/java/eu/faircode/email/FtsDbHelper.java @@ -174,4 +174,8 @@ public class FtsDbHelper extends SQLiteOpenHelper { Log.i("FTS optimize"); db.execSQL("INSERT INTO message (message) VALUES ('optimize')"); } + + static void delete(Context context) { + context.getDatabasePath(DATABASE_NAME).delete(); + } }