From: Damyan Ivanov Date: Thu, 18 Nov 2021 21:30:12 +0000 (+0200) Subject: DB revision 66: re-calculate descriptionUpper to fix searching X-Git-Tag: v0.20.4~2 X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=commitdiff_plain;h=e057b5d14e176767d52d865b6e3f0f081870954e;hp=c38d5422f4450ccf94677a5e7931ad70e1bffb37 DB revision 66: re-calculate descriptionUpper to fix searching --- diff --git a/app/src/main/java/net/ktnx/mobileledger/db/DB.java b/app/src/main/java/net/ktnx/mobileledger/db/DB.java index 48262888..7d3e7809 100644 --- a/app/src/main/java/net/ktnx/mobileledger/db/DB.java +++ b/app/src/main/java/net/ktnx/mobileledger/db/DB.java @@ -60,10 +60,22 @@ import static net.ktnx.mobileledger.utils.Logger.debug; TransactionAccount.class }) abstract public class DB extends RoomDatabase { - public static final int REVISION = 65; + public static final int REVISION = 66; public static final String DB_NAME = "MoLe.db"; public static final MutableLiveData initComplete = new MutableLiveData<>(false); private static DB instance; + private static void fixTransactionDescriptionUpper( + @NonNull @NotNull SupportSQLiteDatabase database) { + try (Cursor c = database.query("SELECT id, description FROM transactions")) { + while (c.moveToNext()) { + final long id = c.getLong(0); + final String description = c.getString(1); + database.execSQL("UPDATE transactions SET description_uc=? WHERE id=?", + new Object[]{description.toUpperCase(), id + }); + } + } + } public static DB get() { if (instance != null) return instance; @@ -85,18 +97,17 @@ abstract public class DB extends RoomDatabase { singleVersionMigration(64), new Migration(64, 65) { @Override public void migrate(@NonNull @NotNull SupportSQLiteDatabase database) { - try (Cursor c = database.query( - "SELECT id, description FROM transactions")) - { - while (c.moveToNext()) { - final long id = c.getLong(0); - final String description = c.getString(1); - database.execSQL( - "UPDATE transactions SET description_uc=? WHERE id=?", - new Object[]{description.toUpperCase(), id - }); - } - } + fixTransactionDescriptionUpper(database); + } + }, new Migration(64, 66) { + @Override + public void migrate(@NonNull @NotNull SupportSQLiteDatabase database) { + fixTransactionDescriptionUpper(database); + } + }, new Migration(65, 66) { + @Override + public void migrate(@NonNull @NotNull SupportSQLiteDatabase database) { + fixTransactionDescriptionUpper(database); } } })