| { |
| "identifier": "com.tools.android:desugar_jdk_libs_configuration:2.0.0", |
| "configuration_format_version": 100, |
| "required_compilation_api_level": 30, |
| "synthesized_library_classes_package_prefix": "j$.", |
| "support_all_callbacks_from_library": true, |
| "common_flags": [ |
| { |
| "api_level_below_or_equal": 30, |
| "rewrite_prefix": { |
| "java.time.": "j$.time.", |
| "java.util.Desugar": "j$.util.Desugar" |
| }, |
| "retarget_method": { |
| "java.util.TimeZone java.util.TimeZone#getTimeZone(java.time.ZoneId)": "java.util.DesugarTimeZone" |
| }, |
| "retarget_method_with_emulated_dispatch": { |
| "java.time.Instant java.util.Date#toInstant()": "java.util.DesugarDate", |
| "java.time.ZoneId java.util.TimeZone#toZoneId()": "java.util.DesugarTimeZone", |
| "java.time.ZonedDateTime java.util.GregorianCalendar#toZonedDateTime()": "java.util.DesugarGregorianCalendar" |
| }, |
| "wrapper_conversion": [ |
| "java.time.Clock", |
| "java.time.temporal.ChronoUnit" |
| ], |
| "custom_conversion": { |
| "java.time.Duration": "java.time.TimeConversions", |
| "java.time.Instant": "java.time.TimeConversions", |
| "java.time.LocalDate": "java.time.TimeConversions", |
| "java.time.LocalTime": "java.time.TimeConversions", |
| "java.time.MonthDay": "java.time.TimeConversions", |
| "java.time.Period": "java.time.TimeConversions", |
| "java.time.ZoneId": "java.time.TimeConversions", |
| "java.time.ZonedDateTime": "java.time.TimeConversions" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 29, |
| "rewrite_prefix": { |
| "java.util.concurrent.Flow": "j$.util.concurrent.Flow" |
| }, |
| "wrapper_conversion": [ |
| "java.util.concurrent.Flow$Publisher", |
| "java.util.concurrent.Flow$Subscriber", |
| "java.util.concurrent.Flow$Subscription" |
| ] |
| }, |
| { |
| "api_level_below_or_equal": 32, |
| "api_level_greater_or_equal": 24, |
| "emulate_interface": { |
| "java.util.Collection": "j$.util.Collection" |
| }, |
| "dont_rewrite": [ |
| "boolean java.util.Collection#removeIf(java.util.function.Predicate)", |
| "java.util.Spliterator java.util.Collection#spliterator()", |
| "java.util.stream.Stream java.util.Collection#parallelStream()", |
| "java.util.stream.Stream java.util.Collection#stream()", |
| "void java.util.Collection#forEach(java.util.function.Consumer)" |
| ] |
| }, |
| { |
| "api_level_below_or_equal": 23, |
| "rewrite_prefix": { |
| "java.io.DesugarBufferedReader": "j$.io.DesugarBufferedReader", |
| "java.util.DoubleSummaryStatistics": "j$.util.DoubleSummaryStatistics", |
| "java.util.IntSummaryStatistics": "j$.util.IntSummaryStatistics", |
| "java.util.LongSummaryStatistics": "j$.util.LongSummaryStatistics", |
| "java.util.Objects": "j$.util.Objects", |
| "java.util.Optional": "j$.util.Optional", |
| "java.util.PrimitiveIterator": "j$.util.PrimitiveIterator", |
| "java.util.Spliterator": "j$.util.Spliterator", |
| "java.util.StringJoiner": "j$.util.StringJoiner", |
| "java.util.concurrent.ConcurrentHashMap": "j$.util.concurrent.ConcurrentHashMap", |
| "java.util.concurrent.ThreadLocalRandom": "j$.util.concurrent.ThreadLocalRandom", |
| "java.util.concurrent.atomic.DesugarAtomic": "j$.util.concurrent.atomic.DesugarAtomic", |
| "java.util.stream.": "j$.util.stream." |
| }, |
| "maintain_prefix": [ |
| "java.util.function.", |
| "java.io.UncheckedIOException" |
| ], |
| "emulate_interface": { |
| "java.lang.Iterable": "j$.lang.Iterable", |
| "java.util.Collection": "j$.util.Collection", |
| "java.util.Comparator": "j$.util.Comparator", |
| "java.util.Iterator": "j$.util.Iterator", |
| "java.util.List": "j$.util.List", |
| "java.util.Map": "j$.util.Map", |
| "java.util.Map$Entry": "j$.util.Map$Entry", |
| "java.util.Set": "j$.util.Set", |
| "java.util.SortedSet": "j$.util.SortedSet", |
| "java.util.concurrent.ConcurrentMap": "j$.util.concurrent.ConcurrentMap" |
| }, |
| "dont_rewrite": [ |
| "void java.util.Iterator#remove()" |
| ], |
| "retarget_method": { |
| "java.util.Spliterator java.util.Arrays#spliterator(java.lang.Object[])": "java.util.DesugarArrays", |
| "java.util.Spliterator java.util.Arrays#spliterator(java.lang.Object[], int, int)": "java.util.DesugarArrays", |
| "java.util.Spliterator$OfDouble java.util.Arrays#spliterator(double[])": "java.util.DesugarArrays", |
| "java.util.Spliterator$OfDouble java.util.Arrays#spliterator(double[], int, int)": "java.util.DesugarArrays", |
| "java.util.Spliterator$OfInt java.util.Arrays#spliterator(int[])": "java.util.DesugarArrays", |
| "java.util.Spliterator$OfInt java.util.Arrays#spliterator(int[], int, int)": "java.util.DesugarArrays", |
| "java.util.Spliterator$OfLong java.util.Arrays#spliterator(long[])": "java.util.DesugarArrays", |
| "java.util.Spliterator$OfLong java.util.Arrays#spliterator(long[], int, int)": "java.util.DesugarArrays", |
| "java.util.stream.DoubleStream java.util.Arrays#stream(double[])": "java.util.DesugarArrays", |
| "java.util.stream.DoubleStream java.util.Arrays#stream(double[], int, int)": "java.util.DesugarArrays", |
| "java.util.stream.IntStream java.util.Arrays#stream(int[])": "java.util.DesugarArrays", |
| "java.util.stream.IntStream java.util.Arrays#stream(int[], int, int)": "java.util.DesugarArrays", |
| "java.util.stream.LongStream java.util.Arrays#stream(long[])": "java.util.DesugarArrays", |
| "java.util.stream.LongStream java.util.Arrays#stream(long[], int, int)": "java.util.DesugarArrays", |
| "java.util.stream.Stream java.util.Arrays#stream(java.lang.Object[])": "java.util.DesugarArrays", |
| "java.util.stream.Stream java.util.Arrays#stream(java.lang.Object[], int, int)": "java.util.DesugarArrays" |
| }, |
| "retarget_method_with_emulated_dispatch": { |
| "java.util.stream.Stream java.io.BufferedReader#lines()": "java.io.DesugarBufferedReader", |
| "java.util.Spliterator java.util.LinkedHashSet#spliterator()": "java.util.DesugarLinkedHashSet" |
| }, |
| "api_generic_types_conversion": { |
| "java.util.Set java.util.stream.Collector#characteristics()" : [-1, "java.util.Set java.util.stream.StreamApiFlips#flipCharacteristicSet(java.util.Set)"], |
| "java.util.stream.Stream java.util.stream.Stream#flatMap(java.util.function.Function)": [0, "java.util.function.Function java.util.stream.FlatMapApiFlips#flipFunctionReturningStream(java.util.function.Function)"], |
| "java.util.stream.DoubleStream java.util.stream.DoubleStream#flatMap(java.util.function.DoubleFunction)": [0, "java.util.function.DoubleFunction java.util.stream.FlatMapApiFlips#flipFunctionReturningStream(java.util.function.DoubleFunction)"], |
| "java.util.stream.DoubleStream java.util.stream.Stream#flatMapToDouble(java.util.function.Function)": [0, "java.util.function.Function java.util.stream.FlatMapApiFlips#flipFunctionReturningStream(java.util.function.Function)"], |
| "java.util.stream.IntStream java.util.stream.Stream#flatMapToInt(java.util.function.Function)": [0, "java.util.function.Function java.util.stream.FlatMapApiFlips#flipFunctionReturningStream(java.util.function.Function)"], |
| "java.util.stream.IntStream java.util.stream.IntStream#flatMap(java.util.function.IntFunction)": [0, "java.util.function.IntFunction java.util.stream.FlatMapApiFlips#flipFunctionReturningStream(java.util.function.IntFunction)"], |
| "java.util.stream.LongStream java.util.stream.Stream#flatMapToLong(java.util.function.Function)": [0, "java.util.function.Function java.util.stream.FlatMapApiFlips#flipFunctionReturningStream(java.util.function.Function)"], |
| "java.util.stream.LongStream java.util.stream.LongStream#flatMap(java.util.function.LongFunction)": [0, "java.util.function.LongFunction java.util.stream.FlatMapApiFlips#flipFunctionReturningStream(java.util.function.LongFunction)"], |
| "java.lang.Object java.lang.StackWalker#walk(java.util.function.Function)": [0, "java.util.function.Function java.util.stream.StackWalkerApiFlips#flipFunctionStream(java.util.function.Function)"] |
| }, |
| "never_outline_api": [ |
| "java.lang.Object java.lang.StackWalker#walk(java.util.function.Function)" |
| ], |
| "wrapper_conversion": [ |
| "java.util.PrimitiveIterator$OfDouble", |
| "java.util.PrimitiveIterator$OfInt", |
| "java.util.PrimitiveIterator$OfLong", |
| "java.util.Spliterator", |
| "java.util.Spliterator$OfDouble", |
| "java.util.Spliterator$OfInt", |
| "java.util.Spliterator$OfLong", |
| "java.util.Spliterator$OfPrimitive", |
| "java.util.stream.BaseStream", |
| "java.util.stream.Collector", |
| "java.util.stream.Collector$Characteristics", |
| "java.util.stream.DoubleStream", |
| "java.util.stream.IntStream", |
| "java.util.stream.LongStream", |
| "java.util.stream.Stream" |
| ], |
| "custom_conversion": { |
| "java.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatisticsConversions", |
| "java.util.IntSummaryStatistics": "java.util.IntSummaryStatisticsConversions", |
| "java.util.LongSummaryStatistics": "java.util.LongSummaryStatisticsConversions", |
| "java.util.Optional": "java.util.OptionalConversions", |
| "java.util.OptionalDouble": "java.util.OptionalConversions", |
| "java.util.OptionalInt": "java.util.OptionalConversions", |
| "java.util.OptionalLong": "java.util.OptionalConversions" |
| } |
| } |
| ], |
| "program_flags": [ |
| { |
| "api_level_below_or_equal": 33, |
| "amend_library_method": [ |
| "public java.lang.Object[] java.util.Collection#toArray(java.util.function.IntFunction)" |
| ] |
| }, |
| { |
| "api_level_below_or_equal": 32, |
| "api_level_greater_or_equal": 26, |
| "covariant_retarget_method": { |
| "java.time.chrono.IsoEra java.time.LocalDate#getEra()": "java.time.chrono.Era" |
| }, |
| "amend_library_method": [ |
| "public java.time.chrono.IsoEra java.time.LocalDate#getEra()" |
| ] |
| }, |
| { |
| "api_level_below_or_equal": 30, |
| "retarget_method": { |
| "java.time.Instant java.util.Calendar#toInstant()": "java.util.DesugarCalendar", |
| "java.util.Date java.util.Date#from(java.time.Instant)": "java.util.DesugarDate", |
| "java.util.GregorianCalendar java.util.GregorianCalendar#from(java.time.ZonedDateTime)": "java.util.DesugarGregorianCalendar", |
| "java.util.TimeZone java.util.TimeZone#getTimeZone(java.lang.String)": "java.util.DesugarTimeZone" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 23, |
| "retarget_method": { |
| "int java.util.concurrent.atomic.AtomicInteger#accumulateAndGet(int, java.util.function.IntBinaryOperator)": "java.util.concurrent.atomic.DesugarAtomicInteger", |
| "int java.util.concurrent.atomic.AtomicInteger#getAndAccumulate(int, java.util.function.IntBinaryOperator)": "java.util.concurrent.atomic.DesugarAtomicInteger", |
| "int java.util.concurrent.atomic.AtomicInteger#getAndUpdate(java.util.function.IntUnaryOperator)": "java.util.concurrent.atomic.DesugarAtomicInteger", |
| "int java.util.concurrent.atomic.AtomicInteger#updateAndGet(java.util.function.IntUnaryOperator)": "java.util.concurrent.atomic.DesugarAtomicInteger", |
| "java.lang.Object java.util.concurrent.atomic.AtomicReference#accumulateAndGet(java.lang.Object, java.util.function.BinaryOperator)": "java.util.concurrent.atomic.DesugarAtomicReference", |
| "java.lang.Object java.util.concurrent.atomic.AtomicReference#getAndAccumulate(java.lang.Object, java.util.function.BinaryOperator)": "java.util.concurrent.atomic.DesugarAtomicReference", |
| "java.lang.Object java.util.concurrent.atomic.AtomicReference#getAndUpdate(java.util.function.UnaryOperator)": "java.util.concurrent.atomic.DesugarAtomicReference", |
| "java.lang.Object java.util.concurrent.atomic.AtomicReference#updateAndGet(java.util.function.UnaryOperator)": "java.util.concurrent.atomic.DesugarAtomicReference", |
| "java.util.Map java.util.Collections#synchronizedMap(java.util.Map)": "java.util.DesugarCollections", |
| "java.util.SortedMap java.util.Collections#synchronizedSortedMap(java.util.SortedMap)": "java.util.DesugarCollections", |
| "long java.util.concurrent.atomic.AtomicLong#accumulateAndGet(long, java.util.function.LongBinaryOperator)": "java.util.concurrent.atomic.DesugarAtomicLong", |
| "long java.util.concurrent.atomic.AtomicLong#getAndAccumulate(long, java.util.function.LongBinaryOperator)": "java.util.concurrent.atomic.DesugarAtomicLong", |
| "long java.util.concurrent.atomic.AtomicLong#getAndUpdate(java.util.function.LongUnaryOperator)": "java.util.concurrent.atomic.DesugarAtomicLong", |
| "long java.util.concurrent.atomic.AtomicLong#updateAndGet(java.util.function.LongUnaryOperator)": "java.util.concurrent.atomic.DesugarAtomicLong" |
| } |
| } |
| ], |
| "library_flags": [ |
| { |
| "api_level_below_or_equal": 30, |
| "rewrite_prefix": { |
| "jdk.internal.": "j$.jdk.internal.", |
| "sun.security.action.": "j$.sun.security.action.", |
| "sun.misc.Desugar": "j$.sun.misc.Desugar" |
| }, |
| "rewrite_derived_prefix": { |
| "java.time.": { |
| "j$.time.": "java.time." |
| }, |
| "sun.misc.DesugarUnsafe": { |
| "jdk.internal.misc.Unsafe": "j$.sun.misc.DesugarUnsafe" |
| } |
| }, |
| "backport": { |
| "java.lang.DesugarDouble": "java.lang.Double", |
| "java.lang.DesugarInteger": "java.lang.Integer", |
| "java.lang.DesugarLong": "java.lang.Long", |
| "java.lang.DesugarMath": "java.lang.Math" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 25, |
| "retarget_method": { |
| "boolean java.util.Arrays#deepEquals0(java.lang.Object, java.lang.Object)": "java.util.DesugarArrays" |
| }, |
| "amend_library_method": [ |
| "private static boolean java.util.Arrays#deepEquals0(java.lang.Object, java.lang.Object)" |
| ] |
| }, |
| { |
| "api_level_below_or_equal": 23, |
| "rewrite_prefix": { |
| "java.util.AbstractList": "j$.util.AbstractList", |
| "java.util.CollSer": "j$.util.CollSer", |
| "java.util.Comparators": "j$.util.Comparators", |
| "java.util.ImmutableCollections": "j$.util.ImmutableCollections", |
| "java.util.KeyValueHolder": "j$.util.KeyValueHolder", |
| "java.util.SortedSet$1": "j$.util.SortedSet$1", |
| "java.util.Tripwire": "j$.util.Tripwire", |
| "java.util.concurrent.Helpers": "j$.util.concurrent.Helpers", |
| "java.util.ConversionRuntimeException": "j$.util.ConversionRuntimeException" |
| }, |
| "rewrite_derived_prefix": { |
| "java.util.DoubleSummaryStatistics": { |
| "j$.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatistics" |
| }, |
| "java.util.IntSummaryStatistics": { |
| "j$.util.IntSummaryStatistics": "java.util.IntSummaryStatistics" |
| }, |
| "java.util.LongSummaryStatistics": { |
| "j$.util.LongSummaryStatistics": "java.util.LongSummaryStatistics" |
| }, |
| "java.util.stream.Collector": { |
| "j$.util.stream.Collector": "java.util.stream.Collector" |
| }, |
| "java.util.Optional": { |
| "j$.util.Optional": "java.util.Optional" |
| }, |
| "java.util.stream.DoubleStream": { |
| "j$.util.stream.DoubleStream": "java.util.stream.DoubleStream" |
| }, |
| "java.util.stream.IntStream": { |
| "j$.util.stream.IntStream": "java.util.stream.IntStream" |
| }, |
| "java.util.stream.LongStream": { |
| "j$.util.stream.LongStream": "java.util.stream.LongStream" |
| }, |
| "java.util.stream.Stream": { |
| "j$.util.stream.Stream": "java.util.stream.Stream" |
| } |
| } |
| } |
| ], |
| "shrinker_config": [ |
| "-keepclassmembers class j$.** extends java.io.Serializable { void <init>(); private static final java.io.ObjectStreamField[] serialPersistentFields; static final long serialVersionUID; java.lang.Object readResolve(); java.lang.Object writeReplace(); private void readObject(java.io.ObjectInputStream); private void writeObject(java.io.ObjectOutputStream); private void readObjectNoData(); }", |
| "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap$TreeBin { int lockState; }", |
| "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap { int sizeCtl; int transferIndex; long baseCount; int cellsBusy; }", |
| "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap$CounterCell { long value; }", |
| "-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); public static final !synthetic <fields>; }", |
| "-keeppackagenames java.**", |
| "-keeppackagenames j$.**", |
| "-keepclassmembers class j$.util.IntSummaryStatistics { long count; long sum; int min; int max; }", |
| "-keepclassmembers class j$.util.LongSummaryStatistics { long count; long sum; long min; long max; }", |
| "-keepclassmembers class j$.util.DoubleSummaryStatistics { long count; double sum; double min; double max; }", |
| "-keepattributes Signature", |
| "-keepattributes EnclosingMethod", |
| "-keepattributes InnerClasses", |
| "-dontwarn sun.misc.Unsafe", |
| "-dontwarn wrapper.**" |
| ] |
| } |