diff --git a/library-no-op/build.gradle b/library-no-op/build.gradle index d2d279461..e0ef546d5 100644 --- a/library-no-op/build.gradle +++ b/library-no-op/build.gradle @@ -17,6 +17,7 @@ android { defaultConfig { minSdkVersion rootProject.minSdkVersion + targetSdkVersion rootProject.targetSdkVersion } lintOptions { diff --git a/library/build.gradle b/library/build.gradle index 557cd771e..d68acf50a 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -14,6 +14,7 @@ android { defaultConfig { minSdkVersion rootProject.minSdkVersion + targetSdkVersion rootProject.targetSdkVersion consumerProguardFiles 'proguard-rules.pro' resValue("string", "chucker_version", "$VERSION_NAME") } diff --git a/library/src/main/AndroidManifest.xml b/library/src/main/AndroidManifest.xml index f9bdbe627..106f9a23a 100644 --- a/library/src/main/AndroidManifest.xml +++ b/library/src/main/AndroidManifest.xml @@ -16,6 +16,7 @@ diff --git a/library/src/main/kotlin/com/chuckerteam/chucker/internal/ui/transaction/TransactionPayloadAdapter.kt b/library/src/main/kotlin/com/chuckerteam/chucker/internal/ui/transaction/TransactionPayloadAdapter.kt index de7c4dfea..178ef3afa 100644 --- a/library/src/main/kotlin/com/chuckerteam/chucker/internal/ui/transaction/TransactionPayloadAdapter.kt +++ b/library/src/main/kotlin/com/chuckerteam/chucker/internal/ui/transaction/TransactionPayloadAdapter.kt @@ -112,8 +112,25 @@ internal sealed class TransactionPayloadViewHolder(view: View) : RecyclerView.Vi override fun bind(item: TransactionPayloadItem) { if (item is TransactionPayloadItem.HeaderItem) { headerBinding.responseHeaders.text = item.headers + headerBinding.headersContainer.setOnClickListener { + toggleHeaders() + } } } + + private fun toggleHeaders() { + val isVisible = headerBinding.responseHeaders.visibility == View.VISIBLE + headerBinding.responseHeaders.visibility = if (isVisible) View.GONE else View.VISIBLE + headerBinding.headersArrow.rotation = if (isVisible) ARROW_ROTATION_COLLAPSED else ARROW_ROTATION_EXPANDED + headerBinding.headersArrow.contentDescription = headerBinding.root.context.getString( + if (isVisible) R.string.chucker_expand_headers else R.string.chucker_collapse_headers + ) + } + + private companion object { + const val ARROW_ROTATION_EXPANDED = 0f + const val ARROW_ROTATION_COLLAPSED = -90f + } } internal class BodyLineViewHolder( diff --git a/library/src/main/res/drawable/chucker_arrow.xml b/library/src/main/res/drawable/chucker_arrow.xml new file mode 100644 index 000000000..6b8f81964 --- /dev/null +++ b/library/src/main/res/drawable/chucker_arrow.xml @@ -0,0 +1,11 @@ + + + + diff --git a/library/src/main/res/layout/chucker_transaction_item_headers.xml b/library/src/main/res/layout/chucker_transaction_item_headers.xml index 357dc47d8..e085b017c 100644 --- a/library/src/main/res/layout/chucker_transaction_item_headers.xml +++ b/library/src/main/res/layout/chucker_transaction_item_headers.xml @@ -1,9 +1,43 @@ - \ No newline at end of file + android:background="?attr/selectableItemBackground" + android:clickable="true" + android:focusable="true" + android:orientation="vertical" + android:paddingVertical="@dimen/chucker_half_grid"> + + + + + + + + + + + + diff --git a/library/src/main/res/values/strings.xml b/library/src/main/res/values/strings.xml index ab5a0a255..0f125ae0d 100644 --- a/library/src/main/res/values/strings.xml +++ b/library/src/main/res/values/strings.xml @@ -58,4 +58,7 @@ This request is empty This response is empty Open Chucker + Headers + Expand headers + Collapse headers diff --git a/pre-commit b/pre-commit index 55708e1dc..c69c4c73d 100644 --- a/pre-commit +++ b/pre-commit @@ -2,7 +2,7 @@ echo "Running pre-commit checks..." OUTPUT="/tmp/analysis-result" -./gradlew detekt ktlintCheck > ${OUTPUT} +./gradlew detekt ktlintCheck apiCheck > ${OUTPUT} EXIT_CODE=$? if [ ${EXIT_CODE} -ne 0 ]; then cat ${OUTPUT}