+ Data.transactions.addObserver(
+ (o, arg) -> mActivity.runOnUiThread(() -> modelAdapter.notifyDataSetChanged()));
+
+ mActivity.findViewById(R.id.clearAccountNameFilter).setOnClickListener(v -> {
+ String current = Data.accountFilter.get();
+ Data.accountFilter.set(null);
+ vAccountFilter.setVisibility(View.GONE);
+ menuTransactionListFilter.setVisible(true);
+ Globals.hideSoftKeyboard(mActivity);
+ });
+
+ onAccountNameFilterChanged(false);
+ }
+ private void onAccountNameFilterChanged() {
+ onAccountNameFilterChanged(true);
+ }
+ private void onAccountNameFilterChanged(boolean reloadTransactions) {
+ String accName = Data.accountFilter.get();
+ if (accNameFilter != null) {
+ accNameFilter.setText(accName, false);
+ }
+ final boolean filterActive = (accName != null) && !accName.isEmpty();
+ if (vAccountFilter != null) {
+ vAccountFilter.setVisibility(filterActive ? View.VISIBLE : View.GONE);
+ }
+ if (menuTransactionListFilter != null) menuTransactionListFilter.setVisible(!filterActive);
+
+ if (reloadTransactions) TransactionListViewModel.scheduleTransactionListReload();