move enabling of foreign key support to onConfigure (#3038)

Alexander created

This way we avoid repeating the code. Unlike getWritableDatabase, onConfigure is intended to be overridden.

In fact, onConfigure documentation specifically says: "Called when the database connection is being configured, to enable features such as write-ahead logging or *foreign key support*."

Change summary

src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java | 13 
1 file changed, 5 insertions(+), 8 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java 🔗

@@ -187,9 +187,13 @@ public class DatabaseBackend extends SQLiteOpenHelper {
 		return instance;
 	}
 
+	@Override
+	public void onConfigure(SQLiteDatabase db) {
+		db.execSQL("PRAGMA foreign_keys=ON");
+	}
+
 	@Override
 	public void onCreate(SQLiteDatabase db) {
-		db.execSQL("PRAGMA foreign_keys=ON;");
 		db.execSQL("create table " + Account.TABLENAME + "(" + Account.UUID + " TEXT PRIMARY KEY,"
 				+ Account.USERNAME + " TEXT,"
 				+ Account.SERVER + " TEXT,"
@@ -848,13 +852,6 @@ public class DatabaseBackend extends SQLiteOpenHelper {
 		return rows == 1;
 	}
 
-	@Override
-	public SQLiteDatabase getWritableDatabase() {
-		SQLiteDatabase db = super.getWritableDatabase();
-		db.execSQL("PRAGMA foreign_keys=ON;");
-		return db;
-	}
-
 	public boolean updateMessage(Message message, boolean includeBody) {
 		SQLiteDatabase db = this.getWritableDatabase();
 		String[] args = {message.getUuid()};