mirror of https://github.com/M66B/FairEmail.git
Fixed sqlite crashes
This commit is contained in:
parent
eb3582e05d
commit
8e9aef4ea0
|
@ -79,14 +79,16 @@ public abstract class DB extends RoomDatabase {
|
|||
sInstance = migrate(Room
|
||||
.databaseBuilder(context.getApplicationContext(), DB.class, DB_NAME)
|
||||
.setJournalMode(JournalMode.WRITE_AHEAD_LOGGING));
|
||||
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public static DB getBlockingInstance(Context context) {
|
||||
return migrate(Room
|
||||
.databaseBuilder(context.getApplicationContext(), DB.class, DB_NAME)
|
||||
.setJournalMode(JournalMode.WRITE_AHEAD_LOGGING)
|
||||
.allowMainThreadQueries());
|
||||
@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();
|
||||
}
|
||||
|
||||
private static DB migrate(RoomDatabase.Builder<DB> builder) {
|
||||
|
|
|
@ -900,15 +900,6 @@ public class FragmentCompose extends FragmentEx {
|
|||
|
||||
String pbody = "<pre>" + body.replaceAll("\\r?\\n", "<br />") + "</pre>";
|
||||
|
||||
// Check data
|
||||
if (action == R.id.action_send) {
|
||||
if (draft.identity == null)
|
||||
throw new IllegalArgumentException(context.getString(R.string.title_from_missing));
|
||||
|
||||
if (draft.to == null && draft.cc == null && draft.bcc == null)
|
||||
throw new IllegalArgumentException(context.getString(R.string.title_to_missing));
|
||||
}
|
||||
|
||||
try {
|
||||
db.beginTransaction();
|
||||
|
||||
|
@ -940,6 +931,15 @@ public class FragmentCompose extends FragmentEx {
|
|||
db.message().updateMessage(draft);
|
||||
draft.write(context, pbody);
|
||||
|
||||
// Check data
|
||||
if (action == R.id.action_send) {
|
||||
if (draft.identity == null)
|
||||
throw new IllegalArgumentException(context.getString(R.string.title_from_missing));
|
||||
|
||||
if (draft.to == null && draft.cc == null && draft.bcc == null)
|
||||
throw new IllegalArgumentException(context.getString(R.string.title_to_missing));
|
||||
}
|
||||
|
||||
// Save message ID
|
||||
String msgid = draft.msgid;
|
||||
|
||||
|
|
Loading…
Reference in New Issue