X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fmodel%2FMobileLedgerProfile.java;h=b8085765eb069048f78cfe5621e93ef8e5887268;hb=ac0613b80e71c41dc885d2eed7c00a5cfa587c1d;hp=0e8c04485262c6fa8c603408051807914557b039;hpb=dfb7d2672b202a4ca2745b5630ef21f8ef3f0bdd;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java b/app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java index 0e8c0448..b8085765 100644 --- a/app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java +++ b/app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java @@ -629,6 +629,25 @@ public final class MobileLedgerProfile { new AccountAndTransactionListSaver(this, accounts, transactions); accountAndTransactionListSaver.start(); } + private Currency tryLoadCurrencyById(SQLiteDatabase db, int id) { + try (Cursor cursor = db.rawQuery( + "SELECT c.id, c.name, c.position, c.has_gap FROM currencies c WHERE c.id=?", + new String[]{String.valueOf(id)})) + { + if (cursor.moveToFirst()) { + return new Currency(cursor.getInt(0), cursor.getString(1), + Currency.Position.valueOf(cursor.getString(2)), cursor.getInt(3) == 1); + } + return null; + } + } + public Currency loadCurrencyById(int id) { + SQLiteDatabase db = App.getDatabase(); + Currency result = tryLoadCurrencyById(db, id); + if (result == null) + throw new RuntimeException(String.format("Unable to load currency with id '%d'", id)); + return result; + } public enum FutureDates { None(0), OneWeek(7), TwoWeeks(14), OneMonth(30), TwoMonths(60), ThreeMonths(90),