X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Ftransaction_list%2FTransactionListFragment.java;h=e15349803dc1bee40f94c6a3003d42830c8b56d9;hb=1796886d67b4d62c9fad1ea0980f38f53b8ce3b7;hp=037661f17edcdf15d07ced91f66942502ff49903;hpb=9ebf60c045fdf01d6f8d1243061e69232c2841ea;p=mobile-ledger.git 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 037661f1..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 @@ -37,8 +37,8 @@ import androidx.recyclerview.widget.RecyclerView; import net.ktnx.mobileledger.R; import net.ktnx.mobileledger.async.TransactionDateFinder; import net.ktnx.mobileledger.db.AccountAutocompleteAdapter; +import net.ktnx.mobileledger.db.Profile; import net.ktnx.mobileledger.model.Data; -import net.ktnx.mobileledger.model.MobileLedgerProfile; import net.ktnx.mobileledger.ui.DatePickerFragment; import net.ktnx.mobileledger.ui.FabManager; import net.ktnx.mobileledger.ui.MainModel; @@ -106,13 +106,13 @@ public class TransactionListFragment extends MobileLedgerListFragment root = view.findViewById(R.id.transaction_root); if (root == null) throw new RuntimeException("Can't get hold on the transaction value view"); - modelAdapter = new TransactionListAdapter(model); + modelAdapter = new TransactionListAdapter(); root.setAdapter(modelAdapter); mainActivity.fabShouldShow(); if (mainActivity instanceof FabManager.FabHandler) - FabManager.handle((FabManager.FabHandler) mainActivity, root); + FabManager.handle(mainActivity, root); LinearLayoutManager llm = new LinearLayoutManager(mainActivity); @@ -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); - MobileLedgerProfile 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);