X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Ftransaction_list%2FTransactionListFragment.java;h=e15349803dc1bee40f94c6a3003d42830c8b56d9;hp=56d5032f90a06d12bcc41e4b10196c50eafaecf9;hb=1796886d67b4d62c9fad1ea0980f38f53b8ce3b7;hpb=b52d7713c3ae8bd0c8bfc192450ae0672d884aa1 diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java b/app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java index 56d5032f..e1534980 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListFragment.java @@ -129,8 +129,8 @@ public class TransactionListFragment extends MobileLedgerListFragment vAccountFilter = view.findViewById(R.id.transaction_list_account_name_filter); accNameFilter = view.findViewById(R.id.transaction_filter_account_name); - Profile profile = Data.getProfile(); - accNameFilter.setAdapter(new AccountAutocompleteAdapter(mainActivity, profile)); + Data.observeProfile(getViewLifecycleOwner(), this::onProfileChanged); + accNameFilter.setOnItemClickListener((parent, v, position, id) -> { // debug("tmp", "direct onItemClick"); model.getAccountFilter() @@ -151,8 +151,6 @@ public class TransactionListFragment extends MobileLedgerListFragment .setOnClickListener(v -> { model.getAccountFilter() .setValue(null); - vAccountFilter.setVisibility(View.GONE); - menuTransactionListFilter.setVisible(true); Globals.hideSoftKeyboard(mainActivity); }); @@ -165,24 +163,21 @@ public class TransactionListFragment extends MobileLedgerListFragment } }); } - private void onAccountNameFilterChanged(String accName) { - final String fieldText = accNameFilter.getText() - .toString(); - if ((accName == null) && (fieldText.equals(""))) + private void onProfileChanged(Profile profile) { + if (profile == null) return; - if (accNameFilter != null) { - accNameFilter.setText(accName, false); - } + accNameFilter.setAdapter(new AccountAutocompleteAdapter(getContext(), profile)); + } + private void onAccountNameFilterChanged(String accName) { + 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); - - model.scheduleTransactionListReload(); - } @Override public void onCreateOptionsMenu(@NotNull Menu menu, @NotNull MenuInflater inflater) { @@ -192,18 +187,14 @@ public class TransactionListFragment extends MobileLedgerListFragment if ((menuTransactionListFilter == null)) throw new AssertionError(); - if ((model.getAccountFilter() - .getValue() != null) || (vAccountFilter.getVisibility() == View.VISIBLE)) - { - menuTransactionListFilter.setVisible(false); - } + model.getAccountFilter() + .observe(this, v -> menuTransactionListFilter.setVisible(v == null)); super.onCreateOptionsMenu(menu, inflater); menuTransactionListFilter.setOnMenuItemClickListener(item -> { vAccountFilter.setVisibility(View.VISIBLE); - if (menuTransactionListFilter != null) - menuTransactionListFilter.setVisible(false); + menuTransactionListFilter.setVisible(false); accNameFilter.requestFocus(); InputMethodManager imm = (InputMethodManager) getMainActivity().getSystemService(INPUT_METHOD_SERVICE);