This file follows Keepachangelog format. Please add your entries according to this format.
- Fixed activity still asking for notification permission when notifications are disabled [#1165]
- Fixed Gson issue, when using Chucker with ProGuard [#1183]
- Fixed share of curl when header values contain quotes [#1211]
- Kotlin to 2.0.20
- AGP to 8.5.2
- Added save as text and save as .har file options to save all transactions [#1214]
- Added
skipPaths(paths Regex)
,skipDomains(domains Regex)
andskipDomains(domains... String)
to skip paths/domains from chucker [#1236]
- Change GSON
TypeToken
creation to allow using Chucker in builds optimized by R8 [#1166]
- 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
BinaryDecoder
interface needs to be implemented and installed in theChuckerInterceptor
viaChuckerInterceptor.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 usingcreateShortcut(false)
inChuckerInterceptor.Builder
#588 - Brotli compression support #563
- Added
writeTransactions
method toChuckerCollector
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
- Added scroll to highlighted text search in response screen #988
- 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 parametrized
ChuckerInterceptor
constructor in favour of builder pattern. Constructor that accepts onlyContext
is still available. - Removed the Throwable reporting feature as well as all the @Deprecated related methods.
- Updated OkHttp to 4.11.0
- Updated Material to 1.8.0
- Updated AGP to 8.0.2
- Updated Kotlin to 1.8.22
This release is a re-deployment of 3.5.1, since 3.5.1 aar
didn't upload properly on Maven Central.
Note: this release wasn't properly uploaded to Maven Central, so update to a newer verion is required.
- Fix crash on Android 12 due to missing immutability flags in deprecated error reporting feature #653.
Note: this release has issue with Android 12 support, so update to 3.5.2 is highly recommended.
- Android 12 support.
- Fix crash on Android 12 due to missing immutability flags #593.
- Fix not setting request body type correctly #538.
ChuckerInterceptor.Builder
for fluent creation of the interceptor. It will also help us with preserving binary compatibility in future releases of4.x
. [#462]
- Bumped
targetSDK
andcompileSDK
to 30 (Android 11).
kotlin-android-extensions
plugin for better compatibility with Kotlin 1.4.20.
- 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.
ChuckerInterceptor
constructor is now deprecated. UnlessContext
is the only parameter that you pass into the constructor you should migrate to builder.
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.
- Added a new flag
alwaysReadResponseBody
into Chucker configuration to read the whole response body even if 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 list of transactions.
- Added ability to save single transaction as file.
- Added ability to format URL encoded forms with 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
toapi
, since it is available in the public API. - List items are now focusable on Android TV devices.
- Further improved test coverage.
- Throwables capturing feature is officially deprecated and will be removed in next releases. More info in #321.
- 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 crash when 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.
- 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
This release was possible thanks to the contribution of:
@adb-shell @cortinico @djrausch @gm-vm @JayNewstrom @MiSikora @vbuberen @psh
This is a new minor release with numerous internal 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).
- 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.
- 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
This release was possible thanks to the contribution of:
@adammasyk @cortinico @CuriousNikhil @hitanshu-dhawan @MiSikora @technoir42 @vbuberen
This is hot-fix release to fix multiple issues introduced in 3.1.0
.
- 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.
- 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.
This release was possible thanks to the contribution of:
@MiSikora @vbuberen
This is hot-fix release to fix issue introduced in 3.1.0
.
- Fixed an issue introduced in 3.1.0 where some of response bodies were shown as
null
and their sizes were 0 bytes.
This release was possible thanks to the contribution of:
@cortinico
This version shouldn't be used as dependency due to #203. Use 3.1.1 instead.
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.
- 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, dimens and drawables from Chucker won't appear in your autocomplete suggestions.
- 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 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
This is a hotfix release for Chucker 3.0.0
.
- Fix: #96 Limit size of binary image to 1 million bytes.
This release was possible thanks to the contribution of: @redwarp
This is a new major release of Chucker. Please note that this major release contains multiple new features (see below) as well as several breaking changes. Please refer to the migration guide if you need support in migrating from 2.x
-> 3.0.0
or feel free to open an issue.
- Chucker DB is now using Room instead of Cupboard as ORM.
- The public api of Chucker (classes in
com.chuckerteam.chucker.api
) is now rewritten in Kotlin. - Classes inside the
.internal
package should now not be considered part of the public api and expect them to change without major version bump. - Removed usage of
okhttp3.internal
methods. - General UI update of the library (new using ConstraintLayout)
- Added support to render images in Response page.
- Added support to search and highlight text in the Http Response body.
- We moved the artifact from JCenter to JitPack
This release was possible thanks to the contribution of:
@alorma @Ashok-Varma @cortinico @koral-- @olivierperez @OlliZi @PaulWoitaschek @psh @redwarp @uOOOO
- Fix: #27 no-op Chuck#init method is missing
- Fix: #20 Changed SqLite DB Version Number 3 -> 4
- Fix: #5 Empty Content-Encoding are allowed again
- New: Adds a class ChuckCollector that can be used out of ChuckInterceptor.
- New: Chucker can now collect throwables.
- New: Adds a notification for throwables.
- New: Adds screens for throwables.
- New: Transaction class offers a fluent writing.
- New: Adds Chuck.registerDefaultCrashHanlder for debugging purpose only.
- Breaking: Chuck.getLaunchIntent needs one more parameter.
- Breaking: Built with Android plugin 3.1.x.
- Breaking: Target SDK version 27.
- Breaking: Support library 27.1.1.
- Breaking: API classes are now in package
api
. - Misc: Move some internal classes.
- Fix: Supports apps targeting Android O (API 26).
- New: Displays uncompressed gzip encoded request/response bodies when used as a network interceptor.
- New: Adds a maximum content length threshold, beyond which bodies are truncated.
- New: Adds a data retention length property and cleanup task.
- New: Adds a clear action to the notification.
- Fix: Mitigates against CursorWindow blowout when transactions are large.
- Fix: Added Proguard rule for compat SearchView.
- Fix: Null search query displaying invalid results.
- New: Adds a search action which filters on request path or response code.
- New: Adds a transaction count to the notification.
- Fix: Limits the size of the static transaction buffer correctly.
Initial release.