* Start gradle root
* Clean up test API ambiguities
These don't compile in gradle anymore and the team[] warns
* Exclude .gradle dirs in git
* Set up moshi module
* Set up moshi-adapters
* Add repositories to subprojects
* Set target/source compatibility
* Set up examples
* Fix location of reflect/test dir
* Set up moshi-kotlin
* Set up code gen
* Opportunistic update code gen deps
* Fix up with code gen
* Set up kotlin tests
* Update snapshots
* Update travis build
* Configure checkstyle
* Cache gradle
* Finish fixing up checkstyle
* Now disable checkstyle until we can fix them all :|
* Update contributing
* Fix tests in codegen
* Remove unnecessary annotation
* Remove maven stuff!
* Suppress warning
* Remove jcenter
* Consolidate dependencies
* Revert "Clean up test API ambiguities"
This reverts commit 3ead69b844b5d7f66134b721e95581f5df1cccd6.
* Fix incap dep
* Opportunistically fix some small kotlinpoet deprecations
* Automatically apply the stdlib to all kotlin projects
* Opportunistic move to opt-in and remove unnecessary annotations
The kotlin maven plugin didn't handle these well in the IDE, gradle does
* Fix Type doc warning
* Fix okio version
* Fix dokka support
* Fix copypasta
* Use new snapshot
* Kotlin 1.4.0
* Update to Kotlin 1.4.0
* Remove moshi-kotlin rules in favor of Kotlin's
* Ignore tests for now
* Update to OptIn
* Update test for kotlin 1.4 behavior
* Expose getStrings() option on JsonReader.Options
Resolves#1173
* Fix clone
Co-authored-by: Jake Wharton <github@jakewharton.com>
* Add mutation check
* Use set and make it unmodifiable
* Back to list
* strings()
* No clone()
Co-authored-by: Jake Wharton <github@jakewharton.com>
This makes application build with Moshi to keep unwanted Kotlin Metadata that have a huge impact on APK size.
After discussion with R8 team, there's currently no solution to avoid this other than using the trick in this PR.
Fixes https://github.com/square/moshi/issues/1115
A new user of Moshi might try to make a class like
data class Response (
val users: ArrayList<User>
)
Then when trying to create a JsonAdapter for it, they get an unhelpful error
message like
Platform class java.util.ArrayList in java.util.ArrayList<java.lang.String>
requires explicit JsonAdapter to be registered
which doesn't explain what they should do to fix the problem. In fact what it
hints towards is that the user should implement a JsonAdapter for ArrayList,
when really they just need to change the type to List!
Now the error looks like
No JsonAdapter for java.util.ArrayList<java.lang.String>, you should use
List instead of ArrayList (Moshi only supports the collection interfaces
by default).
* Fix reflection names in generated proguard files
Proguard wants to speak reflection names
* Opportunistic clean up proguard tests
This ensures we fail the test if there are any unexpected ones
* Extract target constructor signature into TargetConstructor.kt
We'll need this to know what the runtime types are for proguard rules
* Add ProguardConfig
* Wire in proguard config
* Write proguard configs out with adapters
* Add full tests
* Now remove the rules!
* Ignore on inline classes for now
* Pass adapter constructor params correctly
* Improve the way Json.name is fetched for codegen
* Remove the comment for jsonName
* Add a test for json names with quotation marks
* Fix the broken tests