X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fmodel%2FCurrency.java;h=5f488e28634eb4ca72a156b05371be075747c0af;hb=e6fdbea0f85cdab59640f41e6365875d26880810;hp=6933930b6834494c5bccaf96fd3972f0b93864b5;hpb=c27aa72c2c641bcd568692b4a20b125605cfb3b5;p=mobile-ledger-staging.git 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..5f488e28 100644 --- a/app/src/main/java/net/ktnx/mobileledger/model/Currency.java +++ b/app/src/main/java/net/ktnx/mobileledger/model/Currency.java @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Damyan Ivanov. + * Copyright © 2020 Damyan Ivanov. * This file is part of MoLe. * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -42,7 +42,7 @@ public class Currency { (oldItem.hasGap == newItem.hasGap); } }; - private int id; + private final int id; private String name; private Position position; private boolean hasGap; @@ -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; @@ -127,24 +119,6 @@ public class Currency { this.hasGap = hasGap; } public enum Position { - before(-1), after(1), unknown(0), none(-2); - private int value; - Position(int value) { - this.value = value; - } - static Position valueOf(int value) { - switch (value) { - case -1: - return before; - case +1: - return after; - case 0: - return unknown; - case -2: - return none; - default: - throw new IllegalStateException(String.format("Unexpected value (%d)", value)); - } - } + before, after, unknown, none } }