Skip to content

Commit 227fa7b

Browse files
Surface Kotlin object companions on Compose class bindings via CompanionStatic rename
Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
1 parent 71621c0 commit 227fa7b

6 files changed

Lines changed: 113 additions & 62 deletions

File tree

source/androidx.compose.foundation/foundation-android/PublicAPI/PublicAPI.Unshipped.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -964,8 +964,8 @@ AndroidX.Compose.Foundation.Text.KeyboardOptions
964964
AndroidX.Compose.Foundation.Text.KeyboardOptions.AutoCorrect.get -> bool
965965
AndroidX.Compose.Foundation.Text.KeyboardOptions.AutoCorrectEnabled.get -> Java.Lang.Boolean?
966966
AndroidX.Compose.Foundation.Text.KeyboardOptions.Capitalization.get -> int
967-
AndroidX.Compose.Foundation.Text.KeyboardOptions.Companion
968-
AndroidX.Compose.Foundation.Text.KeyboardOptions.Companion.Default.get -> AndroidX.Compose.Foundation.Text.KeyboardOptions!
967+
AndroidX.Compose.Foundation.Text.KeyboardOptions.CompanionStatic
968+
AndroidX.Compose.Foundation.Text.KeyboardOptions.CompanionStatic.Default.get -> AndroidX.Compose.Foundation.Text.KeyboardOptions!
969969
AndroidX.Compose.Foundation.Text.KeyboardOptions.ImeAction.get -> int
970970
AndroidX.Compose.Foundation.Text.KeyboardOptions.KeyboardType.get -> int
971971
AndroidX.Compose.Foundation.Text.KeyboardOptions.Merge(AndroidX.Compose.Foundation.Text.KeyboardOptions? other) -> AndroidX.Compose.Foundation.Text.KeyboardOptions!
@@ -1411,7 +1411,7 @@ override AndroidX.Compose.Foundation.Text.KeyModifiersKt.JniPeerMembers.get -> J
14111411
override AndroidX.Compose.Foundation.Text.KeyboardActions.Companion.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
14121412
override AndroidX.Compose.Foundation.Text.KeyboardActions.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
14131413
override AndroidX.Compose.Foundation.Text.KeyboardActionsKt.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
1414-
override AndroidX.Compose.Foundation.Text.KeyboardOptions.Companion.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
1414+
override AndroidX.Compose.Foundation.Text.KeyboardOptions.CompanionStatic.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
14151415
override AndroidX.Compose.Foundation.Text.KeyboardOptions.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
14161416
override AndroidX.Compose.Foundation.Text.LongPressTextDragObserverKt.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
14171417
override AndroidX.Compose.Foundation.Text.Modifiers.LayoutUtilsKt.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
@@ -1753,6 +1753,7 @@ static AndroidX.Compose.Foundation.Text.Input.TextFieldStateKt.ToTextFieldBuffer
17531753
static AndroidX.Compose.Foundation.Text.Input.TextObfuscationMode_androidKt.GetDefault(AndroidX.Compose.Foundation.Text.Input.TextObfuscationMode.Companion! obj) -> int
17541754
static AndroidX.Compose.Foundation.Text.KeyModifiersKt.GetModifiers(Android.Views.KeyEvent! obj) -> int
17551755
static AndroidX.Compose.Foundation.Text.KeyboardActionsKt.KeyboardActions(Kotlin.Jvm.Functions.IFunction1! onAny) -> AndroidX.Compose.Foundation.Text.KeyboardActions!
1756+
static AndroidX.Compose.Foundation.Text.KeyboardOptions.Companion.get -> AndroidX.Compose.Foundation.Text.KeyboardOptions.CompanionStatic!
17561757
static AndroidX.Compose.Foundation.Text.Modifiers.LayoutUtilsKt.IsEllipsis(int obj) -> bool
17571758
static AndroidX.Compose.Foundation.Text.Selection.DefaultTextSelectionColors_androidKt.DefaultTextSelectionColors.get -> AndroidX.Compose.Foundation.Text.Selection.TextSelectionColors!
17581759
static AndroidX.Compose.Foundation.Text.Selection.PlatformSelectionBehaviors_androidKt.LocalTextClassifierCoroutineContext.get -> AndroidX.Compose.Runtime.ProvidableCompositionLocal!

source/androidx.compose.foundation/foundation-android/Transforms/Metadata.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,18 @@
7171
-->
7272
<attr path="/api/package[@name='androidx.compose.foundation.internal']/class[@name='PlatformOptimizedCancellationException']" name="visibility">public</attr>
7373
<attr path="/api/package[@name='androidx.compose.foundation']/class[@name='MutationInterruptedException']" name="visibility">public</attr>
74+
75+
<!--
76+
Kotlin `object` companion on a `class`: the nested peer binds as
77+
`<Outer>.Companion`, which collides with the static `Companion` property the
78+
generator would otherwise emit on the outer class (a nested type and a
79+
property can't share a name), so the field is silently dropped and the
80+
singleton is only reachable via raw JNI. Rename the nested companion peer to
81+
`CompanionStatic` (matching the okio binding convention) so the generator can
82+
surface `public static KeyboardOptions.CompanionStatic Companion { get; }`,
83+
letting consumers write `KeyboardOptions.Companion.Default` directly.
84+
(Interface companions are unaffected — their peer is already hoisted/renamed,
85+
so they surface without help.)
86+
-->
87+
<attr path="/api/package[@name='androidx.compose.foundation.text']/class[@name='KeyboardOptions.Companion']" name="managedName">CompanionStatic</attr>
7488
</metadata>

source/androidx.compose.ui/ui-graphics-android/PublicAPI/PublicAPI.Unshipped.txt

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -147,22 +147,22 @@ AndroidX.Compose.UI.Graphics.ClipOp.Companion
147147
AndroidX.Compose.UI.Graphics.ClipOp.Companion.Difference_rtfAjoo.get -> int
148148
AndroidX.Compose.UI.Graphics.ClipOp.Companion.Intersect_rtfAjoo.get -> int
149149
AndroidX.Compose.UI.Graphics.Color
150-
AndroidX.Compose.UI.Graphics.Color.Companion
151-
AndroidX.Compose.UI.Graphics.Color.Companion.Black_0d7_KjU.get -> long
152-
AndroidX.Compose.UI.Graphics.Color.Companion.Blue_0d7_KjU.get -> long
153-
AndroidX.Compose.UI.Graphics.Color.Companion.Cyan_0d7_KjU.get -> long
154-
AndroidX.Compose.UI.Graphics.Color.Companion.DarkGray_0d7_KjU.get -> long
155-
AndroidX.Compose.UI.Graphics.Color.Companion.Gray_0d7_KjU.get -> long
156-
AndroidX.Compose.UI.Graphics.Color.Companion.Green_0d7_KjU.get -> long
157-
AndroidX.Compose.UI.Graphics.Color.Companion.Hsl_JlNiLsg(float hue, float saturation, float lightness, float alpha, AndroidX.Compose.UI.Graphics.Colorspace.Rgb! colorSpace) -> long
158-
AndroidX.Compose.UI.Graphics.Color.Companion.Hsv_JlNiLsg(float hue, float saturation, float value, float alpha, AndroidX.Compose.UI.Graphics.Colorspace.Rgb! colorSpace) -> long
159-
AndroidX.Compose.UI.Graphics.Color.Companion.LightGray_0d7_KjU.get -> long
160-
AndroidX.Compose.UI.Graphics.Color.Companion.Magenta_0d7_KjU.get -> long
161-
AndroidX.Compose.UI.Graphics.Color.Companion.Red_0d7_KjU.get -> long
162-
AndroidX.Compose.UI.Graphics.Color.Companion.Transparent_0d7_KjU.get -> long
163-
AndroidX.Compose.UI.Graphics.Color.Companion.Unspecified_0d7_KjU.get -> long
164-
AndroidX.Compose.UI.Graphics.Color.Companion.White_0d7_KjU.get -> long
165-
AndroidX.Compose.UI.Graphics.Color.Companion.Yellow_0d7_KjU.get -> long
150+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic
151+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Black_0d7_KjU.get -> long
152+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Blue_0d7_KjU.get -> long
153+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Cyan_0d7_KjU.get -> long
154+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.DarkGray_0d7_KjU.get -> long
155+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Gray_0d7_KjU.get -> long
156+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Green_0d7_KjU.get -> long
157+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Hsl_JlNiLsg(float hue, float saturation, float lightness, float alpha, AndroidX.Compose.UI.Graphics.Colorspace.Rgb! colorSpace) -> long
158+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Hsv_JlNiLsg(float hue, float saturation, float value, float alpha, AndroidX.Compose.UI.Graphics.Colorspace.Rgb! colorSpace) -> long
159+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.LightGray_0d7_KjU.get -> long
160+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Magenta_0d7_KjU.get -> long
161+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Red_0d7_KjU.get -> long
162+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Transparent_0d7_KjU.get -> long
163+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Unspecified_0d7_KjU.get -> long
164+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.White_0d7_KjU.get -> long
165+
AndroidX.Compose.UI.Graphics.Color.CompanionStatic.Yellow_0d7_KjU.get -> long
166166
AndroidX.Compose.UI.Graphics.Color.Value.get -> ulong
167167
AndroidX.Compose.UI.Graphics.ColorFilter
168168
AndroidX.Compose.UI.Graphics.ColorFilter.ColorFilter(nint javaReference, Android.Runtime.JniHandleOwnership transfer) -> void
@@ -967,7 +967,7 @@ override AndroidX.Compose.UI.Graphics.CanvasHolder.JniPeerMembers.get -> Java.In
967967
override AndroidX.Compose.UI.Graphics.CanvasKt.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
968968
override AndroidX.Compose.UI.Graphics.ClipOp.Companion.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
969969
override AndroidX.Compose.UI.Graphics.ClipOp.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
970-
override AndroidX.Compose.UI.Graphics.Color.Companion.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
970+
override AndroidX.Compose.UI.Graphics.Color.CompanionStatic.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
971971
override AndroidX.Compose.UI.Graphics.Color.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
972972
override AndroidX.Compose.UI.Graphics.ColorFilter.Companion.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
973973
override AndroidX.Compose.UI.Graphics.ColorFilter.JniPeerMembers.get -> Java.Interop.JniPeerMembers!
@@ -1155,6 +1155,7 @@ static AndroidX.Compose.UI.Graphics.AndroidColorFilter_androidKt.AsComposeColorF
11551155
static AndroidX.Compose.UI.Graphics.AndroidColorSpace_androidKt.ToAndroidColorSpace(AndroidX.Compose.UI.Graphics.Colorspace.ColorSpace! obj) -> Android.Graphics.ColorSpace!
11561156
static AndroidX.Compose.UI.Graphics.AndroidColorSpace_androidKt.ToComposeColorSpace(Android.Graphics.ColorSpace! obj) -> AndroidX.Compose.UI.Graphics.Colorspace.ColorSpace!
11571157
static AndroidX.Compose.UI.Graphics.AndroidColor_androidKt.FromColorLong(AndroidX.Compose.UI.Graphics.Color.Companion! obj, long colorLong) -> long
1158+
static AndroidX.Compose.UI.Graphics.AndroidColor_androidKt.FromColorLong(AndroidX.Compose.UI.Graphics.Color.CompanionStatic! obj, long colorLong) -> long
11581159
static AndroidX.Compose.UI.Graphics.AndroidColor_androidKt.ToColorLong(long obj) -> long
11591160
static AndroidX.Compose.UI.Graphics.AndroidGraphicsContext_androidKt.GraphicsContext(Android.Views.ViewGroup! layerContainer) -> AndroidX.Compose.UI.Graphics.IGraphicsContext!
11601161
static AndroidX.Compose.UI.Graphics.AndroidImageBitmap_androidKt.AsAndroidBitmap(AndroidX.Compose.UI.Graphics.IImageBitmap! obj) -> Android.Graphics.Bitmap!
@@ -1189,6 +1190,7 @@ static AndroidX.Compose.UI.Graphics.CanvasKt.Rotate(AndroidX.Compose.UI.Graphics
11891190
static AndroidX.Compose.UI.Graphics.CanvasKt.RotateRad(AndroidX.Compose.UI.Graphics.ICanvas! obj, float radians, float pivotX, float pivotY) -> void
11901191
static AndroidX.Compose.UI.Graphics.CanvasKt.Scale(AndroidX.Compose.UI.Graphics.ICanvas! obj, float sx, float sy, float pivotX, float pivotY) -> void
11911192
static AndroidX.Compose.UI.Graphics.CanvasKt.WithSave(AndroidX.Compose.UI.Graphics.ICanvas! obj, Kotlin.Jvm.Functions.IFunction0! block) -> void
1193+
static AndroidX.Compose.UI.Graphics.Color.Companion.get -> AndroidX.Compose.UI.Graphics.Color.CompanionStatic!
11921194
static AndroidX.Compose.UI.Graphics.Color.Convert(long arg0, AndroidX.Compose.UI.Graphics.Colorspace.ColorSpace! colorSpace) -> long
11931195
static AndroidX.Compose.UI.Graphics.Color.Copy(long arg0, float alpha, float red, float green, float blue) -> long
11941196
static AndroidX.Compose.UI.Graphics.ColorKt.Color(float red, float green, float blue, float alpha, AndroidX.Compose.UI.Graphics.Colorspace.ColorSpace! colorSpace) -> long

source/androidx.compose.ui/ui-graphics-android/Transforms/Metadata.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,16 @@
2929
-->
3030
<remove-node path="/api/package[@name='androidx.compose.ui.graphics']/interface[@name='PathIterator']" />
3131

32+
<!--
33+
Kotlin `object` companion on the `Color` inline value class: the nested peer
34+
binds as `Color.Companion`, colliding with the static `Companion` property
35+
the generator would emit on `Color`, so the field is dropped and the
36+
singleton (which exposes Red/Green/Blue/Transparent/… constants) is only
37+
reachable via raw JNI. Rename the nested peer to `CompanionStatic` (okio
38+
binding convention) so the generator surfaces
39+
`public static Color.CompanionStatic Companion { get; }`, letting consumers
40+
write `Color.Companion.Red` directly.
41+
-->
42+
<attr path="/api/package[@name='androidx.compose.ui.graphics']/class[@name='Color.Companion']" name="managedName">CompanionStatic</attr>
43+
3244
</metadata>

0 commit comments

Comments
 (0)