diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index a00f76c3f..439a0e9d0 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -73,6 +73,30 @@ public partial class ClassName } ``` +### Missing `IRecord`/Interface Chain (Kotlin `@PublishedApi internal`) +When concrete classes lose an `implements` to a public interface because an +intermediate Kotlin interface is `@PublishedApi internal` (or otherwise has +`visibility=""` from class-parse), the binding generator drops the intermediate +type and strips it from every implementer. + +**Do NOT** force `public` on the dropped +interface — `metadata-verify` (build/cake/validations.cake) will fail with +"Preventing exposing/surfacing interfaces with default package accessibility +as public", and it correctly protects against republishing types upstream +explicitly marked internal. + +**Instead**, inject the public ancestor directly onto each concrete implementer +using `` with an XPath that matches by the dropped intermediate(s): +```xml + + + +``` +This preserves the public chain without exposing the internal intermediary. +See `source/GPS.Metadata.Common.xml` (ReflectedParcelable/Parcelable) and +`source/androidx.health.connect/connect-client/Transforms/Metadata.xml` +(IntervalRecord/InstantaneousRecord/SeriesRecord → Record) for examples. + ### Build File Locking Errors (XARLP7024) Transient parallel build issue. Usually resolves on retry. If persistent, may need to reduce build parallelism in `build/cake/build-and-package.cake`. diff --git a/config.json b/config.json index 9dfecfcc6..51b35d224 100644 --- a/config.json +++ b/config.json @@ -1068,7 +1068,7 @@ "groupId": "androidx.health.connect", "artifactId": "connect-client", "version": "1.1.0", - "nugetVersion": "1.1.0.2", + "nugetVersion": "1.1.0.3", "nugetId": "Xamarin.AndroidX.Health.Connect.ConnectClient" }, { diff --git a/source/androidx.health.connect/connect-client/Transforms/Metadata.xml b/source/androidx.health.connect/connect-client/Transforms/Metadata.xml index 11698447c..c03000c9e 100644 --- a/source/androidx.health.connect/connect-client/Transforms/Metadata.xml +++ b/source/androidx.health.connect/connect-client/Transforms/Metadata.xml @@ -11,6 +11,17 @@ CreateIntentImpl ParseResultImpl + + + + +