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
}
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)
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);
}