]> git.ktnx.net Git - mobile-ledger-staging.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java
NT: show currency selection trigger only in a transaction row
[mobile-ledger-staging.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / NewTransactionItemHolder.java
index 91d45031bd373e0f788be3813606cd7df47457c3..37506c049dfcda096039d644fdde908c43d8ef24 100644 (file)
@@ -91,6 +91,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder
     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;
@@ -353,6 +354,18 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder
         };
 
         currencyObserver = this::setCurrency;
+
+        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 =
@@ -552,6 +565,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;
             }
@@ -609,6 +623,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 {