X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fmodel%2FMobileLedgerProfile.java;h=a279f34f0b45fa38a9230822f967a208a93895e4;hp=a75ac72aae165e02cb40e76aa17bc3c8a5a7b471;hb=0fc2ddc465cd9b9314ae336e69535020a96a7fbc;hpb=1c42b2e42a6fe3fe2aaae3ad3480d924db75f4ba 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 a75ac72a..a279f34f 100644 --- a/app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java +++ b/app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java @@ -22,7 +22,6 @@ import android.database.sqlite.SQLiteDatabase; import net.ktnx.mobileledger.async.DbOpQueue; import net.ktnx.mobileledger.utils.Globals; -import net.ktnx.mobileledger.utils.LockHolder; import net.ktnx.mobileledger.utils.MLDB; import java.util.ArrayList; @@ -52,11 +51,23 @@ public final class MobileLedgerProfile { public MobileLedgerProfile(String uuid) { this.uuid = uuid; } + public MobileLedgerProfile(MobileLedgerProfile origin) { + uuid = origin.uuid; + name = origin.name; + permitPosting = origin.permitPosting; + preferredAccountsFilter = origin.preferredAccountsFilter; + url = origin.url; + authEnabled = origin.authEnabled; + authUserName = origin.authUserName; + authPassword = origin.authPassword; + themeId = origin.themeId; + orderNo = origin.orderNo; + } // loads all profiles into Data.profiles // returns the profile with the given UUID public static MobileLedgerProfile loadAllFromDB(String currentProfileUUID) { MobileLedgerProfile result = null; - List list = new ArrayList<>(); + ArrayList list = new ArrayList<>(); SQLiteDatabase db = MLDB.getDatabase(); try (Cursor cursor = db.rawQuery("SELECT uuid, name, url, use_authentication, auth_user, " + "auth_password, permit_posting, theme, order_no, " + @@ -78,7 +89,7 @@ public final class MobileLedgerProfile { if (item.getUuid().equals(currentProfileUUID)) result = item; } } - Data.profiles.setList(list); + Data.profiles.setValue(list); return result; } public static void storeProfilesOrder() { @@ -86,14 +97,11 @@ public final class MobileLedgerProfile { db.beginTransaction(); try { int orderNo = 0; - try (LockHolder lh = Data.profiles.lockForReading()) { - for (int i = 0; i < Data.profiles.size(); i++) { - MobileLedgerProfile p = Data.profiles.get(i); - db.execSQL("update profiles set order_no=? where uuid=?", - new Object[]{orderNo, p.getUuid()}); - p.orderNo = orderNo; - orderNo++; - } + for (MobileLedgerProfile p : Data.profiles.getValue()) { + db.execSQL("update profiles set order_no=? where uuid=?", + new Object[]{orderNo, p.getUuid()}); + p.orderNo = orderNo; + orderNo++; } db.setTransactionSuccessful(); }