import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import net.ktnx.mobileledger.async.RetrieveTransactionsTask;
import net.ktnx.mobileledger.async.TransactionAccumulator;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import net.ktnx.mobileledger.async.RetrieveTransactionsTask;
import net.ktnx.mobileledger.async.TransactionAccumulator;
import net.ktnx.mobileledger.db.Profile;
import net.ktnx.mobileledger.model.Data;
import net.ktnx.mobileledger.model.LedgerAccount;
import net.ktnx.mobileledger.db.Profile;
import net.ktnx.mobileledger.model.Data;
import net.ktnx.mobileledger.model.LedgerAccount;
public class MainModel extends ViewModel {
public final MutableLiveData<Integer> foundTransactionItemIndex = new MutableLiveData<>(null);
private final MutableLiveData<Boolean> updatingFlag = new MutableLiveData<>(false);
public class MainModel extends ViewModel {
public final MutableLiveData<Integer> foundTransactionItemIndex = new MutableLiveData<>(null);
private final MutableLiveData<Boolean> updatingFlag = new MutableLiveData<>(false);
private final MutableLiveData<List<TransactionListItem>> displayedTransactions =
new MutableLiveData<>(new ArrayList<>());
private final MutableLiveData<String> updateError = new MutableLiveData<>();
private final MutableLiveData<List<TransactionListItem>> displayedTransactions =
new MutableLiveData<>(new ArrayList<>());
private final MutableLiveData<String> updateError = new MutableLiveData<>();
transient private RetrieveTransactionsTask retrieveTransactionsTask;
transient private Thread displayedAccountsUpdater;
private TransactionsDisplayedFilter displayedTransactionsUpdater;
transient private RetrieveTransactionsTask retrieveTransactionsTask;
transient private Thread displayedAccountsUpdater;
private TransactionsDisplayedFilter displayedTransactionsUpdater;
public LiveData<List<TransactionListItem>> getDisplayedTransactions() {
return displayedTransactions;
}
public LiveData<List<TransactionListItem>> getDisplayedTransactions() {
return displayedTransactions;
}
Logger.debug("dFilter", String.format(Locale.US,
"entered synchronized block (about to examine %d transactions)", list.size()));
String accNameFilter = model.getAccountFilter()
.getValue();
Logger.debug("dFilter", String.format(Locale.US,
"entered synchronized block (about to examine %d transactions)", list.size()));
String accNameFilter = model.getAccountFilter()
.getValue();
- if (!isInterrupted()) {
- acc.done();
- }
- Logger.debug("dFilter", "left synchronized block");
+
+ if (isInterrupted())
+ return;
+
+ acc.publishResults(model);
+ Logger.debug("dFilter", "transaction list updated");