Fixed
Status Update
Comments
an...@google.com <an...@google.com>
ap...@google.com <ap...@google.com> #2
Thanks for filing the issue.
This is a particularly hard device to come by - do you happen to have access to the device? If so could you provide us with the output of: adb shell dumpsys media.camera > info.txt
Thanks!
This is a particularly hard device to come by - do you happen to have access to the device? If so could you provide us with the output of: adb shell dumpsys media.camera > info.txt
Thanks!
Description
Note: as this bug requires an API change I think it is urgent.
In the previous api for graphics layers it was possible to set a rect with float offset/size as an outline. Users we providing a Shape implementation, and Shape is a way to produce an Outline object. Outline.Rectangle works with Rect, not IntRect. Outline.Rounded works with RoundRect.
However in the new api for GraphicsLayer we didn't support floats. Only IntOffset and IntSize is supported:https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt;l=744
https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt;l=719
Even that on Android we can't really apply float based outlines to RenderNode, it was possible on other platforms like Desktop, where skia is used directly. We can also potentially support in on Android as well if we use canvas.clipRect directly instead of using outline clipping.
Another related issue is that the getter for outline is working with Outline objectshttps://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt;l=659 , and we introduced an extension setter for Outline objects https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.kt;l=422 .
It creates a strange situation where I set float based values, but get back rounded values.
This test will not pass: