- AndroidX migration (thanks @Shusshu!)
- Support incremental annotation processing (thanks @bejibx!)
- Fix incorrect proguard rules for for paperparcel-kotlin
- Synchronize the write method cache
- Stricter consumer proguard rules for paperparcel-kotlin
- Fix: setter method name matching for properties that start with 'has'
- Add optional Lombok support (thanks to @ayanyev and @InviaTravel)
- Fix: compile issue when passing Parcelable creators of a generic type
- Fix: internal properties in kotlin
- Fix: resolve generic field types for fields contained in subclasses
- Fix: crash when a superclass and a subclass have a field with the same name
- Fix: broken build using kotlin 1.1.2.
- Fix: error message for non-writable types would sometimes tell you a field was private when it wasn't.
- Fix: Java keywords could not be used as property names as of Kotlin 1.1.0.
- Remove RegisterAdapter. ProcessorConfig should be used instead.
- Undeprecate PaperParcel.Options.
- Consolidate ProcessorConfig API and PaperParcel.Options as they share many of the same APIs.
- Favours local options over global options.
- More descriptive error messages.
- Allow PaperParcel class inheritance.
- Allow java.lang.Object adapters.
- Fix: Jack compilation.
- Fix: property method matching when variables start with 'is'
- Added
ProcessorConfigAPI for adding customTypeAdapters and configuring other options in the processor. - Deprecated
RegisterAdapterAPI in favour ofProcessorConfig - Deprecated
PaperParcel.OptionsAPI in favour ofProcessorConfig - Re-added
Serializablesupport - Performance improvements in the compiler and in the generated code
- Fix: allow use of "new" as a variable name in kotlin (as it isn't a kotlin keyword)
- Validate kapt version and give a helpful error message if the wrong version is being used
- Fix: allow use of contravariant generic types
- Greatly improve type matching system. This allows for adapters to handle complex generic types, including intersection types.
- Change package name from
nz.bradcampbell.paperparcelto justpaperparcel TypeAdapters can now list otherTypeAdapters orClasses as constructor parameters to allow for adding proper support for non-standard container and types (and more).- Removed "wrapper" types. Each wrapper is replaced with a
Parcelable.Creatorand awriteToParcelimplementation for classes to manually use/call in their model objects. - Removed the
TypedParcelableinterface as wrappers no longer exist - Removed
PaperParcelsclass and all reflection calls - Removed Mapping file
- Removed support for
Serializableout of the box. Users can opt-in to usingSerializablevia explicitTypeAdapters - Removed
AccessorNameAPI - Renamed
DefaultAdaptertoRegisterAdapterand removed all other types of adapter scoping (field and class scopes) as they served no purpose - Force annotated classes to implement
Parcelableas wrappers have been removed - Greatly improve usage from Java
- Add a more powerful abstraction for excluding fields
- Package paperparcel as an AAR (includes proguard rules)
- Adapter instances are defined as static constants to reduce the amount of allocations when
parcelling. All built-in
TypeAdapters are singleton instances where they can be. - Method count of output greatly reduced (as well as output being cleaner and easier to understand)
- Improved error messaging
- Fix: multi module builds
- Release now on jcenter and maven central instead of jitpack
- Fix: Can't reference
CREATORoncom.google.android.gms.maps.model.LatLng
- Initial release.