]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java
hew transaction entry: honour default currency setting
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / NewTransactionItemHolder.java
index 64161a5cc1964e922d30ca83d9ce5da679efe588..5596d5746c072201361fbb5762a354a34c5ac7e1 100644 (file)
@@ -20,6 +20,7 @@ package net.ktnx.mobileledger.ui.activity;
 import android.annotation.SuppressLint;
 import android.graphics.Typeface;
 import android.text.Editable;
+import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.view.Gravity;
 import android.view.View;
@@ -65,33 +66,33 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder
     private final TextView tvCurrency;
     private final Observer<Boolean> showCommentsObserver;
     private final TextView tvTransactionComment;
+    private final TextView tvDate;
+    private final AutoCompleteTextView tvDescription;
+    private final TextView tvDummy;
+    private final AutoCompleteTextView tvAccount;
+    private final TextView tvComment;
+    private final EditText tvAmount;
+    private final ViewGroup lHead;
+    private final ViewGroup lAccount;
+    private final FrameLayout lPadding;
+    private final MobileLedgerProfile mProfile;
+    private final Observer<SimpleDate> dateObserver;
+    private final Observer<String> descriptionObserver;
+    private final Observer<String> transactionCommentObserver;
+    private final Observer<String> hintObserver;
+    private final Observer<Integer> focusedAccountObserver;
+    private final Observer<Integer> accountCountObserver;
+    private final Observer<Boolean> editableObserver;
+    private final Observer<Currency.Position> currencyPositionObserver;
+    private final Observer<Boolean> currencyGapObserver;
+    private final Observer<Locale> localeObserver;
+    private final Observer<Currency> currencyObserver;
+    private final Observer<Boolean> showCurrencyObserver;
+    private final Observer<String> commentObserver;
+    private final Observer<Boolean> amountValidityObserver;
     private String decimalSeparator;
     private NewTransactionModel.Item item;
-    private TextView tvDate;
-    private AutoCompleteTextView tvDescription;
-    private TextView tvDummy;
-    private AutoCompleteTextView tvAccount;
-    private TextView tvComment;
-    private EditText tvAmount;
-    private ViewGroup lHead;
-    private ViewGroup lAccount;
-    private FrameLayout lPadding;
-    private MobileLedgerProfile mProfile;
     private Date date;
-    private Observer<SimpleDate> dateObserver;
-    private Observer<String> descriptionObserver;
-    private Observer<String> transactionCommentObserver;
-    private Observer<String> hintObserver;
-    private Observer<Integer> focusedAccountObserver;
-    private Observer<Integer> accountCountObserver;
-    private Observer<Boolean> editableObserver;
-    private Observer<Currency.Position> currencyPositionObserver;
-    private Observer<Boolean> currencyGapObserver;
-    private Observer<Locale> localeObserver;
-    private Observer<Currency> currencyObserver;
-    private Observer<Boolean> showCurrencyObserver;
-    private Observer<String> commentObserver;
-    private Observer<Boolean> amountValidityObserver;
     private boolean inUpdate = false;
     private boolean syncingData = false;
     //TODO multiple amounts with different currencies per posting
@@ -270,9 +271,9 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder
             final View focusedView = tvTransactionComment.findFocus();
             tvTransactionComment.setTypeface(null,
                     (focusedView == tvTransactionComment) ? Typeface.NORMAL : Typeface.ITALIC);
-            tvTransactionComment.setVisibility(((focusedView != tvTransactionComment) &&
-                                                Misc.isEmptyOrNull(transactionComment))
-                                               ? View.INVISIBLE : View.VISIBLE);
+            tvTransactionComment.setVisibility(
+                    ((focusedView != tvTransactionComment) && TextUtils.isEmpty(transactionComment))
+                    ? View.INVISIBLE : View.VISIBLE);
 
         };
         hintObserver = hint -> {
@@ -377,6 +378,9 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder
         showCurrencyObserver = showCurrency -> {
             if (showCurrency) {
                 tvCurrency.setVisibility(View.VISIBLE);
+                String defaultCommodity = mProfile.getDefaultCommodity();
+                item.setCurrency(
+                        (defaultCommodity == null) ? null : Currency.loadByName(defaultCommodity));
             }
             else {
                 tvCurrency.setVisibility(View.GONE);
@@ -389,8 +393,8 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder
             tvComment.setTypeface(null,
                     (focusedView == tvComment) ? Typeface.NORMAL : Typeface.ITALIC);
             tvComment.setVisibility(
-                    ((focusedView != tvComment) && Misc.isEmptyOrNull(comment)) ? View.INVISIBLE
-                                                                                : View.VISIBLE);
+                    ((focusedView != tvComment) && TextUtils.isEmpty(comment)) ? View.INVISIBLE
+                                                                               : View.VISIBLE);
         };
 
         showCommentsObserver = show -> {
@@ -444,7 +448,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder
             textColor = (alpha << 24) | (0x00ffffff & textColor);
             textView.setTypeface(null, Typeface.ITALIC);
             textView.setHint("");
-            if (Misc.isEmptyOrNull(textView.getText())) {
+            if (TextUtils.isEmpty(textView.getText())) {
                 textView.setVisibility(View.INVISIBLE);
             }
         }
@@ -683,7 +687,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder
                 final NewTransactionActivity activity =
                         (NewTransactionActivity) tvDescription.getContext();
 
-                if (!item.isOfType(ItemType.bottomFiller)) {
+                if (!item.isBottomFiller()) {
                     item.observeEditableFlag(activity, editableObserver);
                     item.getModel()
                         .observeFocusedItem(activity, focusedAccountObserver);