From: Damyan Ivanov Date: Wed, 13 May 2020 18:36:01 +0000 (+0300) Subject: rework comment show/hide/blur with colors instead of alpha X-Git-Tag: v0.13.0~14 X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=commitdiff_plain;h=a34236c6b6a3931c5da03da9664ef1811c740433 rework comment show/hide/blur with colors instead of alpha alpha interferes with layout animations --- 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 d92a4c69..efb7b522 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 @@ -97,17 +97,17 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder //TODO multiple amounts with different currencies per posting NewTransactionItemHolder(@NonNull View itemView, NewTransactionItemsAdapter adapter) { super(itemView); - tvAccount = itemView.findViewById(R.id.account_row_acc_name); - tvComment = itemView.findViewById(R.id.comment); + lAccount = itemView.findViewById(R.id.ntr_account); + tvAccount = lAccount.findViewById(R.id.account_row_acc_name); + tvComment = lAccount.findViewById(R.id.comment); tvTransactionComment = itemView.findViewById(R.id.transaction_comment); new TextViewClearHelper().attachToTextView((EditText) tvComment); - commentButton = itemView.findViewById(R.id.comment_button); + 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); tvDescription = itemView.findViewById(R.id.new_transaction_description); lHead = itemView.findViewById(R.id.ntr_data); - lAccount = itemView.findViewById(R.id.ntr_account); lPadding = itemView.findViewById(R.id.ntr_padding); final View commentLayout = itemView.findViewById(R.id.comment_layout); final View transactionCommentLayout = @@ -124,7 +124,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder tvComment.requestFocus(); }); - itemView.findViewById(R.id.transaction_comment_button) + transactionCommentLayout.findViewById(R.id.comment_button) .setOnClickListener(v -> { tvTransactionComment.setVisibility(View.VISIBLE); tvTransactionComment.requestFocus(); @@ -398,23 +398,22 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder ConstraintLayout.LayoutParams accountParams = (ConstraintLayout.LayoutParams) tvAccount.getLayoutParams(); if (show) { - commentLayout.setVisibility(View.VISIBLE); - accountParams.endToStart = ConstraintLayout.LayoutParams.UNSET; accountParams.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID; amountLayoutParams.topToTop = ConstraintLayout.LayoutParams.UNSET; amountLayoutParams.topToBottom = tvAccount.getId(); + + commentLayout.setVisibility(View.VISIBLE); } else { - commentLayout.setVisibility(View.GONE); - accountParams.endToStart = amountLayout.getId(); accountParams.endToEnd = ConstraintLayout.LayoutParams.UNSET; amountLayoutParams.topToBottom = ConstraintLayout.LayoutParams.UNSET; amountLayoutParams.topToTop = ConstraintLayout.LayoutParams.PARENT_ID; + commentLayout.setVisibility(View.GONE); } tvAccount.setLayoutParams(accountParams); @@ -424,15 +423,22 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder }; } private void commentFocusChanged(View layout, TextView textView, boolean hasFocus) { - layout.setAlpha(hasFocus ? 1f : 0.5f); - textView.setTypeface(null, hasFocus ? Typeface.NORMAL : Typeface.ITALIC); - if (hasFocus) + int textColor; + if (hasFocus) { + textColor = Colors.defaultTextColor; + textView.setTypeface(null, Typeface.NORMAL); textView.setHint(R.string.transaction_account_comment_hint); - else + } + else { + textColor = Colors.defaultTextColorDisabled; + textView.setTypeface(null, Typeface.ITALIC); textView.setHint(""); + if (Misc.isEmptyOrNull(textView.getText())) { + textView.setVisibility(View.INVISIBLE); + } + } + textView.setTextColor(textColor); - if (!hasFocus && Misc.isEmptyOrNull(textView.getText())) - textView.setVisibility(View.INVISIBLE); } private void updateCurrencyPositionAndPadding(Currency.Position position, boolean hasGap) { ConstraintLayout.LayoutParams amountLP = diff --git a/app/src/main/res/layout/new_transaction_row.xml b/app/src/main/res/layout/new_transaction_row.xml index 44d902e0..ca1889ee 100644 --- a/app/src/main/res/layout/new_transaction_row.xml +++ b/app/src/main/res/layout/new_transaction_row.xml @@ -20,13 +20,14 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:animateLayoutChanges="false" + android:animateLayoutChanges="true" android:orientation="vertical"> @@ -129,13 +129,12 @@ android:id="@+id/comment_layout" android:layout_width="0dp" android:layout_height="wrap_content" - android:alpha="0.50" app:layout_constraintEnd_toStartOf="@id/amount_layout" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/account_row_acc_name">