Open
Conversation
6d63750 to
e0cffe1
Compare
dturner
approved these changes
Mar 19, 2026
3642b22 to
58cf231
Compare
3129112 to
e078b5d
Compare
e078b5d to
b626af9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
9.4.0→9.4.14.34.0→4.34.11.0.0-rc01→1.0.0-rc021.6.0-rc01→1.6.01.6.0-rc01→1.6.01.6.0-rc01→1.6.01.5.0→1.6.01.5.0→1.6.01.5.0→1.6.01.5.0→1.6.01.5.0→1.6.08.3.0→8.4.01.3.0→1.4.01.3.0→1.4.01.3.0→1.4.01.3.0→1.4.04.34.0→4.34.11.9.2→1.10.01.9.2→1.10.01.9.2→1.10.08.2.1→8.2.22.3.10→2.3.202.3.10→2.3.202.3.10→2.3.202.3.10→2.3.202.3.10→2.3.202.3.10→2.3.202.3.10→2.3.2034.10.0→34.11.01.5.6→1.6.01.10.5→1.10.61.10.5→1.10.61.10.5→1.10.61.10.5→1.10.61.10.5→1.10.61.10.5→1.10.61.10.5→1.10.61.10.5→1.10.62.11.1→2.11.22.11.1→2.11.21.1.0-beta01→1.1.0-rc011.1.0-beta01→1.1.0-rc011.11.0-beta01→1.11.0-beta022026.03.00→2026.03.011.5.3→1.6.01.5.3→1.6.0Release Notes
gradle/gradle (gradle)
v9.4.1Compare Source
androidx/media (androidx.media3:media3-ui)
v1.10.0Compare Source
This release includes the following changes since
1.9.1 release:
Player.mute()andPlayer.unmute()fromUnstableApitostable.
Format.pcmEncodingandC.PcmEncodingfromUnstableApitostable.
Format.primaryTrackGroupIdto identify the primary group ofembedded
Formatinstances(#294).
AdsMediaSource.MediaCodecVideoRenderertobetter align scheduling work and CPU wake-cycles to when video frames
can be processed. You can enable this using
experimentalSetEnableMediaCodecVideoRendererDurationToProgressUs()inthe
DefaultRenderersFactory.DataSource.FactoryinDefaultPreloadManager.Builder.ExoPlayerto be mocked without Robolectric by moving somedefault constants to
ExoPlayer.Builder. Mocking this complex interfaceis not generally encouraged - only when the usage is
minimal/simple/incidental
(#2985).
DEFAULT_STUCK_PLAYING_DETECTION_TIMEOUT_MSfrom
ExoPlayertoExoPlayer.Builder(without deprecation).ProgressiveMediaSourcepropagates out-of-date timelineinfo to the player, and the queued periods unexpectedly get removed
(#3016).
playback is requested during phone calls.
re-buffers at the end of the on-demand content
(#3052).
(#2830).
ArrayIndexOutOfBoundsException(#3125).
EditedMediaItem.removeVideo.EditedMediaItem.Builder.setFrameRate()can now set a maximum outputframe rate for video, which is particularly helpful when increasing
media speed with
setSpeed().DefaultTrackSelector.selectAllTracksto includethe output array as a parameter, pre-populated with track overrides.
whether the corresponding primary track is selected
(#294).
TrackSelectionParametersoptions forpreferredVideoLanguages,preferredVideoLabels,preferredAudioLabels,preferredTextLabelsandselectTextByDefault.uuidboxes before other boxes likemoov(#3046).containers.
FrameExtractor. Users should now depend on thenew
:media3-inspector-framemodule and update imports toandroidx.media3.inspector.frame.FrameExtractor.frames.
libiamftoiamf_tools.using the IAMF decoder extension) or through the Android Spatializer.
AC4Profile22and other legacy profileswhen assessing AC-4 decoder support in Automotive scenarios
(#2609).
AudioOutputinitialization inDefaultAudioSink(#2905).
AudioOutputinitialization inDefaultAudioSink(#2905).
applicable) when decoding IAMF, both with the IAMF extension and media
codec decoders, supported by new fields and logic in AudioCapabilities
and AudioCapabilitiesReceiver.
audio in compressed offload mode.
STARTandSTOPSPU control commands to derive cueduration instead of always defaulting to 5 seconds
(#2935).
potential metadata tracks published by HLS variants and renditions
(#3043).
LottieOverlayto a new:media3-effect-lottiemodule (which alsoinvolved renaming it from
androidx.media3.effect.LottieOverlaytoandroidx.media3.effect.lottie.LottieOverlay).:media3-effect-lottiemodule which providesfunctionality for applying lottie effects to video frames.
latest Ad media info API.
the IMA LOADED event. The fix now maps the ad MIME type using the ad
media info provided by IMA.
setEnableCustomTabstoImaAdsLoaderandImaServerSideAdInsertionMediaSource, allowing users to control whetherad click-through URLs are launched using Custom Tabs.
ImaAdTagUriBuilder, a class that offers an alternative way toconstruct an
adTagUri. It contains thesetPreferredLinearOrientationAPI. This is an API in alpha testing that will allow you to set your
preferred orientation for linear ads. If you want to join the alpha
testing group, please reach out to your account partner.
MediaMetadata.artworkDatacan crashthe app.
@Player.Commandargument in theActionFactoryinterface (#2933).
MediaSessionServiceandMediaLibraryServiceaLifecycleService, allowing to attach lifecycle-aware operations to theservice's lifecycle
(#187).
MediaControllerandMediaBrowserfor local playbacks. Apps shouldn't change the localdevice volume, and if required, can use
AudioManagerAPIs for thispurpose.
Intentinstances that started the service as a foregroundservice. This prevents a
ForegroundServiceDidNotStartInTimeExceptionbeing thrown by the system. This is a breaking change on an unstable API
for apps implementing a custom
MediaNotification.Provideras there isa new required method.
PendingIntentinstances to be used with home screenwidgets (#2933).
Intentinstances for Compose-basedhome screen widgets
(#2933).
when playback transitioned from a given media item index to another with
the same media item for discontinuity reason 'AUTO' and 'SEEK'
(#2997).
other UI surface like Android Auto or manufacturers not needing the
workaround (#3041).
(#3056).
particular size can crash SysUI and force the device to reboot
(#3118).
PlaybackSpeedControlComposable tomedia3-ui-composefordisplaying and modifying playback speed.
PlaybackSpeedToggleButtonComposable tomedia3-ui-compose-material3for controlling playback speed.ProgressSliderComposable tomedia3-ui-compose-material3fordisplaying player progress and performing seeks using dragging and
tapping (#2288).
PlayerComposable tomedia3-ui-compose-material3which combinesa
ContentFramewith customizable controls aligned to top, center, andbottom.
continuous announcement update when
PlayerControlViewis visible.(#2484).
QUERYPARAMattribute with#EXT-X-DEFINE(#1854).
(#3008).
(#3043).
streams from different locations are available
(#1988).
and resumption position
(#3013).
or missed samples at the beginning of playback
(#3057).
correctly (#3024).
parse samples of the same access unit that spanned multiple RTP packets.
This resulted in visual artifacts and corruption in the video
(#3121).
(#3066).
RemoteCastPlayer.Builder#setTrackSelectormethod that enables theimplementation of track selection for Cast playbacks.
ExperimentalFrameExtractor. Useandroidx.media3.inspector.frame.FrameExtractorinstead.ChannelMixingMatrix.create(). UseChannelMixingMatrix.createForConstantGain()instead.androidx.media3.extractor.metadata.flac.VorbisComment. Useandroidx.media3.extractor.metadata.vorbis.VorbisCommentinstead.MediaSource.prepareSource(MediaSourceCaller, TransferListener).Use
MediaSource.prepareSource(MediaSourceCaller, TransferListener, PlayerId)instead.v1.9.3Compare Source
googlemaps/android-maps-compose (com.google.maps.android:maps-compose)
v8.2.2Bug Fixes
JetBrains/kotlin (org.jetbrains.kotlin.plugin.serialization)
v2.3.20: Kotlin 2.3.20Changelog
Analysis API. FIR
New Features
KT-78090Implement stubs support for new conditional returns and holdsIn contractsFixes
KT-82948'FirRegularClass' expected as a containing declaration, got 'FirTypeAliasImpl'KT-83467Package-level JSpecify annotations are ignored when coming from jars or librariesKT-82057K2. Cannot infer type parameter 'R' in Ktor routing post() function with explicit response typeKT-82846AA: unresolved KtExpression.expressionType for the reference to the parameter with default valueKT-80485False positive UNRESOLVED_REFERENCE on nested interface from super-super class in the super type position inside an anonymous objectKT-82772Flaky false positive deprecation warning on PersistentMap.put in Kotlin repo in IDE modeKT-76487StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is unstableKT-82618Various tests are failing with NPE in kt-master after updating the compiler on 19.11.25KT-82076Error querying members of JavaClass created for SymbolLightClassForAnnotationClass during library analysisKT-71596Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollectorKT-82085No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDEKT-81873Provide a way of including traces in phase JFR eventsKT-71929Consider leaving the non-post-compute version at EnhancementSymbolsCache.enhancedFunctionsAnalysis API. Infrastructure
KT-83173Analysis API Tests: Library names with RC versions aren't sanitisedKT-65140LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIRKT-82212[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and AbstractDiagnosticsFirWasmWasiTest for LL FIRAnalysis API. Light Classes
KT-82227Value classes should expose regular static methodsAnalysis API. PSI
KT-81710'KtTypeReference.getTypeText' does not account for 'suspend' modifier on suspend lambdasKT-82258Prepare PSI for migration from context receivers to context parametersKT-81074KDoc: List rendering is brokenAnalysis API. Providers and Caches
KT-82449K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency Computation in KotlinModuleDependentsProviderBase.computeTransitiveDependents)KT-82629'collectDiagnostics' returns stale syntax error after editor fixKT-74907Analysis API: Apply platform-based library module content restrictions consistentlyAnalysis API. Standalone
KT-81107AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic linksAnalysis API. Stubs and Decompilation
KT-82792Stub for KtValueArgumentList inside KtAnnotationEntry should be present if it is present in psiKT-82527TypeClsStubBuilder.createFunctionTypeStub throws NullPointerExceptionKT-82558Deserialized DNN type should have a fully qualified AnyKT-81928KaArrayAnnotationValueImpl.values missing first elementKT-82139Support contracts for property accessorsKT-82198Support context parameters in contractsAnalysis API. Surface
New Features
KT-82851Property accessors should inherit KDoc from the parent propertyKT-63339Analysis API: Provide a way to extract KDoc for symbolsKT-79070KaTypeProvider: add API to build a default type with star projectionsKT-66566AA: api to create functional typesKT-66043KtTypeCreator doesn't provide a way for creating annotated typesPerformance Improvements
KT-83694Provide psi-based implementation ofKaDeclarationSymbol#isExternalKT-70868KaSymbol: support PSI-only visibility and modality for the case without compiler pluginsKT-81627KaFirSymbolDeclarationOverridesProvider#processOverrides should process only relevant declarationsFixes
KT-83152[Analysis API, KDoc] Make class name links on constructors point to the classKT-83695DeprecateKaSymbolInformationProvider#{getter, setter}DeprecationStatusKT-82853Add a convenience property for testing declarations for effective external-nessKT-83226Support "Collection literals" in the Analysis APIKT-83225Support "@IntroduceAt" in the Analysis APIKT-83222Support "Improve use-site defaulting for annotations" in the Analysis APIKT-83351Rename KaSession context parameter from 's' in bridges to something nicerKT-83199Clarify API around extension pointsKT-83074Inner enum entry class has incorrect default visibilityKT-82442Add Ka prefix to org.jetbrains.kotlin.analysis.api.symbols.AdditionalKDocResolutionProviderKT-82443Add Ka prefix to org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRendererKT-82441Add Ka prefix to org.jetbrains.kotlin.analysis.api.compile.CodeFragmentCapturedValueKT-82439Add Ka prefix to org.jetbrains.kotlin.analysis.api.components.DebuggerExtensionKT-82438Add Ka prefix to org.jetbrains.kotlin.analysis.api.components.DefaultTypeClassIdsKT-68577asPsiTypeandmapTypeToJvmType: leading delimiter for class in a root packageKT-81734MIssing "ARGUMENT_TYPE_MISMATCH" caused by self-referential generic typeKT-82856Redesign KotlinReferenceProviderContributor to make it extensibleKT-82615ClarifyKtReference#resolvesByNamescontractKT-82534No expected type for property accessor without bodyKT-82406Add a test to ensure that all top-level classes in the Analysis API Surface haveKaprefixKT-78397investigate if there is a need in Extra support for the "various little features in contracts"KT-74009Analysis API: Expose "isOverloadable" check for callable symbols similar to "OverloadChecker.isOverloadable"KT-78399Check return value - check how we see from Java(+Stub) we see “annotated” signaturesKT-80357[Analysis API]KaType.enhancedTypedoesn't enhance type parametersKT-73659Analysis API: The name ofKaType.enhancedTypeis too generalKT-80545[Analysis API] DeprecateKaFunctionType.arityKT-77708K2 Mode: Potentially redundant smart cast highlighing when passing smartcasted expressions as argumentsKT-81264K2 AA:KaValueParameterSymbol.hasDefaultValueis false for overriding or actual functionsKT-81166Forbid the usage of KaSessionComponent implementation types directlyKT-74801Analysis API: Publish/subscribe to modification events with a single message bus topicBackend. Native. Debug
KT-81741Native: stepping into data class hashCode in lldb goes to line 1Backend. Wasm
New Features
KT-81485[Wasm] DebuggerCustomFormatters generation support for single module modeKT-81483[Wasm] Typescript generation support for single module modeKT-81484[Wasm] Dwarf generation support for single module modePerformance Improvements
KT-83839K/Wasm: CMP. Load time on Safari significantly increased with Kotlin = 2.3.20-Beta1KT-81524Unnecessary Any-JsAny conversions are generated for external instanceofsFixes
KT-82732K/Wasm runtime crash when using fun reference: convertKotlinClosureToJsClosureKT-82649K/Wasm: Rewrite StringBuilder to use JsStringKT-73240K/Wasm: consider using JS String Builtins proposal in String implementation for wasm-js targetKT-83995K/Wasm: 2.3.0 -> 2.3.20-Beta1 degradation in arrow testsKT-82309K/Wasm: refactor _initialize functionKT-70075Wasm: "OutOfMemoryError: GC overhead limit exceeded" during testsKT-83046K/Wasm: don't use StringBuilder implicitly for string concatenationsKT-82645K/Wasm: wasmJs use js "String" for number2String conversionKT-79937K/Wasm: support kotlin.js.nativeInvoke annotationKT-67461Use new lowering phase creation API in Wasm backendKT-83664Wasm: Colon and space are not sanitized in output file namesKT-65779JsExport declaration name clashKT-82202[Wasm] SourceMap generation support for single module modeKT-82162[Wasm] Run single module tests with standalone vm'sKT-81325[Wasm] Remove string pool initialiser dependent codeKT-73238K/Wasm: stop using linear memory inside our codeKT-83025Wasm: Compose application is not loadingKT-73239K/Wasm: use JS String Builtins proposal to transfer strings to and from JSKT-83194K/Wasm: create WasmIR test infrastructureKT-65234K/Wasm Ensure that fp operations are aligned with other b-endsKT-81856K/JS/Wasm interop: external instanceofs do not link in singleModule modeKT-81610[Wasm] Add CLI test for performance metrics for klibs->binary scenarioKT-81550Incorrect generation of .wat filesKT-71533K/Wasm + K2: no error on KClass::qualifiedName usagesCompiler
New Features
KT-75736Enable reading/writing annotations in metadata on JVM by defaultKT-79330Implement the first version of inference for Collection LiteralsKT-83401Collection literals: support different types of expected types for CLKT-55548JSR-305: Overload resolution ambiguity: Platform Types vs Kotlin TypesKT-74860Support Unit coercion (incl. fun refs) in unused return value checkerKT-13968Support vertx nullable annotationKT-79656Useorg.jetbrains.annotations.UnmodifiableViewand/ororg.jetbrains.annotations.Unmodifiableto infer read-only types for Java entitiesKT-81684Implement explicit passing of context arguments using named syntax [TEST_ONLY]KT-80492Checkers for operatorofKT-82638Collection literals: resolve to factory functions for standard library classesKT-82467Improve binary and JVM compatibility by generating bridges for abstract interface methodsKT-82655Bridges generated for non-fake overrides shall include annotations from target methodsKT-74223Move Kotlin/Native TestProcessor phase to the first phaseKT-27090Support contracts in getter and setter for top-level extension propertiesKT-74809Support unnamed local variablesKT-45683Allow generics in contract type assertionsPerformance Improvements
KT-81974Do not eagerly initialize reflection for KProperty objects for delegated propertiesKT-83697Native: increased bitcode produced with enabled safe castsKT-83036Native: too many casts emitted with -Xgeneric-safe-casts=trueKT-80061Compiler (or IDEA) hangs due to importing large Kotlin reflect functions (e.g. KFunction999999999)KT-68592Investigate performance implications of enabling -Xjvm-default for ir.tree moduleKT-73687Inefficient KtCommonFile#getFileAnnotationListKT-71673Consider making EnhancementSymbolsCache. enhancedFunctions using simple cacheFixes
KT-84773Annotations not persisted in IR for internal external functionsKT-78783K2: absence of warning for KTLC-284 migrationKT-81553INITIALIZER_TYPE_MISMATCH and ASSIGNMENT_TYPE_MISMATCH is reported on the entire initializerKT-83395Kotlin/Native 2.3.0 iOS release framework fails with Invalid LLVM module (PHI node type mismatch)KT-84620Incorrect optimization of property delegationKT-81567Add a use-site warning if a@DslMarker-marked annotation is used on entities where it is a no-opKT-81700flaky overload resolution behaviors (false-positive errors, different final candidates, compile-time failures)KT-83372compileDebugKotlinAndroid hangs in 2.3.0 with SQLDelightKT-82579Update specificity rule for context parametersKT-83590Some explicit backing fields must still be considered private-to-thisKT-83849False-positive NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS forOptional.orElse(null)callKT-84192"Member overrides different '@Throws' filter from" caused by overriding in different moduleKT-72994K2: Remove resolution to context receiversKT-80247No diagnostic on unresolved type annotation from a dependency in an inferred typeKT-78730Move more LLVM-agnostic code to compiler/ir/backend.native or compiler/ir/backend.commonKT-74051Add a Continuation for tail-call suspend functionsKT-83984Data races around kotlinx.serialization plugin protobuf extensions registrationKT-83317ClassCastException: with cast kotlin.UInt to java.lang.Number when defining constantKT-83031K2: unstable resolution of EnhancedNullability from type-use NotNull in presence of unused codeKT-83824Delegated property in Gradle DSL fails to compileKT-83657[K/N] Pre-codegen inline produces invalid bitcodeKT-81555Kotlin scripts: top-level name-based destructuring with _ = prop fails with “exception while generating code”KT-83314JSpecify@NullMarkedchanges Java equals(Object) to equals(Any?) causing override conflict in Kotlin 2.3KT-83282JvmExposeBoxed: Duplicate annotation interface kotlin.coroutines.jvm.internal.DebugMetadata in class %class%$1 for suspend inline class valueKT-78443Refactor session component initialization for multi-target compilationKT-83427Arguments of plugin-generated annotations are serialized incorrectlyKT-83538OPERATOR_RENAMED_ON_IMPORT is not reported for 'provideDelegate' operatorKT-83537OPERATOR_RENAMED_ON_IMPORT is not reported for 'of' operatorKT-82721Inconsistent explicit backing fields behaviorKT-83589Explicit backing fields don't likely work with intersection overridesKT-81951K2: Another false positive "Assigned value is never read" in composable functionKT-83588Explicit backing field is falsely accessible from a subclass via a substitution overrideKT-82849Collection literals (minor): collection literal should only be resolved to operatorKT-83363VerifyError: "Bad type on operand stack" on multi-line suspending call with default parameter value since API version 2.4KT-83570K2: Resolve problematic IR when referencing Kotlin const from annotation in JavaKT-83362Starting from 2.3 DefaultImpls bridge functions deprecated with the level HIDDEN are no longer syntheticKT-9182Java interoperability: Overload resolution ambiguity on Java's@NotNulland primitivesKT-83633](https://youtrack.jeConfiguration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.