| { |
| "configuration_format_version": 3, |
| "group_id" : "com.tools.android", |
| "artifact_id" : "desugar_jdk_libs_alternative_3", |
| "version": "2.0.0", |
| "required_compilation_api_level": 31, |
| "synthesized_library_classes_package_prefix": "j$.", |
| "support_all_callbacks_from_library": false, |
| "common_flags": [ |
| { |
| "api_level_below_or_equal": 25, |
| "wrapper_conversion": [ |
| "java.time.Clock" |
| ] |
| }, |
| { |
| "api_level_below_or_equal": 23, |
| "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.function.BiConsumer", |
| "java.util.function.BiFunction", |
| "java.util.function.BiPredicate", |
| "java.util.function.BinaryOperator", |
| "java.util.function.Consumer", |
| "java.util.function.DoubleBinaryOperator", |
| "java.util.function.DoubleConsumer", |
| "java.util.function.DoubleFunction", |
| "java.util.function.DoublePredicate", |
| "java.util.function.DoubleToIntFunction", |
| "java.util.function.DoubleToLongFunction", |
| "java.util.function.DoubleUnaryOperator", |
| "java.util.function.Function", |
| "java.util.function.IntBinaryOperator", |
| "java.util.function.IntConsumer", |
| "java.util.function.IntFunction", |
| "java.util.function.IntPredicate", |
| "java.util.function.IntToDoubleFunction", |
| "java.util.function.IntToLongFunction", |
| "java.util.function.IntUnaryOperator", |
| "java.util.function.LongBinaryOperator", |
| "java.util.function.LongConsumer", |
| "java.util.function.LongFunction", |
| "java.util.function.LongPredicate", |
| "java.util.function.LongToDoubleFunction", |
| "java.util.function.LongToIntFunction", |
| "java.util.function.LongUnaryOperator", |
| "java.util.function.ObjDoubleConsumer", |
| "java.util.function.ObjIntConsumer", |
| "java.util.function.ObjLongConsumer", |
| "java.util.function.Predicate", |
| "java.util.function.Supplier", |
| "java.util.function.ToDoubleFunction", |
| "java.util.function.ToIntFunction", |
| "java.util.function.ToLongFunction", |
| "java.util.function.UnaryOperator", |
| "java.util.stream.BaseStream", |
| "java.util.stream.Collector", |
| "java.util.stream.DoubleStream", |
| "java.util.stream.IntStream", |
| "java.util.stream.LongStream", |
| "java.util.stream.Stream" |
| ] |
| } |
| ], |
| "library_flags": [ |
| { |
| "api_level_below_or_equal": 10000, |
| "rewrite_prefix": { |
| "desugar.": "j$.desugar.", |
| "libcore.": "j$.libcore.", |
| "java.net.URLDecoder": "j$.net.URLDecoder", |
| "java.net.URLEncoder": "j$.net.URLEncoder", |
| "java.lang.Desugar": "j$.lang.Desugar", |
| "java.lang.ref.Cleaner": "j$.lang.ref.Cleaner", |
| "sun.security.action.": "j$.sun.security.action." |
| } |
| }, |
| { |
| "api_level_below_or_equal": 30, |
| "rewrite_prefix": { |
| "j$.time.": "java.time.", |
| "java.time.": "j$.time.", |
| "java.util.Desugar": "j$.util.Desugar" |
| }, |
| "retarget_lib_member": { |
| "java.util.Date#toInstant": "java.util.DesugarDate", |
| "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar", |
| "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone" |
| }, |
| "custom_conversion": { |
| "java.time.ZonedDateTime": "java.time.TimeConversions", |
| "java.time.LocalDate": "java.time.TimeConversions", |
| "java.time.Duration": "java.time.TimeConversions", |
| "java.time.ZoneId": "java.time.TimeConversions", |
| "java.time.MonthDay": "java.time.TimeConversions", |
| "java.time.Instant": "java.time.TimeConversions" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 29, |
| "rewrite_prefix": { |
| "java.util.concurrent.Flow": "j$.util.concurrent.Flow" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 30, |
| "rewrite_prefix": { |
| "java.io.DesugarFile" : "j$.io.DesugarFile", |
| "sun.misc.Desugar": "j$.sun.misc.Desugar", |
| "jdk.internal.": "j$.jdk.internal.", |
| "java.nio.Desugar": "j$.nio.Desugar", |
| "java.nio.channels.AsynchronousChannel": "j$.nio.channels.AsynchronousChannel", |
| "java.nio.channels.AsynchronousFileChannel": "j$.nio.channels.AsynchronousFileChannel", |
| "java.nio.channels.CompletionHandler": "j$.nio.channels.CompletionHandler", |
| "java.nio.channels.Desugar": "j$.nio.channels.Desugar", |
| "java.nio.file.": "j$.nio.file.", |
| "sun.nio.cs." : "j$.sun.nio.cs.", |
| "sun.nio.fs.AbstractFileSystemProvider": "j$.sun.nio.fs.AbstractFileSystemProvider", |
| "sun.nio.fs.AbstractFileTypeDetector": "j$.sun.nio.fs.AbstractFileTypeDetector", |
| "sun.nio.fs.BasicFileAttributesHolder": "j$.sun.nio.fs.BasicFileAttributesHolder", |
| "sun.nio.fs.DynamicFileAttributeView": "j$.sun.nio.fs.DynamicFileAttributeView", |
| "sun.util.PreHashedMap": "j$.sun.util.PreHashedMap" |
| }, |
| "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" |
| }, |
| "retarget_lib_member": { |
| "java.io.File#toPath": "java.io.DesugarFile" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 23, |
| "rewrite_prefix": { |
| "java.lang.FunctionalInterface": "j$.lang.FunctionalInterface", |
| "java.io.DesugarBufferedReader": "j$.io.DesugarBufferedReader", |
| "java.io.DesugarInputStream": "j$.io.DesugarInputStream", |
| "java.io.UncheckedIOException": "j$.io.UncheckedIOException", |
| "j$.util.Optional": "java.util.Optional", |
| "j$.util.LongSummaryStatistics": "java.util.LongSummaryStatistics", |
| "j$.util.IntSummaryStatistics": "java.util.IntSummaryStatistics", |
| "j$.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatistics", |
| "java.nio.channels.SeekableByteChannel": "j$.nio.channels.SeekableByteChannel", |
| "java.util.stream.": "j$.util.stream.", |
| "java.util.function.": "j$.util.function.", |
| "java.util.Comparators": "j$.util.Comparators", |
| "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.SortedSet$1": "j$.util.SortedSet$1", |
| "java.util.Spliterator": "j$.util.Spliterator", |
| "java.util.StringJoiner": "j$.util.StringJoiner", |
| "java.util.Tripwire": "j$.util.Tripwire", |
| "java.util.concurrent.Helpers": "j$.util.concurrent.Helpers", |
| "java.util.concurrent.ThreadLocalRandom": "j$.util.concurrent.ThreadLocalRandom", |
| "java.util.concurrent.atomic.DesugarAtomic": "j$.util.concurrent.atomic.DesugarAtomic", |
| "java.util.concurrent.ConcurrentHashMap": "j$.util.concurrent.ConcurrentHashMap", |
| "java.util.AbstractList": "j$.util.AbstractList", |
| "java.util.CollSer": "j$.util.CollSer", |
| "java.util.ImmutableCollections": "j$.util.ImmutableCollections", |
| "java.util.KeyValueHolder": "j$.util.KeyValueHolder" |
| }, |
| "retarget_lib_member": { |
| "java.util.Arrays#stream": "java.util.DesugarArrays", |
| "java.util.Arrays#spliterator": "java.util.DesugarArrays", |
| "java.util.LinkedHashSet#spliterator": "java.util.DesugarLinkedHashSet", |
| "java.io.BufferedReader#lines": "java.io.DesugarBufferedReader" |
| }, |
| "dont_rewrite": [ |
| "java.util.Iterator#remove" |
| ], |
| "emulate_interface": { |
| "java.lang.Iterable": "j$.lang.Iterable", |
| "java.util.Map$Entry": "j$.util.Map$Entry", |
| "java.util.Collection": "j$.util.Collection", |
| "java.util.Map": "j$.util.Map", |
| "java.util.Iterator": "j$.util.Iterator", |
| "java.util.Comparator": "j$.util.Comparator", |
| "java.util.List": "j$.util.List", |
| "java.util.SortedSet": "j$.util.SortedSet", |
| "java.util.Set": "j$.util.Set", |
| "java.util.concurrent.ConcurrentMap": "j$.util.concurrent.ConcurrentMap" |
| }, |
| "custom_conversion": { |
| "java.util.Optional": "java.util.OptionalConversions", |
| "java.util.OptionalDouble": "java.util.OptionalConversions", |
| "java.util.OptionalInt": "java.util.OptionalConversions", |
| "java.util.OptionalLong": "java.util.OptionalConversions", |
| "java.util.LongSummaryStatistics": "java.util.LongSummaryStatisticsConversions", |
| "java.util.IntSummaryStatistics": "java.util.IntSummaryStatisticsConversions", |
| "java.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatisticsConversions" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 18, |
| "rewrite_prefix": { |
| "java.nio.charset.StandardCharsets": "j$.nio.charset.StandardCharsets" |
| }, |
| "retarget_lib_member": { |
| "java.lang.Character#isBmpCodePoint": "j$.lang.DesugarCharacter" |
| } |
| } |
| ], |
| "program_flags": [ |
| { |
| "api_level_below_or_equal": 10000, |
| "rewrite_prefix": { |
| "java.net.URLDecoder": "j$.net.URLDecoder", |
| "java.net.URLEncoder": "j$.net.URLEncoder" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 30, |
| "rewrite_prefix": { |
| "java.time.": "j$.time.", |
| "java.util.Desugar": "j$.util.Desugar" |
| }, |
| "retarget_lib_member": { |
| "java.util.Calendar#toInstant": "java.util.DesugarCalendar", |
| "java.util.Date#from": "java.util.DesugarDate", |
| "java.util.Date#toInstant": "java.util.DesugarDate", |
| "java.util.GregorianCalendar#from": "java.util.DesugarGregorianCalendar", |
| "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar", |
| "java.util.TimeZone#getTimeZone": "java.util.DesugarTimeZone", |
| "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone" |
| }, |
| "custom_conversion": { |
| "java.time.ZonedDateTime": "java.time.TimeConversions", |
| "java.time.LocalDate": "java.time.TimeConversions", |
| "java.time.Duration": "java.time.TimeConversions", |
| "java.time.ZoneId": "java.time.TimeConversions", |
| "java.time.MonthDay": "java.time.TimeConversions", |
| "java.time.Instant": "java.time.TimeConversions" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 23, |
| "rewrite_prefix": { |
| "java.util.stream.": "j$.util.stream.", |
| "java.util.function.": "j$.util.function.", |
| "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.ThreadLocalRandom": "j$.util.concurrent.ThreadLocalRandom", |
| "java.util.concurrent.atomic.DesugarAtomic": "j$.util.concurrent.atomic.DesugarAtomic", |
| "java.util.concurrent.ConcurrentHashMap": "j$.util.concurrent.ConcurrentHashMap", |
| "java.io.UncheckedIOException": "j$.io.UncheckedIOException" |
| }, |
| "retarget_lib_member": { |
| "java.util.Arrays#stream": "java.util.DesugarArrays", |
| "java.util.Arrays#spliterator": "java.util.DesugarArrays", |
| "java.util.LinkedHashSet#spliterator": "java.util.DesugarLinkedHashSet", |
| "java.util.concurrent.atomic.AtomicInteger#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicInteger", |
| "java.util.concurrent.atomic.AtomicInteger#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicInteger", |
| "java.util.concurrent.atomic.AtomicInteger#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicInteger", |
| "java.util.concurrent.atomic.AtomicInteger#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicInteger", |
| "java.util.concurrent.atomic.AtomicLong#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicLong", |
| "java.util.concurrent.atomic.AtomicLong#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicLong", |
| "java.util.concurrent.atomic.AtomicLong#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicLong", |
| "java.util.concurrent.atomic.AtomicLong#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicLong", |
| "java.util.concurrent.atomic.AtomicReference#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicReference", |
| "java.util.concurrent.atomic.AtomicReference#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicReference", |
| "java.util.concurrent.atomic.AtomicReference#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicReference", |
| "java.util.concurrent.atomic.AtomicReference#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicReference", |
| "java.util.Collections#synchronizedMap": "java.util.DesugarCollections", |
| "java.util.Collections#synchronizedSortedMap": "java.util.DesugarCollections", |
| "java.io.BufferedReader#lines": "java.io.DesugarBufferedReader" |
| }, |
| "dont_rewrite": [ |
| "java.util.Iterator#remove" |
| ], |
| "emulate_interface": { |
| "java.lang.Iterable": "j$.lang.Iterable", |
| "java.util.Map$Entry": "j$.util.Map$Entry", |
| "java.util.Collection": "j$.util.Collection", |
| "java.util.Map": "j$.util.Map", |
| "java.util.Iterator": "j$.util.Iterator", |
| "java.util.Comparator": "j$.util.Comparator", |
| "java.util.List": "j$.util.List", |
| "java.util.SortedSet": "j$.util.SortedSet", |
| "java.util.Set": "j$.util.Set", |
| "java.util.concurrent.ConcurrentMap": "j$.util.concurrent.ConcurrentMap" |
| }, |
| "custom_conversion": { |
| "java.util.Optional": "java.util.OptionalConversions", |
| "java.util.OptionalDouble": "java.util.OptionalConversions", |
| "java.util.OptionalInt": "java.util.OptionalConversions", |
| "java.util.OptionalLong": "java.util.OptionalConversions", |
| "java.util.LongSummaryStatistics": "java.util.LongSummaryStatisticsConversions", |
| "java.util.IntSummaryStatistics": "java.util.IntSummaryStatisticsConversions", |
| "java.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatisticsConversions" |
| } |
| }, |
| { |
| "api_level_below_or_equal": 18, |
| "rewrite_prefix": { |
| "java.nio.charset.StandardCharsets": "j$.nio.charset.StandardCharsets" |
| }, |
| "retarget_lib_member": { |
| "java.lang.Character#isBmpCodePoint": "j$.lang.DesugarCharacter" |
| } |
| } |
| ], |
| "shrinker_config": [ |
| "-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 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" |
| ] |
| } |