Chucker Versions Save

🔎 An HTTP inspector for Android & OkHTTP (like Charles but on device)

4.0.0

10 months ago

We're excited to share a new major release of Chucker: v4.0.0 🎉

This version comes with a lot of new features, and is a major release as we removed the Throwable feature and updated the ChuckerInterceptor constructor (see the Removed section below).

Added

  • Add skipPaths to selectively skip requests from Chucker [#970]
  • Add syntax highlighting to the request/response body when is JSON [#930]
  • Decoding of request and response bodies can now be customized. In order to do this a BodyDecoder interface needs to be implemented and installed in the ChuckerInterceptor via ChuckerInterceptor.addBinaryDecoder(decoder) method. Decoded bodies are then displayed in the Chucker UI. [#555]
  • Create dynamic shortcut when ChuckerInterceptor added. Users can opt out of this feature using createShortcut(false) in ChuckerInterceptor.Builder [#588]
  • Brotli compression support [#563]
  • Added writeTransactions method to ChuckerCollector to export transactions to a file programmatically [#784]
  • Added ability to save single transaction as .har file. [#696]
  • Added ability to export list of transactions as .har file. [#880]
  • Added support for Android 13 and notifications permission handling [#887]
  • GraphQL
    • Add support for GraphQL [#805] [#884]
    • Show GraphQL OperationName header to transaction title [#69], [#116]
    • Allows to filter transactions based on graphqlOperationName [#920]
  • Added scroll to highlighted text search in response screen [#988]

Fixed

  • Fixed a bug showing empty bodies as encoded or binary [#569] [#562]
  • Fixed DiskReadViolation on ChuckerCollector [#975]
  • Fixed request headers not being redacted in case of failures [#545].
  • Fixed wrongful processing of one shot and duplex requests [#544].
  • Fixed writing to database on the main thread [#487].
  • Fixed RTL issue in payload view [#733]
  • Fixed StrictMode ThreadPolicy violations [#737]
  • Fixed Memory Leak with Toasts: Use applicationContext instead of Activity [#810]
  • Improved error message when trying to save empty bodies [#1038]

Removed

  • Removed parametrized ChuckerInterceptor constructor in favour of builder pattern. Constructor that accepts only Context is still available.
  • Removed the Throwable reporting feature as well as all the @Deprecated related methods.

Changed

  • Updated OkHttp to 4.11.0
  • Updated Material to 1.8.0
  • Updated AGP to 8.0.2
  • Updated Kotlin to 1.8.22

Thanks

We would love to thank the whole community for helping us with this release <3 and we want to celebrate new contributors that made their first contribution to chucker in 4.0.0: @4shutosh @Abhishek4uh @Amirhy @andronicus-kim @ArjanSM @BluestormDNA @Canato @Filip2022 @Goooler @gusdantas @handstandsam @jd565 @ken-kentan @mreram @okanaydin @Stuie

Full Changelog: https://github.com/ChuckerTeam/chucker/compare/3.4.0...4.0.0

3.5.2

2 years ago

This release is a re-deployment of 3.5.1, since in that release aar file didn't upload properly on Maven Central, so 3.5.1 wasn't available to projects getting Chucker from Maven Central.

3.5.1

2 years ago

This is hotfix release to avoid crashes for users, who still use throwable reporting feature.

Fixed

  • Fix crash on Android 12 due to missing immutability flags in deprecated throwable reporting feature #653.

3.5.0

2 years ago

Note: this release has an issue with apps targeting Android 12 making Chucker crash when notification with throwable clicked, so if your project still uses this feature we highly recommend to update to 3.5.2!

This is a patch release for developers preparing their projects for Android 12.

Added

  • Support of apps targeting Android 12.

Fixed

  • Fix crash on Android 12 due to missing immutability flags #593.
  • Fix not setting request body type correctly #538.

3.4.0

3 years ago

This is a new minor release with multiple fixes and one serious improvement which made us do a minor update instead of just patch - builder pattern for ChuckerInterceptor class. Previous constructor with multiple parameters is deprecated and will be removed in 4.x release.

Also, starting with this release we are switching to Keepachangelog format for our changelogs.

Added

  • ChuckerInterceptor.Builder for fluent creation of the interceptor. It will also help us with preserving binary compatibility in future releases of 4.x. #462

Changed

  • Bumped targetSDK and compileSDK to 30 (Android 11).

Removed

  • kotlin-android-extensions plugin for better compatibility with Kotlin 1.4.20.

Fixed

  • Fixed memory leak in MainActivity #465.
  • Fixed GzipSource is not closed error reported by StrictMode #472.
  • Fixed build failure for projects with new kotlin-parcelize plugin #480.

Deprecated

  • ChuckerInterceptor constructor is now deprecated. Unless Context is the only parameter that you pass into the constructor you should migrate to builder.

3.3.0

3 years ago

This is a new minor release with multiple fixes and improvements. After this release, we are starting to work on a new major release 4.x with minSDK 21. Bumping minSDK to 21 is required to keep up with newer versions of OkHttp.

Versions 3.x will be supported for 6 months (till March 2021) getting bugfixes and minor improvements.

Summary of changes

  • Added a new flag alwaysReadResponseBody into Chucker configuration to read the whole response body even if the consumer fails to consume it.
  • Added port numbers as part of the URL. Numbers appear if they are different from default 80 or 443.
  • Chucker now shows partially read application responses properly. Earlier in 3.2.0 such responses didn't appear in the UI.
  • Transaction size is defined by actual payload size now, not by Content-length header.
  • Added empty state UI for payloads, so no more guessing if there is some error or the payload is really empty.
  • Added ability to export a list of transactions.
  • Added ability to save a single transaction as a file.
  • Added ability to format URL encoded forms with a button to switch between encoded/decoded URLs.
  • Added generation of contrast background for image payload to distinguish Chucker UI from the image itself.
  • Switched OkHttp dependency from implementation to api, since it is available in the public API.
  • List items are now focusable on Android TV devices.
  • Further improved test coverage.

Deprecations

  • Throwables capturing feature is officially deprecated and will be removed in the next releases. More info in [#321].

Bugfixes

  • Fixed [#311] with leaking Closable resource.
  • Fixed [#314] with overlapping UI on some device.
  • Fixed [#367] with empty shared text when Don't keep activities is turned on.
  • Fixed [#366] with a crash when the process dies.
  • Fixed [#394] with failing requests when FileNotFound error happens.
  • Fixed [#410] with conflicts when other apps already use generic FileProvider.
  • Fixed [#422] with IOException.

Dependency updates

  • Added Fragment-ktx 1.2.5
  • Added Palette-ktx 1.0.0
  • Updated Kotlin to 1.4.10
  • Updated Android Gradle plugin to 4.0.1
  • Updated Coroutine to 1.3.9
  • Updated AppCompat to 1.2.0
  • Updated ConstraintLayout to 2.0.1
  • Updated MaterialComponents to 1.2.1
  • Updated Gradle to 6.6.1

Credits

This release was possible thanks to the contribution of:

@adb-shell @cortinico @djrausch @gm-vm @JayNewstrom @MiSikora @vbuberen @psh

3.2.0

4 years ago

This is a new minor release with numerous internal changes.

Summary of changes

  • Chucker won't load the whole response into memory anymore, but will mutlicast it with the help of temporary files. It allows to avoid issues with OOM, like in reported in [#218]. This change also allows to avoid problems with Chucker consuming responses, like reported in [#242].
  • Added a red open padlock icon to clearly indicate HTTP requests in transactions list.
  • Added TLS info (version and cipher suite) into Overview tab.
  • Added ability to encode/decode URLs.
  • Added RTL support.
  • Switched from AsyncTasks to Kotlin coroutines.
  • Switched to ViewBinding.
  • Bumped targetSDK to 29.
  • Greatly increased test coverage (we will add exact numbers and reports pretty soon).

Bugfixes

  • Fix for [#218] with OOM exceptions on big responses.
  • Fix for [#242] with Chucker throwing exceptions when used as networkInterceptor().
  • Fix for [#240] with HttpHeader serialisation exceptions when obfuscation is used.
  • Fix for [#254] with response body search being case-sensitive.
  • Fix for [#255] with missing search icon on Response tab.
  • Fix for [#241] with overlapping texts.

Dependency updates

  • Added kotlinx-coroutines-core 1.3.5
  • Added kotlinx-coroutines-android 1.3.5
  • Updated Kotlin to 1.3.71
  • Updated Android Gradle plugin to 3.6.1
  • Updated Room to 2.2.5
  • Updated OkHttp to 3.12.10
  • Updated Detekt to 1.7.3
  • Updated Dokka to 0.10.1
  • Updated KtLint plugin to 9.2.1
  • Updated MaterialComponents to 1.1.0
  • Updated Gradle to 6.3

Credits

This release was possible thanks to the contribution of:

@adammasyk @cortinico @CuriousNikhil @hitanshu-dhawan @MiSikora @technoir42 @vbuberen

3.1.2

4 years ago

This is hot fix release for multiple issues introduced in Chucker 3.1.0.

Enhancements

  • All Chucker screens now have their own ViewModel. Due to this change user can now open the transaction in progress and the content will appear as soon as transaction finishes. No need for reopening transaction anymore.

Bugfixes

  • Fixed an issue introduced in 3.1.0 where image downloading fails if OkHttp was used for image loading in libraries like Glide, Picasso or Coil.
  • Fixed an issue with invalid CURL command generation.
  • Fixed an issue with crashes if ProGuard/R8 minification is applied to Chucker.
  • Fixed an issue with crash when user taps Save in a transaction, which is still in progress.
  • Fixed an issue with crash when user taps Clear from notification shade while the original app is already dead.
  • Fixed an issue with possible NPEs.

3.1.1

4 years ago

WARNING. This release contains an issue which fails image loading operations if OkHttp is used as image downloader in Glide, Picasso or Coil. Use v3.1.2.

This is hot fix release for Chucker 3.1.0.

Bugfixes

  • Fix for #203 issue with response body showing as null for some requests.

3.1.0

4 years ago

WARNING. This release contains an issue which causes some responses show its size as 0 an its body as null. Use v3.1.1.

This is a new minor release of Chucker. Please note that this minor release contains multiple new features (see below) as well as multiple bugfixes.

Enhancements

  • The library is now fully converted to Kotlin and migrated to AndroidX!
  • The whole UI has been revamped to support Dark Theme which follows your device theme.
  • The Response/Request Body is now displayed in a RecyclerView, drastically improving performances on big payloads.
  • HTTP Response/Request Body can now be saved in file.
  • Notifications for Throwable and HTTP Traffic are now going into separate channels.
  • A lot of classes inside the .internal package have restricted visibility (from public to internal). Also, resources like strings, dimensions and drawables from Chucker won't appear in your autocomplete suggestions.

Bugfixes

  • Fixed ANRs during big response payloads processing.
  • Fixed contentType response formatting.
  • Fixed notifications importance in Android Q.
  • Fixed date formatting in transaction overview.
  • Fixed visibility of internal library classes and resources.
  • Fixed XML formatting crash

Updated dependencies

  • Updated Kotlin to 1.3.61
  • Updated Retrofit to 2.6.4
  • Updated Room to 2.2.3
  • Updated OkHttp to 3.12.6
  • Updated Gson to 2.8.6
  • Updated Dokka to 0.10.0
  • Updated KtLint to 9.1.1
  • Updated Gradle wrapper to 6.1
  • Updated Android Gradle plugin to 3.5.3

This release was possible thanks to the contribution of:

@christopherniksch @yoavst @psh @kmayoral @vbuberen @dcampogiani @ullas-jain @rakshit444 @olivierperez @p-schneider @Volfor @cortinico @koral-- @redwarp @uOOOO @sprohaszka @PaulWoitaschek