X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FNewTransactionItemHolder.java;h=53e97e826c0092cb23ec1eb4136b69a6944bdcd5;hb=ee38e21aa7318a51f9f3e62788d920e13b7be620;hp=6f410924081ef85e41f21e7073f51382d795f6da;hpb=5545ddea3574103c2a7eea552fff0d43a0587fac;p=mobile-ledger-staging.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java index 6f410924..53e97e82 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java @@ -91,6 +91,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder private Observer currencyGapObserver; private Observer localeObserver; private Observer currencyObserver; + private Observer showCurrencyObserver; private boolean inUpdate = false; private boolean syncingData = false; private View commentButton; @@ -231,7 +232,8 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder }); 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)); @@ -351,7 +353,22 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder 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 = @@ -488,7 +505,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder if (amount.isEmpty()) { account.resetAmount(); - account.setCurrency(null); +// account.setCurrency(null); } else { try { @@ -551,6 +568,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder Data.currencyGap.removeObserver(currencyGapObserver); Data.locale.removeObserver(localeObserver); this.item.stopObservingCurrency(currencyObserver); + this.item.getModel().showCurrency.removeObserver(showCurrencyObserver); this.item = null; } @@ -608,6 +626,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder Data.currencyGap.observe(activity, currencyGapObserver); Data.locale.observe(activity, localeObserver); item.observeCurrency(activity, currencyObserver); + item.getModel().showCurrency.observe(activity, showCurrencyObserver); } } finally {