|
|
|
@ -437,11 +437,7 @@ public abstract class DB extends RoomDatabase {
|
|
|
|
|
db.execSQL("DROP TRIGGER IF EXISTS `attachment_delete`");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
createTriggers(db);
|
|
|
|
|
} catch (Throwable ex) {
|
|
|
|
|
Log.e(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -463,6 +459,11 @@ public abstract class DB extends RoomDatabase {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void createTriggers(@NonNull SupportSQLiteDatabase db) {
|
|
|
|
|
createTriggers(db, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void createTriggers(@NonNull SupportSQLiteDatabase db, boolean fail) {
|
|
|
|
|
try {
|
|
|
|
|
List<String> image = new ArrayList<>();
|
|
|
|
|
for (String img : ImageHelper.IMAGE_TYPES)
|
|
|
|
|
image.add("'" + img + "'");
|
|
|
|
@ -490,6 +491,11 @@ public abstract class DB extends RoomDatabase {
|
|
|
|
|
" AND OLD.encryption IS NULL" +
|
|
|
|
|
" AND NOT ((OLD.disposition = 'inline' OR (OLD.related IS NOT 0 AND OLD.cid IS NOT NULL)) AND OLD.type IN (" + images + "));" +
|
|
|
|
|
" END");
|
|
|
|
|
} catch (Throwable ex) {
|
|
|
|
|
Log.w(ex);
|
|
|
|
|
if (fail)
|
|
|
|
|
throw ex;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void logMigration(int startVersion, int endVersion) {
|
|
|
|
@ -2263,7 +2269,7 @@ public abstract class DB extends RoomDatabase {
|
|
|
|
|
db.execSQL("ALTER TABLE `attachment` ADD COLUMN `related` INTEGER");
|
|
|
|
|
db.execSQL("DROP TRIGGER IF EXISTS `attachment_insert`");
|
|
|
|
|
db.execSQL("DROP TRIGGER IF EXISTS `attachment_delete`");
|
|
|
|
|
createTriggers(db);
|
|
|
|
|
createTriggers(db, true);
|
|
|
|
|
}
|
|
|
|
|
}).addMigrations(new Migration(223, 224) {
|
|
|
|
|
@Override
|
|
|
|
|