]> git.ktnx.net Git - mobile-ledger-staging.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/async/TransactionAccumulator.java
final fix for the first date delimiter item
[mobile-ledger-staging.git] / app / src / main / java / net / ktnx / mobileledger / async / TransactionAccumulator.java
index 1b96425681642a25580c13c7a8d2518e035051ae..e7d21ed202a0973a3ad95bbec797421f7a13a28c 100644 (file)
@@ -28,21 +28,26 @@ public class TransactionAccumulator {
     private final ArrayList<TransactionListItem> 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()");
-        if (null == latestDate) {
+
+        // first item
+        if (null == latestDate)
             latestDate = date;
-            list.add(new TransactionListItem(date, SimpleDate.today().month != date.month));
-        }
         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));
         }
@@ -50,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);
     }