From 16f5f89eb682f5bd24316dbede19538cd05873ed Mon Sep 17 00:00:00 2001 From: Volodymyr Buberenko Date: Tue, 17 Mar 2020 12:59:54 +0200 Subject: [PATCH 1/4] Add icon for non-https transactions --- .../ui/transaction/TransactionAdapter.kt | 17 ++++++++++++++++- .../src/main/res/drawable/chucker_ic_http.xml | 10 ++++++++++ ...c_https_primary.xml => chucker_ic_https.xml} | 0 .../layout/chucker_list_item_transaction.xml | 5 +---- 4 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 library/src/main/res/drawable/chucker_ic_http.xml rename library/src/main/res/drawable/{chucker_ic_https_primary.xml => chucker_ic_https.xml} (100%) diff --git a/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt b/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt index 054bb517f..9c45c77d1 100644 --- a/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt +++ b/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt @@ -2,10 +2,13 @@ package com.chuckerteam.chucker.internal.ui.transaction import android.annotation.SuppressLint import android.content.Context +import android.content.res.ColorStateList import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.appcompat.content.res.AppCompatResources import androidx.core.content.ContextCompat +import androidx.core.widget.ImageViewCompat import androidx.recyclerview.widget.RecyclerView import com.chuckerteam.chucker.R import com.chuckerteam.chucker.databinding.ChuckerListItemTransactionBinding @@ -60,7 +63,19 @@ internal class TransactionAdapter internal constructor( path.text = "${transaction.method} ${transaction.getFormattedPath(encode = false)}" host.text = transaction.host timeStart.text = DateFormat.getTimeInstance().format(transaction.requestDate) - ssl.visibility = if (transaction.isSsl) View.VISIBLE else View.GONE + + val sslDrawableRes = if (transaction.isSsl) { + R.drawable.chucker_ic_https + } else { + R.drawable.chucker_ic_http + } + val sslDrawableColorRes = if (transaction.isSsl) { + R.color.chucker_color_primary + } else { + R.color.chucker_color_error + } + ssl.setImageDrawable(AppCompatResources.getDrawable(itemView.context, sslDrawableRes)) + ImageViewCompat.setImageTintList(ssl, ColorStateList.valueOf(ContextCompat.getColor(itemView.context, sslDrawableColorRes))) if (transaction.status === HttpTransaction.Status.Complete) { code.text = transaction.responseCode.toString() diff --git a/library/src/main/res/drawable/chucker_ic_http.xml b/library/src/main/res/drawable/chucker_ic_http.xml new file mode 100644 index 000000000..53f13d93b --- /dev/null +++ b/library/src/main/res/drawable/chucker_ic_http.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/library/src/main/res/drawable/chucker_ic_https_primary.xml b/library/src/main/res/drawable/chucker_ic_https.xml similarity index 100% rename from library/src/main/res/drawable/chucker_ic_https_primary.xml rename to library/src/main/res/drawable/chucker_ic_https.xml diff --git a/library/src/main/res/layout/chucker_list_item_transaction.xml b/library/src/main/res/layout/chucker_list_item_transaction.xml index 4dbd6f407..271ed1056 100644 --- a/library/src/main/res/layout/chucker_list_item_transaction.xml +++ b/library/src/main/res/layout/chucker_list_item_transaction.xml @@ -52,13 +52,10 @@ android:layout_width="@dimen/chucker_doub_grid" android:layout_height="@dimen/chucker_doub_grid" android:contentDescription="@string/chucker_ssl" - android:src="@drawable/chucker_ic_https_primary" - android:tint="@color/chucker_color_primary" - android:visibility="gone" app:layout_constraintStart_toStartOf="@+id/path" app:layout_constraintTop_toTopOf="@+id/host" app:layout_constraintBottom_toBottomOf="@id/host" - tools:visibility="visible" /> + tools:src="@drawable/chucker_ic_https" /> Date: Tue, 17 Mar 2020 13:17:26 +0200 Subject: [PATCH 2/4] Update secondary color to be more contrast --- library/src/main/res/values-night/colors.xml | 2 +- library/src/main/res/values/colors.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/src/main/res/values-night/colors.xml b/library/src/main/res/values-night/colors.xml index ccf4a2a14..e610df9ce 100644 --- a/library/src/main/res/values-night/colors.xml +++ b/library/src/main/res/values-night/colors.xml @@ -4,7 +4,7 @@ #121212 #121212 #121212 - #69f0ae + #59CC94 #cf6679 #000000 #000000 diff --git a/library/src/main/res/values/colors.xml b/library/src/main/res/values/colors.xml index 15b7137f8..1ca6a6fb8 100644 --- a/library/src/main/res/values/colors.xml +++ b/library/src/main/res/values/colors.xml @@ -4,7 +4,7 @@ #002f6c #ffffff #ffffff - #00e676 + #009E09 #F44336 #ffffff #000000 From 68a73af754e84d4738af83a28b09595d6140954b Mon Sep 17 00:00:00 2001 From: Volodymyr Buberenko Date: Tue, 17 Mar 2020 13:35:02 +0200 Subject: [PATCH 3/4] Fix long line issue --- .../chucker/internal/ui/transaction/TransactionAdapter.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt b/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt index 9c45c77d1..ae34b3586 100644 --- a/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt +++ b/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt @@ -75,7 +75,10 @@ internal class TransactionAdapter internal constructor( R.color.chucker_color_error } ssl.setImageDrawable(AppCompatResources.getDrawable(itemView.context, sslDrawableRes)) - ImageViewCompat.setImageTintList(ssl, ColorStateList.valueOf(ContextCompat.getColor(itemView.context, sslDrawableColorRes))) + ImageViewCompat.setImageTintList( + ssl, + ColorStateList.valueOf(ContextCompat.getColor(itemView.context, sslDrawableColorRes)) + ) if (transaction.status === HttpTransaction.Status.Complete) { code.text = transaction.responseCode.toString() From 0355b1c73873428fe25b59fe3836b4ec503ad1e7 Mon Sep 17 00:00:00 2001 From: Volodymyr Buberenko Date: Thu, 19 Mar 2020 12:08:44 +0200 Subject: [PATCH 4/4] Simplify protocol resources setting --- .../ui/transaction/ProtocolResources.kt | 10 ++++++ .../ui/transaction/TransactionAdapter.kt | 32 ++++++++----------- 2 files changed, 23 insertions(+), 19 deletions(-) create mode 100644 library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/ProtocolResources.kt diff --git a/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/ProtocolResources.kt b/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/ProtocolResources.kt new file mode 100644 index 000000000..552d17dc8 --- /dev/null +++ b/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/ProtocolResources.kt @@ -0,0 +1,10 @@ +package com.chuckerteam.chucker.internal.ui.transaction + +import androidx.annotation.ColorRes +import androidx.annotation.DrawableRes +import com.chuckerteam.chucker.R + +sealed class ProtocolResources(@DrawableRes val icon: Int, @ColorRes val color: Int) { + class Http : ProtocolResources(R.drawable.chucker_ic_http, R.color.chucker_color_error) + class Https : ProtocolResources(R.drawable.chucker_ic_https, R.color.chucker_color_primary) +} diff --git a/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt b/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt index ae34b3586..951a93dde 100644 --- a/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt +++ b/library/src/main/java/com/chuckerteam/chucker/internal/ui/transaction/TransactionAdapter.kt @@ -55,6 +55,12 @@ internal class TransactionAdapter internal constructor( itemView.setOnClickListener(this) } + override fun onClick(v: View?) { + transactionId?.let { + listener?.onTransactionClick(it, adapterPosition) + } + } + @SuppressLint("SetTextI18n") fun bind(transaction: HttpTransactionTuple) { transactionId = transaction.id @@ -64,21 +70,7 @@ internal class TransactionAdapter internal constructor( host.text = transaction.host timeStart.text = DateFormat.getTimeInstance().format(transaction.requestDate) - val sslDrawableRes = if (transaction.isSsl) { - R.drawable.chucker_ic_https - } else { - R.drawable.chucker_ic_http - } - val sslDrawableColorRes = if (transaction.isSsl) { - R.color.chucker_color_primary - } else { - R.color.chucker_color_error - } - ssl.setImageDrawable(AppCompatResources.getDrawable(itemView.context, sslDrawableRes)) - ImageViewCompat.setImageTintList( - ssl, - ColorStateList.valueOf(ContextCompat.getColor(itemView.context, sslDrawableColorRes)) - ) + setProtocolImage(if (transaction.isSsl) ProtocolResources.Https() else ProtocolResources.Http()) if (transaction.status === HttpTransaction.Status.Complete) { code.text = transaction.responseCode.toString() @@ -97,10 +89,12 @@ internal class TransactionAdapter internal constructor( setStatusColor(transaction) } - override fun onClick(v: View?) { - transactionId?.let { - listener?.onTransactionClick(it, adapterPosition) - } + private fun setProtocolImage(resources: ProtocolResources) { + itemBinding.ssl.setImageDrawable(AppCompatResources.getDrawable(itemView.context, resources.icon)) + ImageViewCompat.setImageTintList( + itemBinding.ssl, + ColorStateList.valueOf(ContextCompat.getColor(itemView.context, resources.color)) + ) } private fun setStatusColor(transaction: HttpTransactionTuple) {