X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2FMainModel.java;h=e95aae8c2bc17864d819ae47628bb1966462271e;hb=c23ad9955ae6fd92f6fac4fb176678ee3eb8fe7c;hp=039e24df6c45ed9495b09056efad4661debee203;hpb=0b96f4968cd5c0b36474b94b94ec6dcf6699f60c;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/MainModel.java b/app/src/main/java/net/ktnx/mobileledger/ui/MainModel.java index 039e24df..e95aae8c 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/MainModel.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/MainModel.java @@ -25,7 +25,6 @@ import androidx.lifecycle.ViewModel; import net.ktnx.mobileledger.async.RetrieveTransactionsTask; import net.ktnx.mobileledger.async.TransactionAccumulator; -import net.ktnx.mobileledger.async.UpdateTransactionsTask; import net.ktnx.mobileledger.db.Profile; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.LedgerAccount; @@ -41,7 +40,7 @@ import java.util.Locale; public class MainModel extends ViewModel { public final MutableLiveData foundTransactionItemIndex = new MutableLiveData<>(null); private final MutableLiveData updatingFlag = new MutableLiveData<>(false); - private final MutableLiveData accountFilter = new MutableLiveData<>(); + private final MutableLiveData accountFilter = new MutableLiveData<>(null); private final MutableLiveData> displayedTransactions = new MutableLiveData<>(new ArrayList<>()); private final MutableLiveData updateError = new MutableLiveData<>(); @@ -50,10 +49,6 @@ public class MainModel extends ViewModel { transient private RetrieveTransactionsTask retrieveTransactionsTask; transient private Thread displayedAccountsUpdater; private TransactionsDisplayedFilter displayedTransactionsUpdater; - public void scheduleTransactionListReload() { - UpdateTransactionsTask task = new UpdateTransactionsTask(); - task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, this); - } public LiveData getUpdatingFlag() { return updatingFlag; } @@ -63,9 +58,9 @@ public class MainModel extends ViewModel { public LiveData> getDisplayedTransactions() { return displayedTransactions; } - public void setDisplayedTransactions(List list) { + public void setDisplayedTransactions(List list, int transactionCount) { displayedTransactions.postValue(list); - Data.lastUpdateTransactionCount.postValue(list.size()); + Data.lastUpdateTransactionCount.postValue(transactionCount); } public SimpleDate getFirstTransactionDate() { return firstTransactionDate; @@ -127,13 +122,12 @@ public class MainModel extends ViewModel { @Override public void run() { List 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, accNameFilter); for (LedgerTransaction tr : list) { if (isInterrupted()) { return; @@ -143,10 +137,12 @@ public class MainModel extends ViewModel { 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"); } } }