private Observer<Boolean> currencyGapObserver;
private Observer<Locale> localeObserver;
private Observer<Currency> currencyObserver;
+ private Observer<Boolean> showCurrencyObserver;
private boolean inUpdate = false;
private boolean syncingData = false;
private View commentButton;
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
- tvAmount.setKeyListener(DigitsKeyListener.getInstance(Locale.getDefault(), true, true));
+ tvAmount.setKeyListener(
+ DigitsKeyListener.getInstance(Data.locale.getValue(), true, true));
else
tvAmount.setKeyListener(
DigitsKeyListener.getInstance("0123456789+-" + decimalSeparator + decimalDot));
tvAmount.setKeyListener(DigitsKeyListener.getInstance(locale, true, true));
};
- currencyObserver = this::setCurrency;
+ currencyObserver = currency -> {
+ setCurrency(currency);
+ adapter.model.checkTransactionSubmittable(adapter);
+ };
+
+ showCurrencyObserver = showCurrency -> {
+ if (item.getType() == ItemType.transactionRow) {
+ if (showCurrency) {
+ tvCurrency.setVisibility(View.VISIBLE);
+ }
+ else {
+ tvCurrency.setVisibility(View.GONE);
+ item.setCurrency(null);
+ }
+ }
+ };
}
private void updateCurrencyPositionAndPadding(Currency.Position position, boolean hasGap) {
ConstraintLayout.LayoutParams amountLP =
if (amount.isEmpty()) {
account.resetAmount();
- account.setCurrency(null);
+// account.setCurrency(null);
}
else {
try {
Data.currencyGap.removeObserver(currencyGapObserver);
Data.locale.removeObserver(localeObserver);
this.item.stopObservingCurrency(currencyObserver);
+ this.item.getModel().showCurrency.removeObserver(showCurrencyObserver);
this.item = null;
}
Data.currencyGap.observe(activity, currencyGapObserver);
Data.locale.observe(activity, localeObserver);
item.observeCurrency(activity, currencyObserver);
+ item.getModel().showCurrency.observe(activity, showCurrencyObserver);
}
}
finally {