mirror of
https://github.com/tuskyapp/Tusky
synced 2025-01-31 11:54:56 +01:00
722b75e5c2
Using saner defaults for R8 while reducing the app size even further. - Add Kotlin compiler options to skip adding assertions in release builds - Remove `optimizations`, `optimizationpasses` and `dontpreverify` rules that are ignored by R8 - Only keep runtime annotations by default. If other attributes are needed by a specific library, these will already be provided by the library rules (for example Retrofit or coroutines) - Remove the obsolete rule allowing a View to reflectively call any arbitrary public Activity method accepting a View as argument. This has always been a bad practice and is not used in this project anyway - Remove the rules related to enums. R8 already optimizes enums properly out-of-the-box and keeping these rules may prevent some of these optimizations - Add support for the `@Keep` annotation. Even if it's not currently used in the code base, it can be handy in the future - Add a missing rule to prevent generic signature of `NetworkResult` class from being removed in `MastodonApi` so Retrofit works - Allow obfuscation and shrinking of `kotlin.coroutines.Continuation`, matching the rule defined in the next release of Retrofit - Remove the rule forcing the removal of `String.format()`. This method is actually used in the code (and in third-party libraries) for other things than logging so forcing its removal can do more harm than good.