X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FRetrieveTransactionsTask.java;h=ef6eb8172c0598f3088af2c5481be4073042862f;hb=5e5e48984b4239b548a9d95a99323b874928e32f;hp=d7c1996f51403c448d43278a57f45c4017c9f637;hpb=a5ee532b931532af956223ed31fd956c319445fd;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java b/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java index d7c1996f..ef6eb817 100644 --- a/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java +++ b/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.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 @@ -159,12 +159,8 @@ public class RetrieveTransactionsTask HttpURLConnection http = NetworkUtil.prepareConnection(profile, "journal"); http.setAllowUserInteraction(false); publishProgress(progress); - switch (http.getResponseCode()) { - case 200: - break; - default: - throw new HTTPException(http.getResponseCode(), http.getResponseMessage()); - } + if (http.getResponseCode() != 200) + throw new HTTPException(http.getResponseCode(), http.getResponseMessage()); SQLiteDatabase db = App.getDatabase(); try (InputStream resp = http.getInputStream()) { @@ -206,7 +202,7 @@ public class RetrieveTransactionsTask // state of the database db.setTransactionSuccessful(); db.endTransaction(); - Data.accounts.setList(accountList); + profile.setAccounts(accountList); db.beginTransaction(); continue; } @@ -220,7 +216,7 @@ public class RetrieveTransactionsTask prevAccount = lastAccount; lastAccount = profile.tryLoadAccount(db, acct_name); if (lastAccount == null) - lastAccount = new LedgerAccount(acct_name); + lastAccount = new LedgerAccount(profile, acct_name); else lastAccount.removeAmounts(); profile.storeAccount(db, lastAccount); @@ -240,15 +236,14 @@ public class RetrieveTransactionsTask if (accountNames.containsKey(parentName)) break; toAppend.push(parentName); - parentName = new LedgerAccount(parentName).getParentName(); + parentName = new LedgerAccount(profile, parentName).getParentName(); } syntheticAccounts.clear(); while (!toAppend.isEmpty()) { String aName = toAppend.pop(); LedgerAccount acc = profile.tryLoadAccount(db, aName); if (acc == null) { - acc = new LedgerAccount(aName); - acc.setHiddenByStar(lastAccount.isHiddenByStar()); + acc = new LedgerAccount(profile, aName); acc.setExpanded(!lastAccount.hasSubAccounts() || lastAccount.isExpanded()); } @@ -484,7 +479,7 @@ public class RetrieveTransactionsTask LedgerAccount acc = profile.tryLoadAccount(db, parsedAccount.getAname()); if (acc == null) - acc = new LedgerAccount(parsedAccount.getAname()); + acc = new LedgerAccount(profile, parsedAccount.getAname()); else acc.removeAmounts(); @@ -528,16 +523,13 @@ public class RetrieveTransactionsTask profile.deleteNotPresentAccounts(db); throwIfCancelled(); db.setTransactionSuccessful(); - listFilledOK = true; } finally { db.endTransaction(); } } - // should not be set in the DB transaction, because of a possible deadlock - // with the main and DbOpQueueRunner threads - if (listFilledOK) - Data.accounts.setList(accountList); + + profile.setAccounts(accountList); return true; }