import net.ktnx.mobileledger.ui.transaction_list.TransactionListFragment;
import net.ktnx.mobileledger.ui.transaction_list.TransactionListViewModel;
import net.ktnx.mobileledger.utils.Colors;
+import net.ktnx.mobileledger.utils.LockHolder;
import net.ktnx.mobileledger.utils.MLDB;
import java.lang.ref.WeakReference;
public void onLatestTransactionsClicked(View view) {
drawer.closeDrawers();
- showTransactionsFragment(null);
+ showTransactionsFragment((String) null);
}
private void resetFragmentBackStack() {
// fragmentManager.popBackStack(0, FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
- private void showTransactionsFragment(LedgerAccount account) {
- if (account != null) TransactionListFragment.accountFilter.set(account.getName());
+ private void showTransactionsFragment(String accName) {
+ TransactionListFragment.accountFilter.set(accName);
+ TransactionListFragment.accountFilter.notifyObservers();
mViewPager.setCurrentItem(1, true);
+ }
+ private void showTransactionsFragment(LedgerAccount account) {
+ showTransactionsFragment((account == null) ? (String) null : account.getName());
// FragmentTransaction ft = fragmentManager.beginTransaction();
// if (transactionListFragment == null) {
// Log.d("flow", "MainActivity creating TransactionListFragment");
// removing all child accounts from the view
int start = -1, count = 0;
+ try (LockHolder lh = Data.accounts.lockForWriting()) {
for (int i = 0; i < Data.accounts.size(); i++) {
if (acc.isParentOf(Data.accounts.get(i))) {
// Log.d("accounts", String.format("Found a child '%s' at position %d",
mAccountSummaryFragment.modelAdapter
.notifyItemRangeRemoved(start, count);
+ }
}
}
else {
animator.rotationBy(-180);
List<LedgerAccount> children =
Data.profile.get().loadVisibleChildAccountsOf(acc);
+ try (LockHolder lh = Data.accounts.lockForWriting()) {
int parentPos = Data.accounts.indexOf(acc);
if (parentPos != -1) {
// may have disappeared in a concurrent refresh operation
mAccountSummaryFragment.modelAdapter
.notifyItemRangeInserted(parentPos + 1, children.size());
}
+ }
}
break;
case R.id.account_row_acc_amounts:
- showAccountTransactions(acc);
+ if (acc.getAmountCount() > AccountSummaryAdapter.AMOUNT_LIMIT) {
+ acc.toggleAmountsExpanded();
+ DbOpQueue
+ .add("update accounts set amounts_expanded=? where name=? and profile=?",
+ new Object[]{acc.amountsExpanded(), acc.getName(),
+ Data.profile.get().getUuid()
+ });
+ Data.accounts.triggerItemChangedNotification(acc);
+ }
break;
}
}