X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2FCurrencySelectorFragment.java;h=4993df37e1a71a4c93cf0b7561c53314da8d5d3b;hb=55dffdf66e7a8dc32b00df4cfd0c9d399c17aaaa;hp=d25db493f7b05b659bd6cb6c21f0989570737564;hpb=d2409f5625f84f811a323dbd1e0358dd7993e4da;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/CurrencySelectorFragment.java b/app/src/main/java/net/ktnx/mobileledger/ui/CurrencySelectorFragment.java index d25db493..4993df37 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/CurrencySelectorFragment.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/CurrencySelectorFragment.java @@ -59,9 +59,9 @@ public class CurrencySelectorFragment extends AppCompatDialogFragment public static final String ARG_SHOW_PARAMS = "show-params"; public static final boolean DEFAULT_SHOW_PARAMS = true; private int mColumnCount = DEFAULT_COLUMN_COUNT; - private OnCurrencySelectedListener mListener; private CurrencySelectorModel model; private boolean deferredShowPositionAndPadding; + private OnCurrencySelectedListener onCurrencySelectedListener; /** * Mandatory empty constructor for the fragment manager to instantiate the @@ -92,7 +92,7 @@ public class CurrencySelectorFragment extends AppCompatDialogFragment @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { - Context context = Objects.requireNonNull(getContext()); + Context context = requireContext(); Dialog csd = new Dialog(context); csd.setContentView(R.layout.fragment_currency_selector_list); csd.setTitle(R.string.choose_currency_label); @@ -106,11 +106,13 @@ public class CurrencySelectorFragment extends AppCompatDialogFragment recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount)); } model = new ViewModelProvider(this).get(CurrencySelectorModel.class); - MobileLedgerProfile profile = Objects.requireNonNull(Data.profile.getValue()); + if (onCurrencySelectedListener != null) + model.setOnCurrencySelectedListener(onCurrencySelectedListener); + MobileLedgerProfile profile = Objects.requireNonNull(Data.getProfile()); model.currencies.setValue(new CopyOnWriteArrayList<>(profile.getCurrencies())); CurrencySelectorRecyclerViewAdapter adapter = new CurrencySelectorRecyclerViewAdapter(); - model.currencies.observe(this, list -> adapter.submitList(list)); + model.currencies.observe(this, adapter::submitList); recyclerView.setAdapter(adapter); adapter.setCurrencySelectedListener(this); @@ -182,14 +184,12 @@ public class CurrencySelectorFragment extends AppCompatDialogFragment gap.setChecked(Data.currencyGap.getValue()); - gap.setOnCheckedChangeListener((v, checked) -> { - Data.currencyGap.setValue(checked); - }); + gap.setOnCheckedChangeListener((v, checked) -> Data.currencyGap.setValue(checked)); - model.observePositionAndPaddingVisible(this, visible -> { - csd.findViewById(R.id.params_panel) - .setVisibility(visible ? View.VISIBLE : View.GONE); - }); + model.observePositionAndPaddingVisible(this, visible -> csd.findViewById(R.id.params_panel) + .setVisibility( + visible ? View.VISIBLE + : View.GONE)); if ((savedInstanceState != null) ? savedInstanceState.getBoolean(ARG_SHOW_PARAMS, DEFAULT_SHOW_PARAMS) : DEFAULT_SHOW_PARAMS) @@ -200,15 +200,17 @@ public class CurrencySelectorFragment extends AppCompatDialogFragment return csd; } public void setOnCurrencySelectedListener(OnCurrencySelectedListener listener) { - mListener = listener; + onCurrencySelectedListener = listener; + + if (model != null) + model.setOnCurrencySelectedListener(listener); } public void resetOnCurrencySelectedListener() { - mListener = null; + model.resetOnCurrencySelectedListener(); } @Override public void onCurrencySelected(Currency item) { - if (mListener != null) - mListener.onCurrencySelected(item); + model.triggerOnCurrencySelectedListener(item); dismiss(); }