|
|
@ -8,6 +8,7 @@ import android.content.SharedPreferences;
|
|
|
|
import android.database.Cursor;
|
|
|
|
import android.database.Cursor;
|
|
|
|
import android.database.sqlite.SQLiteDatabase;
|
|
|
|
import android.database.sqlite.SQLiteDatabase;
|
|
|
|
import android.database.sqlite.SQLiteDatabaseCorruptException;
|
|
|
|
import android.database.sqlite.SQLiteDatabaseCorruptException;
|
|
|
|
|
|
|
|
import android.database.sqlite.SQLiteException;
|
|
|
|
import android.net.Uri;
|
|
|
|
import android.net.Uri;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
|
|
|
|
|
|
|
@ -448,6 +449,7 @@ public abstract class DB extends RoomDatabase {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onOpen(@NonNull SupportSQLiteDatabase db) {
|
|
|
|
public void onOpen(@NonNull SupportSQLiteDatabase db) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
Map<String, String> crumb = new HashMap<>();
|
|
|
|
Map<String, String> crumb = new HashMap<>();
|
|
|
|
crumb.put("version", Integer.toString(db.getVersion()));
|
|
|
|
crumb.put("version", Integer.toString(db.getVersion()));
|
|
|
|
crumb.put("WAL", Boolean.toString(db.isWriteAheadLoggingEnabled()));
|
|
|
|
crumb.put("WAL", Boolean.toString(db.isWriteAheadLoggingEnabled()));
|
|
|
@ -520,6 +522,27 @@ public abstract class DB extends RoomDatabase {
|
|
|
|
dropTriggers(db);
|
|
|
|
dropTriggers(db);
|
|
|
|
|
|
|
|
|
|
|
|
createTriggers(db);
|
|
|
|
createTriggers(db);
|
|
|
|
|
|
|
|
} catch (SQLiteException ex) {
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
at eu.faircode.email.DB$6.onOpen(DB.java:522)
|
|
|
|
|
|
|
|
at eu.faircode.email.DB_Impl$1.onOpen(DB_Impl.java:171)
|
|
|
|
|
|
|
|
at androidx.room.RoomOpenHelper.onOpen(RoomOpenHelper.java:136)
|
|
|
|
|
|
|
|
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onOpen(FrameworkSQLiteOpenHelper.kt:287)
|
|
|
|
|
|
|
|
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:427)
|
|
|
|
|
|
|
|
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
|
|
|
|
|
|
|
|
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:232)
|
|
|
|
|
|
|
|
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:190)
|
|
|
|
|
|
|
|
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
|
|
|
|
|
|
|
|
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
|
|
|
|
|
|
|
|
at androidx.room.RoomDatabase.inTransaction(RoomDatabase.java:706)
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
Log.e(ex);
|
|
|
|
|
|
|
|
// FrameworkSQLiteOpenHelper.innerGetDatabase will delete the database
|
|
|
|
|
|
|
|
if (ex instanceof SQLiteDatabaseCorruptException)
|
|
|
|
|
|
|
|
throw ex;
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
throw new RuntimeException("Open failed", ex);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|