X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FNewTransactionItemHolder.java;h=62f0de49677df85c70b58890907bb084994713b7;hb=667ce42731c95a98926657fea359b56209f9348e;hp=3049bac4ebf34ef02e9723bd5e4bc7b0f515a174;hpb=2a10026b966907fa60376778295ce6818458b3d0;p=mobile-ledger.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 3049bac4..62f0de49 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 @@ -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; @@ -46,7 +47,6 @@ import net.ktnx.mobileledger.model.MobileLedgerProfile; import net.ktnx.mobileledger.ui.CurrencySelectorFragment; import net.ktnx.mobileledger.ui.DatePickerFragment; import net.ktnx.mobileledger.ui.TextViewClearHelper; -import net.ktnx.mobileledger.utils.Colors; import net.ktnx.mobileledger.utils.DimensionUtils; import net.ktnx.mobileledger.utils.Logger; import net.ktnx.mobileledger.utils.MLDB; @@ -66,36 +66,35 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder private final TextView tvCurrency; private final Observer 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 dateObserver; + private final Observer descriptionObserver; + private final Observer transactionCommentObserver; + private final Observer hintObserver; + private final Observer focusedAccountObserver; + private final Observer accountCountObserver; + private final Observer editableObserver; + private final Observer currencyPositionObserver; + private final Observer currencyGapObserver; + private final Observer localeObserver; + private final Observer currencyObserver; + private final Observer showCurrencyObserver; + private final Observer commentObserver; + private final Observer 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 dateObserver; - private Observer descriptionObserver; - private Observer transactionCommentObserver; - private Observer hintObserver; - private Observer focusedAccountObserver; - private Observer accountCountObserver; - private Observer editableObserver; - private Observer currencyPositionObserver; - private Observer currencyGapObserver; - private Observer localeObserver; - private Observer currencyObserver; - private Observer showCurrencyObserver; - private Observer commentObserver; - private Observer amountValidityObserver; private boolean inUpdate = false; private boolean syncingData = false; - private View commentButton; //TODO multiple amounts with different currencies per posting NewTransactionItemHolder(@NonNull View itemView, NewTransactionItemsAdapter adapter) { super(itemView); @@ -104,7 +103,6 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder tvComment = lAccount.findViewById(R.id.comment); tvTransactionComment = itemView.findViewById(R.id.transaction_comment); new TextViewClearHelper().attachToTextView((EditText) tvComment); - commentButton = lAccount.findViewById(R.id.comment_button); tvAmount = itemView.findViewById(R.id.account_row_acc_amounts); tvCurrency = itemView.findViewById(R.id.currency); tvDate = itemView.findViewById(R.id.new_transaction_date); @@ -122,10 +120,11 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder tvDate.setOnClickListener(v -> pickTransactionDate()); - commentButton.setOnClickListener(v -> { - tvComment.setVisibility(View.VISIBLE); - tvComment.requestFocus(); - }); + lAccount.findViewById(R.id.comment_button) + .setOnClickListener(v -> { + tvComment.setVisibility(View.VISIBLE); + tvComment.requestFocus(); + }); transactionCommentLayout.findViewById(R.id.comment_button) .setOnClickListener(v -> { @@ -133,9 +132,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder tvTransactionComment.requestFocus(); }); - mProfile = Data.profile.getValue(); - if (mProfile == null) - throw new AssertionError(); + mProfile = Data.getProfile(); View.OnFocusChangeListener focusMonitor = (v, hasFocus) -> { final int id = v.getId(); @@ -189,10 +186,9 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder decimalSeparator = String.valueOf(DecimalFormatSymbols.getInstance() .getMonetaryDecimalSeparator()); - localeObserver = locale -> { - decimalSeparator = String.valueOf(DecimalFormatSymbols.getInstance(locale) - .getMonetaryDecimalSeparator()); - }; + localeObserver = locale -> decimalSeparator = String.valueOf( + DecimalFormatSymbols.getInstance(locale) + .getMonetaryDecimalSeparator()); decimalDot = "."; @@ -275,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 -> { @@ -394,8 +390,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 -> { @@ -449,7 +445,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); } } @@ -502,13 +498,17 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder } } private void setCurrencyString(String currency) { + @ColorInt int textColor = tvDummy.getTextColors() + .getDefaultColor(); if ((currency == null) || currency.isEmpty()) { tvCurrency.setText(R.string.currency_symbol); - tvCurrency.setTextColor(0x7f000000 + (0x00ffffff & Colors.defaultTextColor)); + int alpha = (textColor >> 24) & 0xff; + alpha = alpha * 3 / 4; + tvCurrency.setTextColor((alpha << 24) | (0x00ffffff & textColor)); } else { tvCurrency.setText(currency); - tvCurrency.setTextColor(Colors.defaultTextColor); + tvCurrency.setTextColor(textColor); } } private void setCurrency(Currency currency) { @@ -684,7 +684,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); @@ -718,7 +718,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder } @Override public void onDatePicked(int year, int month, int day) { - item.setDate(new SimpleDate(year, month+1, day)); + item.setDate(new SimpleDate(year, month + 1, day)); boolean focused = tvDescription.requestFocus(); if (focused) Misc.showSoftKeyboard((NewTransactionActivity) tvAccount.getContext());