+ private void commentFocusChanged(View layout, TextView textView, boolean hasFocus) {
+ int textColor;
+ if (hasFocus) {
+ textColor = Colors.defaultTextColor;
+ textView.setTypeface(null, Typeface.NORMAL);
+ textView.setHint(R.string.transaction_account_comment_hint);
+ }
+ else {
+ textColor = Colors.defaultTextColorDisabled;
+ textView.setTypeface(null, Typeface.ITALIC);
+ textView.setHint("");
+ if (Misc.isEmptyOrNull(textView.getText())) {
+ textView.setVisibility(View.INVISIBLE);
+ }
+ }
+ textView.setTextColor(textColor);
+
+ }
+ private void updateCurrencyPositionAndPadding(Currency.Position position, boolean hasGap) {
+ ConstraintLayout.LayoutParams amountLP =
+ (ConstraintLayout.LayoutParams) tvAmount.getLayoutParams();
+ ConstraintLayout.LayoutParams currencyLP =
+ (ConstraintLayout.LayoutParams) tvCurrency.getLayoutParams();
+
+ if (position == Currency.Position.before) {
+ currencyLP.startToStart = ConstraintLayout.LayoutParams.PARENT_ID;
+ currencyLP.endToEnd = ConstraintLayout.LayoutParams.UNSET;
+
+ amountLP.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID;
+ amountLP.endToStart = ConstraintLayout.LayoutParams.UNSET;
+ amountLP.startToStart = ConstraintLayout.LayoutParams.UNSET;
+ amountLP.startToEnd = tvCurrency.getId();
+
+ tvCurrency.setGravity(Gravity.END);
+ }
+ else {
+ currencyLP.startToStart = ConstraintLayout.LayoutParams.UNSET;
+ currencyLP.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID;
+
+ amountLP.startToStart = ConstraintLayout.LayoutParams.PARENT_ID;
+ amountLP.startToEnd = ConstraintLayout.LayoutParams.UNSET;
+ amountLP.endToEnd = ConstraintLayout.LayoutParams.UNSET;
+ amountLP.endToStart = tvCurrency.getId();
+
+ tvCurrency.setGravity(Gravity.START);
+ }
+
+ amountLP.resolveLayoutDirection(tvAmount.getLayoutDirection());
+ currencyLP.resolveLayoutDirection(tvCurrency.getLayoutDirection());
+
+ tvAmount.setLayoutParams(amountLP);
+ tvCurrency.setLayoutParams(currencyLP);
+
+ // distance between the amount and the currency symbol
+ int gapSize = DimensionUtils.sp2px(tvCurrency.getContext(), 5);
+
+ if (position == Currency.Position.before) {
+ tvCurrency.setPaddingRelative(0, 0, hasGap ? gapSize : 0, 0);
+ }
+ else {
+ tvCurrency.setPaddingRelative(hasGap ? gapSize : 0, 0, 0, 0);
+ }
+ }
+ private void setCurrencyString(String currency) {
+ if ((currency == null) || currency.isEmpty()) {
+ tvCurrency.setText(R.string.currency_symbol);
+ tvCurrency.setTextColor(0x7f000000 + (0x00ffffff & Colors.defaultTextColor));
+ }
+ else {
+ tvCurrency.setText(currency);
+ tvCurrency.setTextColor(Colors.defaultTextColor);
+ }
+ }
+ private void setCurrency(Currency currency) {
+ setCurrencyString((currency == null) ? null : currency.getName());
+ }
+ private void setEditable(Boolean editable) {
+ tvDate.setEnabled(editable);
+ tvDescription.setEnabled(editable);
+ tvAccount.setEnabled(editable);
+ tvAmount.setEnabled(editable);
+ }