- public Calendar getFirstTransactionDate() {
- return firstTransactionDate;
- }
- public Calendar getLastTransactionDate() {
- return lastTransactionDate;
- }
- private void applyTransactionFilter(List<LedgerTransaction> list) {
- final String accFilter = Data.accountFilter.getValue();
- if (TextUtils.isEmpty(accFilter)) {
- displayedTransactions.postValue(list);
- }
- else {
- ArrayList<LedgerTransaction> newList = new ArrayList<>();
- for (LedgerTransaction tr : list) {
- if (tr.hasAccountNamedLike(accFilter))
- newList.add(tr);
- }
- displayedTransactions.postValue(newList);
- }
- }
- synchronized public void storeAccountListAsync(List<LedgerAccount> list,
- boolean storeUiFields) {
- if (accountListSaver != null)
- accountListSaver.interrupt();
- accountListSaver = new AccountListSaver(this, list, storeUiFields);
- accountListSaver.start();
- }
- public void setAndStoreAccountListFromWeb(ArrayList<LedgerAccount> list) {
- SQLiteDatabase db = App.getDatabase();
- db.beginTransactionNonExclusive();
- try {
- Logger.debug("db/benchmark",
- String.format(Locale.US, "Storing %d accounts", list.size()));
- int gen = getNextAccountsGeneration(db);
- Logger.debug("db/benckmark",
- String.format(Locale.US, "Got next generation of %d", gen));
- for (LedgerAccount acc : list) {
- storeAccount(db, gen, acc, false);
- for (LedgerAmount amt : acc.getAmounts()) {
- storeAccountValue(db, gen, acc.getName(), amt.getCurrency(), amt.getAmount());
- }
- }
- Logger.debug("db/benchmark", "Done storing accounts");
- deleteNotPresentAccounts(db, gen);
- setLastUpdateStamp();
- db.setTransactionSuccessful();
- }
- finally {
- db.endTransaction();
- }
-
- mergeAccountListFromWeb(list);
- updateDisplayedAccounts();
- }
- public synchronized Locker lockAccountsForWriting() {
- accountsLocker.lockForWriting();
- return accountsLocker;
- }
- public void setAndStoreTransactionList(ArrayList<LedgerTransaction> list) {
- storeTransactionListAsync(this, list);
-
- allTransactions.postValue(list);
- }
- private void storeTransactionListAsync(MobileLedgerProfile mobileLedgerProfile,
- List<LedgerTransaction> list) {
- if (transactionListSaver != null)
- transactionListSaver.interrupt();
-
- transactionListSaver = new TransactionListSaver(this, list);
- transactionListSaver.start();
- }
- public void setAndStoreAccountAndTransactionListFromWeb(List<LedgerAccount> accounts,
- List<LedgerTransaction> transactions) {
- storeAccountAndTransactionListAsync(accounts, transactions, false);
-
- mergeAccountListFromWeb(accounts);
- updateDisplayedAccounts();
-
- allTransactions.postValue(transactions);
- }
- private void storeAccountAndTransactionListAsync(List<LedgerAccount> accounts,
- List<LedgerTransaction> transactions,
- boolean storeAccUiFields) {