X-Git-Url: https://git.ktnx.net/?p=mobile-ledger-staging.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FTransactionAccumulator.java;h=e7d21ed202a0973a3ad95bbec797421f7a13a28c;hp=8f57e769174e763abaa2a204776319b08a0acf6e;hb=2af429db4d7969bb6304e51912b61efa7314a548;hpb=5bba2c06a81c87327fdcf3f2a85c3206d932c2f9 diff --git a/app/src/main/java/net/ktnx/mobileledger/async/TransactionAccumulator.java b/app/src/main/java/net/ktnx/mobileledger/async/TransactionAccumulator.java index 8f57e769..e7d21ed2 100644 --- a/app/src/main/java/net/ktnx/mobileledger/async/TransactionAccumulator.java +++ b/app/src/main/java/net/ktnx/mobileledger/async/TransactionAccumulator.java @@ -28,19 +28,26 @@ public class TransactionAccumulator { private final ArrayList list = new ArrayList<>(); private final MainModel model; private SimpleDate earliestDate, latestDate; - private SimpleDate lastDate = SimpleDate.today(); + private SimpleDate lastDate; private boolean done; + private int transactionCount = 0; public TransactionAccumulator(MainModel model) { this.model = model; + + list.add(new TransactionListItem()); // head item } public void put(LedgerTransaction transaction, SimpleDate date) { if (done) throw new IllegalStateException("Can't put new items after done()"); + + // first item if (null == latestDate) latestDate = date; earliestDate = date; if (!date.equals(lastDate)) { + if (lastDate == null) + lastDate = SimpleDate.today(); boolean showMonth = date.month != lastDate.month || date.year != lastDate.year; list.add(new TransactionListItem(date, showMonth)); } @@ -48,10 +55,11 @@ public class TransactionAccumulator { list.add(new TransactionListItem(transaction)); lastDate = date; + transactionCount++; } public void done() { done = true; - model.setDisplayedTransactions(list); + model.setDisplayedTransactions(list, transactionCount); model.setFirstTransactionDate(earliestDate); model.setLastTransactionDate(latestDate); }