X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FRetrieveTransactionsTask.java;h=8f1a764b386aa4db91a901fcde5688ec346dd6d6;hp=88b36c8b4a8c27a2b9e510f8e17de27014a63311;hb=010406b05a5a4f8447af34187afef8c1e78a4552;hpb=a127662212fc79017303036cc13a59e784adadbf 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 88b36c8b..8f1a764b 100644 --- a/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java +++ b/app/src/main/java/net/ktnx/mobileledger/async/RetrieveTransactionsTask.java @@ -169,11 +169,12 @@ public class RetrieveTransactionsTask acct_name = acct_name.replace("\"", ""); L(String.format("found account: %s", acct_name)); - lastAccount = profile.loadAccount(acct_name); - if (lastAccount == null) { + lastAccount = profile.tryLoadAccount(db, acct_name); + if (lastAccount == null) lastAccount = new LedgerAccount(acct_name); - profile.storeAccount(db, lastAccount); - } + else + lastAccount.removeAmounts(); + profile.storeAccount(db, lastAccount); // make sure the parent account(s) are present, // synthesising them if necessary @@ -189,8 +190,8 @@ public class RetrieveTransactionsTask while (!toAppend.isEmpty()) { String aName = toAppend.pop(); LedgerAccount acc = new LedgerAccount(aName); - acc.setHidden(lastAccount.isHidden()); - if (!onlyStarred || !acc.isHidden()) + acc.setHiddenByStar(lastAccount.isHiddenByStar()); + if (!onlyStarred || !acc.isHiddenByStar()) accountList.add(acc); L(String.format("gap-filling with %s", aName)); accountNames.put(aName, null); @@ -198,7 +199,7 @@ public class RetrieveTransactionsTask } } - if (!onlyStarred || !lastAccount.isHidden()) + if (!onlyStarred || !lastAccount.isHiddenByStar()) accountList.add(lastAccount); accountNames.put(acct_name, null); @@ -474,6 +475,10 @@ public class RetrieveTransactionsTask progress.setTotal(maxTransactionId); } + if ((progress.getTotal() == Progress.INDETERMINATE) || + (progress.getTotal() < transaction.getId())) + progress.setTotal(transaction.getId()); + progress.setProgress(++processedTransactionCount); publishProgress(progress); } @@ -512,7 +517,7 @@ public class RetrieveTransactionsTask } catch (IOException e) { e.printStackTrace(); - return "Parse error"; + return e.getLocalizedMessage(); } catch (ParseException e) { e.printStackTrace();