From 7526e4b8588361e218b5215f77bc7445e02ba970 Mon Sep 17 00:00:00 2001 From: Damyan Ivanov Date: Sat, 15 Aug 2020 12:00:37 +0000 Subject: [PATCH] new currency ID: without (not working) dance around duplicate IDs --- .../net/ktnx/mobileledger/model/Currency.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/net/ktnx/mobileledger/model/Currency.java b/app/src/main/java/net/ktnx/mobileledger/model/Currency.java index 6933930b..28e6d03e 100644 --- a/app/src/main/java/net/ktnx/mobileledger/model/Currency.java +++ b/app/src/main/java/net/ktnx/mobileledger/model/Currency.java @@ -60,21 +60,13 @@ public class Currency { } public Currency(MobileLedgerProfile profile, String name, Position position, boolean hasGap) { SQLiteDatabase db = App.getDatabase(); - int attempts = 0; - while (true) { - if (++attempts > 10) - throw new RuntimeException("Giving up getting next ID after 10 attempts"); - try (Cursor c = db.rawQuery("select max(rowid) from currencies", null)) { - c.moveToNext(); - int nextId = c.getInt(0) + 1; - db.execSQL("insert into currencies(id, name, position, has_gap) values(?, ?, ?, ?)", - new Object[]{nextId, name, position.toString(), hasGap}); - - this.id = nextId; - break; - } + try (Cursor c = db.rawQuery("select max(rowid) from currencies", null)) { + c.moveToNext(); + this.id = c.getInt(0) + 1; } + db.execSQL("insert into currencies(id, name, position, has_gap) values(?, ?, ?, ?)", + new Object[]{this.id, name, position.toString(), hasGap}); this.name = name; this.position = position; -- 2.39.5