+ if (accRow.hasLiteralAmount()) {
+ b.templateDetailsAccountAmountSource.setText(
+ R.string.template_details_source_literal);
+ b.templateDetailsAccountAmount.setVisibility(View.VISIBLE);
+ Float amt = accRow.getAmount();
+ b.templateDetailsAccountAmount.setText((amt == null) ? null : String.format(
+ Data.locale.getValue(), "%,4.2f", (accRow.getAmount())));
+ b.negateAmountSwitch.setVisibility(View.GONE);
+ b.templateDetailsNegateAmountLabel.setVisibility(View.GONE);
+ b.templateDetailsNegateAmountText.setVisibility(View.GONE);
+ }
+ else {
+ b.templateDetailsAccountAmountSource.setText(
+ String.format(Locale.US, groupNoText, accRow.getAmountMatchGroup(),
+ getMatchGroupText(accRow.getAmountMatchGroup())));
+ b.templateDetailsAccountAmountLayout.setVisibility(View.GONE);
+ b.negateAmountSwitch.setVisibility(View.VISIBLE);
+ b.negateAmountSwitch.setChecked(accRow.isNegateAmount());
+ b.templateDetailsNegateAmountText.setText(
+ accRow.isNegateAmount() ? R.string.template_account_change_amount_sign
+ : R.string.template_account_keep_amount_sign);
+ b.templateDetailsNegateAmountLabel.setVisibility(View.VISIBLE);
+ b.templateDetailsNegateAmountText.setVisibility(View.VISIBLE);
+ }
+
+ if (accRow.hasLiteralCurrency()) {
+ b.templateDetailsAccountCurrencySource.setText(
+ R.string.template_details_source_literal);
+ net.ktnx.mobileledger.db.Currency c = accRow.getCurrency();
+ if (c == null)
+ b.templateDetailsAccountCurrency.setText(R.string.btn_no_currency);
+ else
+ b.templateDetailsAccountCurrency.setText(c.getName());
+ b.templateDetailsAccountCurrency.setVisibility(View.VISIBLE);
+ }
+ else {
+ b.templateDetailsAccountCurrencySource.setText(
+ String.format(Locale.US, groupNoText, accRow.getCurrencyMatchGroup(),
+ getMatchGroupText(accRow.getCurrencyMatchGroup())));
+ b.templateDetailsAccountCurrency.setVisibility(View.GONE);
+ }
+
+ b.templateAccountNameSourceLabel.setOnClickListener(
+ v -> selectAccountRowDetailSource(v, AccDetail.ACCOUNT));
+ b.templateDetailsAccountNameSource.setOnClickListener(
+ v -> selectAccountRowDetailSource(v, AccDetail.ACCOUNT));
+ b.templateAccountCommentSourceLabel.setOnClickListener(
+ v -> selectAccountRowDetailSource(v, AccDetail.COMMENT));
+ b.templateDetailsAccountCommentSource.setOnClickListener(
+ v -> selectAccountRowDetailSource(v, AccDetail.COMMENT));
+ b.templateAccountAmountSourceLabel.setOnClickListener(
+ v -> selectAccountRowDetailSource(v, AccDetail.AMOUNT));
+ b.templateDetailsAccountAmountSource.setOnClickListener(
+ v -> selectAccountRowDetailSource(v, AccDetail.AMOUNT));
+ b.templateDetailsAccountCurrencySource.setOnClickListener(
+ v -> selectAccountRowDetailSource(v, AccDetail.CURRENCY));
+ b.templateAccountCurrencySourceLabel.setOnClickListener(
+ v -> selectAccountRowDetailSource(v, AccDetail.CURRENCY));
+ if (accRow.hasLiteralCurrency())
+ b.templateDetailsAccountCurrency.setOnClickListener(v -> {
+ CurrencySelectorFragment cpf = CurrencySelectorFragment.newInstance(
+ CurrencySelectorFragment.DEFAULT_COLUMN_COUNT, false);
+ cpf.setOnCurrencySelectedListener(text -> {
+ if (text == null) {
+ b.templateDetailsAccountCurrency.setText(R.string.btn_no_currency);
+ accRow.setCurrency(null);
+ }
+ else {
+ b.templateDetailsAccountCurrency.setText(text);
+ DB.get()
+ .getCurrencyDAO()
+ .getByName(text)
+ .observe((LifecycleOwner) b.getRoot()
+ .getContext(), accRow::setCurrency);
+ }
+ });
+ cpf.show(
+ ((TemplatesActivity) b.templateDetailsAccountCurrency.getContext()).getSupportFragmentManager(),
+ "currency-selector");
+ });