|
|
@ -47,7 +47,7 @@ import io.requery.android.database.sqlite.RequerySQLiteOpenHelperFactory;
|
|
|
|
// https://developer.android.com/topic/libraries/architecture/room.html
|
|
|
|
// https://developer.android.com/topic/libraries/architecture/room.html
|
|
|
|
|
|
|
|
|
|
|
|
@Database(
|
|
|
|
@Database(
|
|
|
|
version = 27,
|
|
|
|
version = 28,
|
|
|
|
entities = {
|
|
|
|
entities = {
|
|
|
|
EntityIdentity.class,
|
|
|
|
EntityIdentity.class,
|
|
|
|
EntityAccount.class,
|
|
|
|
EntityAccount.class,
|
|
|
@ -336,27 +336,34 @@ public abstract class DB extends RoomDatabase {
|
|
|
|
public void migrate(SupportSQLiteDatabase db) {
|
|
|
|
public void migrate(SupportSQLiteDatabase db) {
|
|
|
|
Log.i("DB migration from version " + startVersion + " to " + endVersion);
|
|
|
|
Log.i("DB migration from version " + startVersion + " to " + endVersion);
|
|
|
|
db.execSQL("ALTER TABLE `message` ADD COLUMN `sender` TEXT");
|
|
|
|
db.execSQL("ALTER TABLE `message` ADD COLUMN `sender` TEXT");
|
|
|
|
|
|
|
|
db.execSQL("CREATE INDEX `index_message_sender` ON `message` (`sender`)");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.addMigrations(new Migration(27, 28) {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void migrate(SupportSQLiteDatabase db) {
|
|
|
|
|
|
|
|
Log.i("DB migration from version " + startVersion + " to " + endVersion);
|
|
|
|
|
|
|
|
|
|
|
|
Cursor cursor = null;
|
|
|
|
Cursor cursor = null;
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
cursor = db.query("SELECT `id`, `from` FROM message");
|
|
|
|
cursor = db.query("SELECT `id`, `from` FROM message");
|
|
|
|
while (cursor.moveToNext()) {
|
|
|
|
while (cursor.moveToNext())
|
|
|
|
|
|
|
|
try {
|
|
|
|
long id = cursor.getLong(0);
|
|
|
|
long id = cursor.getLong(0);
|
|
|
|
String json = cursor.getString(1);
|
|
|
|
String json = cursor.getString(1);
|
|
|
|
Address[] from = Converters.decodeAddresses(json);
|
|
|
|
Address[] from = Converters.decodeAddresses(json);
|
|
|
|
String sender = MessageHelper.getSortKey(from);
|
|
|
|
String sender = MessageHelper.getSortKey(from);
|
|
|
|
if (sender != null)
|
|
|
|
|
|
|
|
db.execSQL(
|
|
|
|
db.execSQL(
|
|
|
|
"UPDATE message SET sender = ? WHERE id = ?",
|
|
|
|
"UPDATE message SET sender = ? WHERE id = ?",
|
|
|
|
new Object[]{sender, id});
|
|
|
|
new Object[]{sender, id});
|
|
|
|
|
|
|
|
} catch (Throwable ex) {
|
|
|
|
|
|
|
|
Log.e(ex);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
|
if (cursor != null)
|
|
|
|
if (cursor != null)
|
|
|
|
cursor.close();
|
|
|
|
cursor.close();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
db.execSQL("CREATE INDEX `index_message_sender` ON `message` (`sender`)");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
.build();
|
|
|
|
.build();
|
|
|
|