]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/async/TransactionAccumulator.java
fix displayed transactions count
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / async / TransactionAccumulator.java
index 62b962748b9bab4e3a0deda55e1fe77f2cc34bc9..1d86dbf629028ca417f1eee8587c8e704230c25a 100644 (file)
 
 package net.ktnx.mobileledger.async;
 
-import net.ktnx.mobileledger.model.Data;
 import net.ktnx.mobileledger.model.LedgerTransaction;
 import net.ktnx.mobileledger.model.TransactionListItem;
 import net.ktnx.mobileledger.ui.MainModel;
 import net.ktnx.mobileledger.utils.SimpleDate;
 
 import java.util.ArrayList;
-import java.util.Date;
 
 public class TransactionAccumulator {
     private final ArrayList<TransactionListItem> list = new ArrayList<>();
-    private final MainModel model;
     private final String boldAccountName;
     private SimpleDate earliestDate, latestDate;
     private SimpleDate lastDate;
-    private boolean done;
-    public TransactionAccumulator(MainModel model) {
-        this.model = model;
-
-        boldAccountName = model.getAccountFilter()
-                               .getValue();
+    private int transactionCount = 0;
+    public TransactionAccumulator(String boldAccountName) {
+        this.boldAccountName = boldAccountName;
 
         list.add(new TransactionListItem());    // head item
     }
@@ -45,8 +39,7 @@ public class TransactionAccumulator {
         put(transaction, transaction.getDate());
     }
     public void put(LedgerTransaction transaction, SimpleDate date) {
-        if (done)
-            throw new IllegalStateException("Can't put new items after done()");
+        transactionCount++;
 
         // first item
         if (null == latestDate)
@@ -64,10 +57,8 @@ public class TransactionAccumulator {
 
         lastDate = date;
     }
-    public void done() {
-        done = true;
-        model.setDisplayedTransactions(list);
-        Data.lastUpdateDate.postValue(new Date());
+    public void publishResults(MainModel model) {
+        model.setDisplayedTransactions(list, transactionCount);
         model.setFirstTransactionDate(earliestDate);
         model.setLastTransactionDate(latestDate);
     }