Stable Updates 20260810 - #1515
Conversation
…tifacts Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
…rtifact) Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
…umps - media3-common: add explicit interface impl for DefaultHardwareBufferFrame.Builder (covariant return types on Build/SetContentTimeUs/SetMetadata vs IHardwareBufferFrameBuilder) - media3-effect: add explicit interface impl for DefaultGlFrameProcessor.Factory.Create (covariant return vs IFrameProcessorFactory) - media3-exoplayer: add explicit IComparator.Compare impl for DefaultPreloadManager.SimpleRankingDataComparator (generic erasure param mismatch) - media3-exoplayer-dash: rename abstract SegmentBase.CopyWithPresentationTimeOffset to CopyWithPresentationTimeOffsetCore via Metadata.xml and add subclass overrides delegating to the existing covariant-returning methods (return-type-only overloads are not valid in C#) - media3-exoplayer-hls: add explicit interface impl for DefaultHlsPlaylistTracker.ContentSteeringTracker (covariant return vs IHlsPlaylistTracker) - media3-session: remove synthetic bridge setPackageNameOverride methods that duplicated the real covariant-returning methods on MediaLibrarySession.Builder/MediaSession.Builder - play-services-nearby: fix ConnectionLifecycleCallback's new zza base type causing IConnections/IConnectionsClient to be invalidated, and rename PreciseEstimateInfo's EstimateFailureReason/EstimateKind getters to avoid clashing with the generated IntDef constant classes of the same name Regenerated PublicAPI.Unshipped.txt for all affected packages; verified 0 build errors across all touched projects.
|
@copilot you didn't update the namespace file: |
There was a problem hiding this comment.
Pull request overview
Weekly stable Maven→NuGet update for this repo’s binding pipeline, primarily bumping AndroidX Media3 and Google Play Services Nearby while applying targeted metadata/additions fixes to keep the generated bindings buildable and API-stable.
Changes:
- Bump
androidx.media3artifacts to1.11.0andcom.google.android.gms:play-services-nearbyto19.4.0(with regeneratedcgmanifest.json+ artifact list). - Add/adjust binding fixes for new upstream API shapes (covariant return types, synthetic bridge methods, stripped base classes, and property name collisions).
- Update PublicAPI baselines for affected bindings (Unshipped).
Reviewed changes
Copilot reviewed 23 out of 24 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| source/com.google.android.gms/play-services-nearby/Transforms/Metadata.xml | Fixes new 19.4.0 binding issues (internal base class, property name collisions). |
| source/com.google.android.gms/play-services-nearby/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Nearby 19.4.0. |
| source/androidx.media3/media3-transformer/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 transformer. |
| source/androidx.media3/media3-session/Transforms/Metadata.xml | Removes synthetic bridge methods causing CS0111 duplicates for new builder APIs. |
| source/androidx.media3/media3-session/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 session. |
| source/androidx.media3/media3-muxer/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 muxer. |
| source/androidx.media3/media3-exoplayer/Additions/AndroidX.Media3.ExoPlayer.Source.Preload.DefaultPreloadManager.cs | Explicit interface impl to satisfy Comparator erasure mismatch in C#. |
| source/androidx.media3/media3-exoplayer-hls/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 HLS. |
| source/androidx.media3/media3-exoplayer-hls/Additions/DefaultHlsPlaylistTracker.cs | Explicit interface property impl to handle covariant return mismatch. |
| source/androidx.media3/media3-exoplayer-dash/Transforms/Metadata.xml | Renames abstract base method to avoid covariant-return name clash. |
| source/androidx.media3/media3-exoplayer-dash/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 DASH (incl. renamed abstract member). |
| source/androidx.media3/media3-exoplayer-dash/Additions/SegmentBase.cs | Adds overrides that bridge covariant-returning subclasses back to the renamed abstract base. |
| source/androidx.media3/media3-effect/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 effect. |
| source/androidx.media3/media3-effect/Additions/DefaultGlFrameProcessor.cs | Explicit interface impl to satisfy factory covariant return mismatch. |
| source/androidx.media3/media3-decoder/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 decoder. |
| source/androidx.media3/media3-container/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 container. |
| source/androidx.media3/media3-common/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 common (notably new video frame APIs). |
| source/androidx.media3/media3-common/Additions/DefaultHardwareBufferFrame.cs | Explicit interface impls to bridge covariant builder return types. |
| source/androidx.media3/media3-cast/PublicAPI/PublicAPI.Unshipped.txt | Public API baseline updates for Media3 1.11.0 cast. |
| docs/artifact-list-with-versions.md | Regenerated artifact list to match updated versions. |
| config.json | Version bumps + manual exclusion for media3-cast dependency resolution. |
| cgmanifest.json | Regenerated component governance manifest to match updated versions. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
| { | ||
| "groupId": "androidx.media3", | ||
| "artifactId": "media3-cast", | ||
| "version": "1.10.1", | ||
| "nugetVersion": "1.10.1.1", | ||
| "nugetId": "Xamarin.AndroidX.Media3.Cast" | ||
| "version": "1.11.0", | ||
| "nugetVersion": "1.11.0", | ||
| "nugetId": "Xamarin.AndroidX.Media3.Cast", | ||
| "excludedRuntimeDependencies": "androidx.compose.material3.material3" | ||
| }, |
Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
... Added the three reported namespaces to |
Addresses Copilot review comment: the version referenced in the comment should match the actual media3 version bump (1.11.0), not 19.11.x.
|
@dalexsoto review |
dalexsoto
left a comment
There was a problem hiding this comment.
Blocking because the Nearby 19.4.0 binding drops ConnectionLifecycleCallback.OnBandwidthChanged even though the upstream AAR and API reference still expose it. The exact-head API diff reports the breaking removal for both TFMs. Please preserve or re-add the registered virtual callback while rebasing the internal superclass, then regenerate the PublicAPI and API-diff outputs.
| static Android.Gms.Nearby.Uwb.UwbStatusCodes.Zza(int p0) -> string! | ||
| virtual Android.Gms.Nearby.Connection.ConnectionLifecycleCallback.OnBandwidthChanged(string! p0, Android.Gms.Nearby.Connection.BandwidthInfo! p1) -> void | ||
| static Google.Android.Gms.Nearby.Connection.V3.Dct.DctDevice.Creator.get -> Android.OS.IParcelableCreator! | ||
| virtual Android.Gms.Nearby.Connection.ConnectionLifecycleCallback.Zza(System.Collections.IList! p0) -> void |
There was a problem hiding this comment.
OnBandwidthChanged(string, BandwidthInfo) is missing here. Google's 19.4.0 AAR still publicly declares onBandwidthChanged, so rebasing the new internal zza superclass to Java.Lang.Object is causing an unintended breaking change in our binding. Can we preserve or re-add the registered virtual callback?
| static Android.Gms.Nearby.Uwb.UwbStatusCodes.Zza(int p0) -> string! | ||
| virtual Android.Gms.Nearby.Connection.ConnectionLifecycleCallback.OnBandwidthChanged(string! p0, Android.Gms.Nearby.Connection.BandwidthInfo! p1) -> void | ||
| static Google.Android.Gms.Nearby.Connection.V3.Dct.DctDevice.Creator.get -> Android.OS.IParcelableCreator! | ||
| virtual Android.Gms.Nearby.Connection.ConnectionLifecycleCallback.Zza(System.Collections.IList! p0) -> void |
There was a problem hiding this comment.
This Zza(IList) member is an obfuscated implementation detail introduced with Google's internal zza hierarchy and should not be exposed as public managed API. Can we remove it while preserving the public OnBandwidthChanged(string, BandwidthInfo) callback?
Weekly stable Maven→NuGet version bump via
update-config,generate-component-governance, andlist-artifacts, with manual corrections where the latest published Maven versions are not consumable.Version bumps
1.11.0(all artifacts)19.4.0Manual corrections to
update-configoutputorg.chromium.net cronet / httpengine-native-provider — pinned at
143.7445.0. The latest500.0.1is a deprecated empty transitional artifact ("merely pulls the cronet artifact") whose POM declares the proprietary Android Software Development Kit License, which trips binderate's xbd-license check.com.google.ai.edge.litert
litert/litert-api— held at2.1.5/1.4.2. Bumping both to2.1.6is unsatisfiable:litert:2.1.6requireslitert-api:2.1.6, whilelitert-gpu:1.4.2(its latest) hard-pinslitert-api:[1.4.2].androidx.media3:media3-cast — excluded the compose-BOM-managed, versionless
androidx.compose.material3:material3runtime dependency that binderate cannot resolve (no value), consistent with existing exclusions elsewhere inconfig.json:{ "groupId": "androidx.media3", "artifactId": "media3-cast", "version": "1.11.0", "nugetVersion": "1.11.0", "nugetId": "Xamarin.AndroidX.Media3.Cast", "excludedRuntimeDependencies": "androidx.compose.material3.material3" }Generated files
cgmanifest.jsonanddocs/artifact-list-with-versions.mdregenerated to match.Not yet included
PublicApi.*.txt,published-namespaces.txt, and theapi-diff-markdown-info-proutput are pending a full library build, which was still running when work paused. These should be regenerated and committed before merge.