]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java
make Currency loadable by id
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / model / MobileLedgerProfile.java
index 0e8c04485262c6fa8c603408051807914557b039..b8085765eb069048f78cfe5621e93ef8e5887268 100644 (file)
@@ -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),