public class MainModel extends ViewModel {
public final MutableLiveData<Integer> foundTransactionItemIndex = new MutableLiveData<>(null);
private final MutableLiveData<Boolean> updatingFlag = new MutableLiveData<>(false);
- private final MutableLiveData<String> accountFilter = new MutableLiveData<>();
+ private final MutableLiveData<String> accountFilter = new MutableLiveData<>(null);
private final MutableLiveData<List<TransactionListItem>> displayedTransactions =
new MutableLiveData<>(new ArrayList<>());
private final MutableLiveData<String> updateError = new MutableLiveData<>();
@Override
public void run() {
List<LedgerAccount> newDisplayed = new ArrayList<>();
- Logger.debug("dFilter", "waiting for synchronized block");
Logger.debug("dFilter", String.format(Locale.US,
"entered synchronized block (about to examine %d transactions)", list.size()));
String accNameFilter = model.getAccountFilter()
.getValue();
- TransactionAccumulator acc = new TransactionAccumulator(model);
+ TransactionAccumulator acc = new TransactionAccumulator(accNameFilter);
for (LedgerTransaction tr : list) {
if (isInterrupted()) {
return;
acc.put(tr, tr.getDate());
}
}
- if (!isInterrupted()) {
- acc.done();
- }
- Logger.debug("dFilter", "left synchronized block");
+
+ if (isInterrupted())
+ return;
+
+ acc.publishResults(model);
+ Logger.debug("dFilter", "transaction list updated");
}
}
}