Browse Source

Removed sqlite workaround because there were side effects

main
M66B 6 years ago
parent
commit
9b61405891
1 changed files with 18 additions and 18 deletions
  1. +18
    -18
      app/src/main/java/eu/faircode/email/DB.java

+ 18
- 18
app/src/main/java/eu/faircode/email/DB.java View File

@ -75,20 +75,31 @@ public abstract class DB extends RoomDatabase {
private static final String DB_NAME = "email"; private static final String DB_NAME = "email";
public static synchronized DB getInstance(Context context) { public static synchronized DB getInstance(Context context) {
if (sInstance == null)
if (sInstance == null) {
sInstance = migrate(Room sInstance = migrate(Room
.databaseBuilder(context.getApplicationContext(), DB.class, DB_NAME) .databaseBuilder(context.getApplicationContext(), DB.class, DB_NAME)
.setJournalMode(JournalMode.WRITE_AHEAD_LOGGING)); .setJournalMode(JournalMode.WRITE_AHEAD_LOGGING));
Log.i(Helper.TAG, "sqlite version=" + exec(sInstance, "SELECT sqlite_version() AS sqlite_version"));
Log.i(Helper.TAG, "sqlite sync=" + exec(sInstance, "PRAGMA synchronous"));
Log.i(Helper.TAG, "sqlite journal=" + exec(sInstance, "PRAGMA journal_mode"));
}
return sInstance; return sInstance;
} }
@Override
public void beginTransaction() {
// This is a workaround for sqlite crashing on some devices
// Confusingly, the journal mode needs to be set to write ahead logging first for this to work
getOpenHelper().setWriteAheadLoggingEnabled(false);
super.beginTransaction();
static String exec(DB db, String command) {
Cursor cursor = null;
try {
cursor = db.query(command, new Object[0]);
if (cursor.moveToNext())
return cursor.getString(0);
else
return null;
} finally {
if (cursor != null)
cursor.close();
}
} }
private static DB migrate(RoomDatabase.Builder<DB> builder) { private static DB migrate(RoomDatabase.Builder<DB> builder) {
@ -97,17 +108,6 @@ public abstract class DB extends RoomDatabase {
@Override @Override
public void onOpen(SupportSQLiteDatabase db) { public void onOpen(SupportSQLiteDatabase db) {
Log.i(Helper.TAG, "Database version=" + db.getVersion()); Log.i(Helper.TAG, "Database version=" + db.getVersion());
Cursor cursor = null;
try {
cursor = db.query("SELECT sqlite_version() AS sqlite_version");
if (cursor.moveToNext())
Log.i(Helper.TAG, "sqlite version=" + cursor.getString(0));
} finally {
if (cursor != null)
cursor.close();
}
super.onOpen(db); super.onOpen(db);
} }
}) })


Loading…
Cancel
Save