Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -604,14 +604,14 @@
"groupId": "androidx.compose.ui",
"artifactId": "ui-graphics",
"version": "1.11.2",
"nugetVersion": "1.11.2.2",
"nugetVersion": "1.11.2.3",
"nugetId": "Xamarin.AndroidX.Compose.UI.Graphics"
},
{
"groupId": "androidx.compose.ui",
"artifactId": "ui-graphics-android",
"version": "1.11.2",
"nugetVersion": "1.11.2.2",
"nugetVersion": "1.11.2.3",
"nugetId": "Xamarin.AndroidX.Compose.UI.Graphics.Android"
},
{
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,20 @@
-->
<attr path="/api/package[@name='androidx.compose.foundation.internal']/class[@name='PlatformOptimizedCancellationException']" name="visibility">public</attr>
<attr path="/api/package[@name='androidx.compose.foundation']/class[@name='MutationInterruptedException']" name="visibility">public</attr>

<!--
Kotlin `object` companion on a `class`: the nested peer binds as
`<Outer>.Companion`, which collides with the static `Companion` property the
generator would otherwise emit on the outer class (a nested type and a
property can't share a name), so the field is silently dropped and the
singleton is only reachable via raw JNI. Rename every nested `*.Companion`
peer to `CompanionStatic` (the same wildcard pattern kotlin-stdlib, okio,
aicore, and genai-prompt already use) so the generator surfaces
`public static <Outer>.CompanionStatic Companion { get; }` on every outer
class, letting consumers write e.g. `KeyboardOptions.Companion.Default`,
`ScrollState.Companion.Saver`, `LazyListState.Companion.Saver` directly.
(Interface companions are hoisted to top-level `<Outer>Companion` by the
generator before this rename matches, so they're unaffected.)
-->
<attr path="/api/package/class[substring(@name,string-length(@name)-9)='.Companion']" name="managedName">CompanionStatic</attr>
</metadata>

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,21 @@
</constructor>
</add-node>

<!--
Kotlin `object` companions on classes: the nested peer binds as
`<Outer>.Companion`, colliding with the static `Companion` property the
generator would emit on the outer class, so the field is dropped and the
singleton (which exposes constants such as Color.Red/Green/Blue,
BlendMode.Clear, Brush family helpers, ColorFilter factories, etc.) is only
reachable via raw JNI. Rename every nested `*.Companion` peer to
`CompanionStatic` (the same wildcard pattern kotlin-stdlib, okio, aicore,
and genai-prompt already use) so the generator surfaces
`public static <Outer>.CompanionStatic Companion { get; }` on every outer
class, letting consumers write `Color.Companion.Red`,
`BlendMode.Companion.Clear`, `Brush.Companion.HorizontalGradient(...)`
directly. (Interface companions are hoisted to top-level `<Outer>Companion`
by the generator before this rename matches, so they're unaffected.)
-->
<attr path="/api/package/class[substring(@name,string-length(@name)-9)='.Companion']" name="managedName">CompanionStatic</attr>

</metadata>

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions source/androidx.compose.ui/ui-text-android/Transforms/Metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,19 @@
-->
<remove-node path="/api/package[@name='androidx.compose.ui.text.intl']/class[@name='PlatformLocaleKt']/method[@name='getPlatformLocaleDelegate']" />
<remove-node path="/api/package[@name='androidx.compose.ui.text.platform']/class[@name='DispatcherKt']/method[@name='getFontCacheManagementDispatcher']" />

<!--
Kotlin `object` companions on classes: the nested peer binds as
`<Outer>.Companion`, colliding with the static `Companion` property the
generator would emit on the outer class, so the field is dropped and the
singleton is only reachable via raw JNI. Rename every nested `*.Companion`
peer to `CompanionStatic` (the same wildcard pattern kotlin-stdlib, okio,
aicore, and genai-prompt already use) so the generator surfaces
`public static <Outer>.CompanionStatic Companion { get; }` on every outer
class, letting consumers write e.g. `TextStyle.Companion.Default`,
`FontWeight.Companion.Bold`, `ImeAction.Companion.Done` directly.
(Interface companions are hoisted to top-level `<Outer>Companion` by the
generator before this rename matches, so they're unaffected.)
-->
<attr path="/api/package/class[substring(@name,string-length(@name)-9)='.Companion']" name="managedName">CompanionStatic</attr>
</metadata>