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
@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);
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);
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)
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();
}