Refactor DrawScope size to be
an instance of Size instead of PxSize
In order to support merging of CanvasScope
and DrawScope, which both have their own
concept of size, migrate DrawScope to
use Size instead of PxSize especially
if we are moving away from the Px
classes anyway.
Bug: 154835459
Test: re-run all tests
Change-Id: I291444edc91043d961d7a05d88301aa7a03435ee
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt
index 24f23d8..cd36940 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt
@@ -26,10 +26,10 @@
import androidx.ui.core.Modifier
import androidx.ui.core.drawBehind
import androidx.ui.foundation.Box
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.layout.fillMaxSize
-import androidx.ui.unit.toRect
import org.junit.FixMethodOrder
import org.junit.Ignore
import org.junit.Test
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt
index f83bd27..ade564a 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt
@@ -20,6 +20,7 @@
import androidx.ui.core.Modifier
import androidx.ui.core.drawBehind
import androidx.ui.foundation.Box
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.layout.Column
@@ -27,7 +28,6 @@
import androidx.ui.layout.fillMaxHeight
import androidx.ui.layout.fillMaxSize
import androidx.ui.layout.fillMaxWidth
-import androidx.ui.unit.toRect
private fun background(paint: Paint) =
Modifier.drawBehind { drawRect(size.toRect(), paint) }
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt
index 5ccb7ab..bc58362 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt
@@ -23,6 +23,7 @@
import androidx.ui.core.drawBehind
import androidx.ui.foundation.Box
import androidx.ui.foundation.Text
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.layout.Column
@@ -31,7 +32,6 @@
import androidx.ui.layout.fillMaxSize
import androidx.ui.layout.fillMaxWidth
import androidx.ui.text.TextStyle
-import androidx.ui.unit.toRect
import kotlin.random.Random
private fun background(paint: Paint) =
diff --git a/ui/ui-core/api/0.1.0-dev11.txt b/ui/ui-core/api/0.1.0-dev11.txt
index f88a992..8826b33 100644
--- a/ui/ui-core/api/0.1.0-dev11.txt
+++ b/ui/ui-core/api/0.1.0-dev11.txt
@@ -259,6 +259,7 @@
}
public final class ContentScaleKt {
+ method public static float scale-iWWM28M(androidx.ui.core.ContentScale, long srcSize, long dstSize);
}
public interface CustomEvent {
@@ -352,9 +353,9 @@
public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public androidx.ui.unit.PxSize getSize();
+ method public long getSize();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract androidx.ui.unit.PxSize size;
+ property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/current.txt b/ui/ui-core/api/current.txt
index f88a992..8826b33 100644
--- a/ui/ui-core/api/current.txt
+++ b/ui/ui-core/api/current.txt
@@ -259,6 +259,7 @@
}
public final class ContentScaleKt {
+ method public static float scale-iWWM28M(androidx.ui.core.ContentScale, long srcSize, long dstSize);
}
public interface CustomEvent {
@@ -352,9 +353,9 @@
public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public androidx.ui.unit.PxSize getSize();
+ method public long getSize();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract androidx.ui.unit.PxSize size;
+ property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/public_plus_experimental_0.1.0-dev11.txt b/ui/ui-core/api/public_plus_experimental_0.1.0-dev11.txt
index e8a7553..a5fd02b 100644
--- a/ui/ui-core/api/public_plus_experimental_0.1.0-dev11.txt
+++ b/ui/ui-core/api/public_plus_experimental_0.1.0-dev11.txt
@@ -259,6 +259,7 @@
}
public final class ContentScaleKt {
+ method public static float scale-iWWM28M(androidx.ui.core.ContentScale, long srcSize, long dstSize);
}
public interface CustomEvent {
@@ -353,9 +354,9 @@
public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public androidx.ui.unit.PxSize getSize();
+ method public long getSize();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract androidx.ui.unit.PxSize size;
+ property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/public_plus_experimental_current.txt b/ui/ui-core/api/public_plus_experimental_current.txt
index e8a7553..a5fd02b 100644
--- a/ui/ui-core/api/public_plus_experimental_current.txt
+++ b/ui/ui-core/api/public_plus_experimental_current.txt
@@ -259,6 +259,7 @@
}
public final class ContentScaleKt {
+ method public static float scale-iWWM28M(androidx.ui.core.ContentScale, long srcSize, long dstSize);
}
public interface CustomEvent {
@@ -353,9 +354,9 @@
public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public androidx.ui.unit.PxSize getSize();
+ method public long getSize();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract androidx.ui.unit.PxSize size;
+ property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/restricted_0.1.0-dev11.txt b/ui/ui-core/api/restricted_0.1.0-dev11.txt
index a74ec03..8dfbd96 100644
--- a/ui/ui-core/api/restricted_0.1.0-dev11.txt
+++ b/ui/ui-core/api/restricted_0.1.0-dev11.txt
@@ -265,6 +265,7 @@
}
public final class ContentScaleKt {
+ method public static float scale-iWWM28M(androidx.ui.core.ContentScale, long srcSize, long dstSize);
}
public interface CustomEvent {
@@ -359,9 +360,9 @@
public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public androidx.ui.unit.PxSize getSize();
+ method public long getSize();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract androidx.ui.unit.PxSize size;
+ property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/restricted_current.txt b/ui/ui-core/api/restricted_current.txt
index a74ec03..8dfbd96 100644
--- a/ui/ui-core/api/restricted_current.txt
+++ b/ui/ui-core/api/restricted_current.txt
@@ -265,6 +265,7 @@
}
public final class ContentScaleKt {
+ method public static float scale-iWWM28M(androidx.ui.core.ContentScale, long srcSize, long dstSize);
}
public interface CustomEvent {
@@ -359,9 +360,9 @@
public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public androidx.ui.unit.PxSize getSize();
+ method public long getSize();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract androidx.ui.unit.PxSize size;
+ property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt b/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
index 243c434..71d2382 100644
--- a/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
+++ b/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
@@ -33,6 +33,7 @@
import androidx.ui.foundation.Box
import androidx.ui.foundation.drawBackground
import androidx.ui.foundation.drawBorder
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.withSave
import androidx.ui.layout.Column
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
index 29e09ad..3b911fd 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
@@ -66,6 +66,7 @@
import androidx.ui.framework.test.TestActivity
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Rect
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Outline
import androidx.ui.graphics.Paint
@@ -85,7 +86,6 @@
import androidx.ui.unit.max
import androidx.ui.unit.min
import androidx.ui.unit.px
-import androidx.ui.unit.toRect
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNull
@@ -351,7 +351,7 @@
paint.color = model.outerColor
drawRect(size.toRect(), paint)
nativeCanvas.save()
- val offset = size.width.value / 3
+ val offset = size.width / 3
// clip drawing to the inner rectangle
clipRect(Rect(offset, offset, offset * 2, offset * 2))
drawContent()
@@ -359,8 +359,8 @@
// Fill bottom half with innerColor -- should be clipped
paint.color = model.innerColor
val paintRect = Rect(
- 0f, size.height.value / 2f,
- size.width.value, size.height.value
+ 0f, size.height / 2f,
+ size.width, size.height
)
drawRect(paintRect, paint)
// restore the canvas
@@ -374,8 +374,8 @@
val paint = Paint()
paint.color = model.innerColor
val paintRect = Rect(
- 0f, 0f, size.width.value,
- size.height.value / 2f
+ 0f, 0f, size.width,
+ size.height / 2f
)
drawRect(paintRect, paint)
}
@@ -1740,8 +1740,8 @@
activityTestRule.runOnUiThreadIR {
activity.setContent {
val drawnContent = Modifier.drawBehind {
- assertEquals(100.px, size.width)
- assertEquals(100.px, size.height)
+ assertEquals(100.0f, size.width)
+ assertEquals(100.0f, size.height)
latch.countDown()
}
AtLeastSize(100.ipx, PaddingModifier(10.ipx) + drawnContent) {
@@ -1760,8 +1760,8 @@
100.ipx,
PaddingModifier(10.ipx).drawLayer()
.drawBehind {
- assertEquals(100.px, size.width)
- assertEquals(100.px, size.height)
+ assertEquals(100.0f, size.width)
+ assertEquals(100.0f, size.height)
latch.countDown()
}
) {
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ClipTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ClipTest.kt
index 254af21..3bb889d 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ClipTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ClipTest.kt
@@ -372,8 +372,8 @@
Rect(
-100f,
-100f,
- size.width.value + 100f,
- size.height.value + 100f
+ size.width + 100f,
+ size.height + 100f
), Paint().apply {
this.color = Color.Cyan
})
@@ -450,8 +450,8 @@
Rect(
-100f,
-100f,
- size.width.value + 100f,
- size.height.value + 100f
+ size.width + 100f,
+ size.height + 100f
), Paint().apply {
this.color = color
})
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawReorderingTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawReorderingTest.kt
index f3d64fb..8ac5098 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawReorderingTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawReorderingTest.kt
@@ -37,6 +37,7 @@
import androidx.ui.core.setContent
import androidx.ui.core.zIndex
import androidx.ui.framework.test.TestActivity
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.unit.IntPx
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt
index 6e67052..b9459aa 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt
@@ -30,6 +30,7 @@
import androidx.ui.core.drawShadow
import androidx.ui.core.setContent
import androidx.ui.framework.test.TestActivity
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Outline
import androidx.ui.graphics.Paint
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/LayerTouchTransformTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/LayerTouchTransformTest.kt
index 0ba012a..504dfb2 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/LayerTouchTransformTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/LayerTouchTransformTest.kt
@@ -88,8 +88,8 @@
Rect.fromLTWH(
0.0f,
0.0f,
- size.width.value,
- size.height.value
+ size.width,
+ size.height
),
Paint().apply { this.color = Color.Gray }
)
@@ -122,8 +122,8 @@
Rect.fromLTWH(
0.0f,
0.0f,
- size.width.value,
- size.height.value
+ size.width,
+ size.height
),
paint
)
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ParentDataModifierTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ParentDataModifierTest.kt
index af21fd7..2e1c0ce 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ParentDataModifierTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ParentDataModifierTest.kt
@@ -27,6 +27,7 @@
import androidx.ui.core.setContent
import androidx.ui.core.tag
import androidx.ui.framework.test.TestActivity
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.unit.ipx
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt
index 5b88e0f..1f9bd7b 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt
@@ -48,6 +48,7 @@
import androidx.ui.core.paint
import androidx.ui.core.setContent
import androidx.ui.framework.test.TestActivity
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.graphics.vector.VectorPainter
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt b/ui/ui-core/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
index e3596cb..385dc86 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
@@ -66,8 +66,8 @@
Rect.fromLTWH(
0.0f,
0.0f,
- size.width.value,
- size.height.value
+ size.width,
+ size.height
),
Paint().apply { this.color = Color.White }
)
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/AndroidOwner.kt b/ui/ui-core/src/main/java/androidx/ui/core/AndroidOwner.kt
index ea77081..9e79d3d 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/AndroidOwner.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/AndroidOwner.kt
@@ -66,6 +66,7 @@
import androidx.ui.core.texttoolbar.TextToolbar
import androidx.ui.focus.FocusDetailedState.Active
import androidx.ui.focus.FocusDetailedState.Inactive
+import androidx.ui.geometry.Size
import androidx.ui.graphics.Canvas
import androidx.ui.input.TextInputService
import androidx.ui.input.TextInputServiceAndroid
@@ -75,6 +76,7 @@
import androidx.ui.unit.Density
import androidx.ui.unit.IntPx
import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.Px
import androidx.ui.unit.PxSize
import androidx.ui.unit.ipx
import androidx.ui.unit.max
@@ -530,14 +532,15 @@
if (onPaintWithChildren != null) {
val ownerData = node.ownerData
val receiver: DrawScopeImpl
+ val size = Size(parentSize.width.value, parentSize.height.value)
if (ownerData == null) {
- receiver = DrawScopeImpl(node, canvas, parentSize, density)
+ receiver = DrawScopeImpl(node, canvas, size, density)
node.ownerData = receiver
} else {
receiver = ownerData as DrawScopeImpl
receiver.childDrawn = false
receiver.canvas = canvas
- receiver.size = parentSize
+ receiver.size = size
receiver.currentDensity = density
}
onPaintWithChildren(receiver, canvas, parentSize)
@@ -862,7 +865,7 @@
private inner class DrawScopeImpl(
private val drawNode: DrawNode,
var canvas: Canvas,
- override var size: PxSize,
+ override var size: Size,
var currentDensity: Density
) : Canvas by canvas, Density by currentDensity, ContentDrawScope {
internal var childDrawn = false
@@ -875,8 +878,9 @@
throw IllegalStateException("Cannot call drawContent() twice within Draw element")
}
childDrawn = true
+ val pxSize = PxSize(Px(size.width), Px(size.height))
drawNode.visitChildren { child ->
- callDraw(canvas, child, size)
+ callDraw(canvas, child, pxSize)
}
}
}
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/ContentDrawScope.kt b/ui/ui-core/src/main/java/androidx/ui/core/ContentDrawScope.kt
index 7443440..66522ea 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/ContentDrawScope.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/ContentDrawScope.kt
@@ -15,9 +15,9 @@
*/
package androidx.ui.core
+import androidx.ui.geometry.Size
import androidx.ui.graphics.Canvas
import androidx.ui.unit.Density
-import androidx.ui.unit.PxSize
/**
* Receiver scope for drawing content into a layout.
@@ -28,7 +28,7 @@
/**
* The size of layout being drawn in.
*/
- val size: PxSize
+ val size: Size
/**
* The layout direction of the layout being drawn in.
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/ContentScale.kt b/ui/ui-core/src/main/java/androidx/ui/core/ContentScale.kt
index aec6953..c9c182d 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/ContentScale.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/ContentScale.kt
@@ -16,6 +16,8 @@
package androidx.ui.core
+import androidx.ui.geometry.Size
+import androidx.ui.unit.Px
import androidx.ui.unit.PxSize
import kotlin.math.max
import kotlin.math.min
@@ -23,6 +25,21 @@
private const val OriginalScale = 1.0f
/**
+ * Convenience method to compute the scale factor from [Size] parameters
+ */
+fun ContentScale.scale(srcSize: Size, dstSize: Size): Float =
+ scale(
+ PxSize(
+ Px(srcSize.width),
+ Px(srcSize.height)
+ ),
+ PxSize(
+ Px(dstSize.width),
+ Px(dstSize.height)
+ )
+ )
+
+/**
* Represents a rule to apply to scale a source rectangle to be inscribed into a destination
*/
interface ContentScale {
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/ModifiedDrawNode.kt b/ui/ui-core/src/main/java/androidx/ui/core/ModifiedDrawNode.kt
index 782316a..0b7284f 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/ModifiedDrawNode.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/ModifiedDrawNode.kt
@@ -30,8 +30,6 @@
import androidx.ui.graphics.PointMode
import androidx.ui.graphics.Vertices
import androidx.ui.graphics.vectormath.Matrix4
-import androidx.ui.unit.PxSize
-import androidx.ui.unit.toPxSize
internal class ModifiedDrawNode(
wrapped: LayoutNodeWrapper,
@@ -62,8 +60,11 @@
override val fontScale: Float
get() = layoutNode.requireOwner().density.fontScale
- override val size: PxSize
- get() = this@ModifiedDrawNode.measuredSize.toPxSize()
+ override val size: Size
+ get() {
+ val pxSize = this@ModifiedDrawNode.measuredSize
+ return Size(pxSize.width.value.toFloat(), pxSize.height.value.toFloat())
+ }
override val nativeCanvas: NativeCanvas
get() = canvas!!.nativeCanvas
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/PainterModifier.kt b/ui/ui-core/src/main/java/androidx/ui/core/PainterModifier.kt
index df172d9..a0d7bfd 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/PainterModifier.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/PainterModifier.kt
@@ -18,6 +18,7 @@
import androidx.compose.Composable
import androidx.compose.remember
+import androidx.ui.geometry.Size
import androidx.ui.graphics.ColorFilter
import androidx.ui.graphics.DefaultAlpha
import androidx.ui.graphics.painter.Painter
@@ -213,23 +214,24 @@
override fun ContentDrawScope.draw() {
val intrinsicSize = painter.intrinsicSize
val srcWidth = if (intrinsicSize.width.value != Float.POSITIVE_INFINITY) {
- intrinsicSize.width
+ intrinsicSize.width.value
} else {
size.width
}
val srcHeight = if (intrinsicSize.height.value != Float.POSITIVE_INFINITY) {
- intrinsicSize.height
+ intrinsicSize.height.value
} else {
size.height
}
- val scale = contentScale.scale(PxSize(srcWidth, srcHeight), size)
+ val srcSize = Size(srcWidth, srcHeight)
+ val scale = contentScale.scale(srcSize, size)
val alignedPosition = alignment.align(
IntPxSize(
- IntPx(ceil(size.width.value - (srcWidth.value * scale)).toInt()),
- IntPx(ceil(size.height.value - (srcHeight.value * scale)).toInt())
+ IntPx(ceil(size.width - (srcWidth * scale)).toInt()),
+ IntPx(ceil(size.height - (srcHeight * scale)).toInt())
)
)
@@ -242,7 +244,7 @@
painter.draw(
canvas = this,
- size = PxSize(srcWidth, srcHeight),
+ size = PxSize(Px(srcSize.width), Px(srcSize.height)),
alpha = alpha,
colorFilter = colorFilter,
rtl = rtl)
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
index 0775460..3d5c8c9 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
@@ -27,6 +27,8 @@
import androidx.ui.core.Modifier
import androidx.ui.core.composed
import androidx.ui.core.drawBehind
+import androidx.ui.core.scale
+import androidx.ui.geometry.Size
import androidx.ui.graphics.BlendMode
import androidx.ui.graphics.Brush
import androidx.ui.graphics.Color
@@ -38,7 +40,6 @@
import androidx.ui.unit.IntPx
import androidx.ui.unit.IntPxSize
import androidx.ui.unit.Px
-import androidx.ui.unit.PxSize
import kotlin.math.ceil
/**
@@ -194,12 +195,12 @@
val vectorWidth = defaultWidth.value
val vectorHeight = defaultHeight.value
- val vectorPxSize = PxSize(Px(vectorWidth), Px(vectorHeight))
+ val vectorSize = Size(vectorWidth, vectorHeight)
drawBehind {
- val parentWidth = size.width.value
- val parentHeight = size.height.value
- val scale = contentScale.scale(vectorPxSize, size)
+ val parentWidth = size.width
+ val parentHeight = size.height
+ val scale = contentScale.scale(vectorSize, size)
val alignedPosition = alignment.align(
IntPxSize(
diff --git a/ui/ui-foundation/samples/src/main/java/androidx/ui/foundation/samples/CanvasSamples.kt b/ui/ui-foundation/samples/src/main/java/androidx/ui/foundation/samples/CanvasSamples.kt
index b1cd6e5..61fe47c 100644
--- a/ui/ui-foundation/samples/src/main/java/androidx/ui/foundation/samples/CanvasSamples.kt
+++ b/ui/ui-foundation/samples/src/main/java/androidx/ui/foundation/samples/CanvasSamples.kt
@@ -23,6 +23,7 @@
import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Canvas2
import androidx.ui.geometry.Offset
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.graphics.painter.CanvasScope
@@ -30,7 +31,6 @@
import androidx.ui.graphics.painter.inset
import androidx.ui.layout.preferredSize
import androidx.ui.unit.dp
-import androidx.ui.unit.toRect
@Sampled
@Composable
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/CanvasTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/CanvasTest.kt
index 0ff7679..da3aa1a 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/CanvasTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/CanvasTest.kt
@@ -25,6 +25,7 @@
import androidx.ui.core.TestTag
import androidx.ui.core.onPositioned
import androidx.ui.foundation.shape.corner.CircleShape
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.graphics.RectangleShape
@@ -38,11 +39,8 @@
import androidx.ui.test.setContentAndCollectSizes
import androidx.ui.unit.Density
import androidx.ui.unit.IntPxSize
-import androidx.ui.unit.center
import androidx.ui.unit.dp
import androidx.ui.unit.px
-import androidx.ui.unit.toOffset
-import androidx.ui.unit.toRect
import com.google.common.truth.Truth
import org.junit.Assert.assertTrue
import org.junit.Rule
@@ -120,7 +118,7 @@
) {
drawRect(size.toRect(), Paint().apply { color = Color.Red })
drawCircle(
- size.center().toOffset(),
+ size.center(),
10f,
Paint().apply { color = Color.Blue }
)
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBackground.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBackground.kt
index 5911fb2..f348621 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBackground.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBackground.kt
@@ -22,6 +22,8 @@
import androidx.ui.core.DrawModifier
import androidx.ui.core.Modifier
import androidx.ui.core.composed
+import androidx.ui.geometry.Size
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Brush
import androidx.ui.graphics.Color
import androidx.ui.graphics.Outline
@@ -30,8 +32,8 @@
import androidx.ui.graphics.Shape
import androidx.ui.graphics.SolidColor
import androidx.ui.graphics.drawOutline
+import androidx.ui.unit.Px
import androidx.ui.unit.PxSize
-import androidx.ui.unit.toRect
/**
* Returns a [DrawModifier] that draws [shape] with a solid [color], with the size of the
@@ -127,7 +129,7 @@
) : DrawModifier {
// naive cache outline calculation if size is the same
- private var lastSize: PxSize? = null
+ private var lastSize: Size? = null
private var lastOutline: Outline? = null
override fun ContentDrawScope.draw() {
@@ -136,7 +138,12 @@
drawRect(size.toRect(), paint)
} else {
val localOutline =
- if (size == lastSize) lastOutline!! else shape.createOutline(size, this)
+ if (size == lastSize) {
+ lastOutline!!
+ } else {
+ val pxSize = PxSize(Px(size.width), Px(size.height))
+ shape.createOutline(pxSize, this)
+ }
drawOutline(localOutline, paint)
lastOutline = localOutline
lastSize = size
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBorder.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBorder.kt
index c5cc489..ca35da9c 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBorder.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBorder.kt
@@ -40,6 +40,7 @@
import androidx.ui.graphics.addOutline
import androidx.ui.unit.Density
import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
import androidx.ui.unit.PxSize
import androidx.ui.unit.minDimension
import androidx.ui.unit.px
@@ -172,14 +173,14 @@
val canvas = this
with(cache) {
drawContent()
- modifierSize = size
+ modifierSize = PxSize(Px(size.width), Px(size.height))
val outline = modifierSizeOutline(density)
val borderSize =
if (borderWidth == Dp.Hairline) 1f else borderWidth.value * density.density
brush.applyTo(paint)
paint.strokeWidth = borderSize
- if (borderSize <= 0 || size.minDimension <= 0.px) {
+ if (borderSize <= 0 || size.minDimension <= 0.0f) {
return
} else if (outline is Outline.Rectangle) {
drawRoundRectBorder(borderSize, outline.rect, 0f, canvas, paint)
diff --git a/ui/ui-geometry/api/0.1.0-dev11.txt b/ui/ui-geometry/api/0.1.0-dev11.txt
index 390ba95..a89fec4 100644
--- a/ui/ui-geometry/api/0.1.0-dev11.txt
+++ b/ui/ui-geometry/api/0.1.0-dev11.txt
@@ -222,7 +222,7 @@
method public static long bottomCenter-RIqb49o(long $this, long origin);
method public static long bottomLeft-RIqb49o(long $this, long origin);
method public static long bottomRight-RIqb49o(long $this, long origin);
- method public static long center-RIqb49o(long $this, long origin);
+ method public static long center-RIqb49o(long $this, long origin = Offset.zero);
method public static long centerLeft-RIqb49o(long $this, long origin);
method public static long centerRight-RIqb49o(long $this, long origin);
method public static long constructor-impl(internal long value);
@@ -265,6 +265,7 @@
public final class SizeKt {
method public static long Size(float width, float height);
+ method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
}
}
diff --git a/ui/ui-geometry/api/current.txt b/ui/ui-geometry/api/current.txt
index 390ba95..a89fec4 100644
--- a/ui/ui-geometry/api/current.txt
+++ b/ui/ui-geometry/api/current.txt
@@ -222,7 +222,7 @@
method public static long bottomCenter-RIqb49o(long $this, long origin);
method public static long bottomLeft-RIqb49o(long $this, long origin);
method public static long bottomRight-RIqb49o(long $this, long origin);
- method public static long center-RIqb49o(long $this, long origin);
+ method public static long center-RIqb49o(long $this, long origin = Offset.zero);
method public static long centerLeft-RIqb49o(long $this, long origin);
method public static long centerRight-RIqb49o(long $this, long origin);
method public static long constructor-impl(internal long value);
@@ -265,6 +265,7 @@
public final class SizeKt {
method public static long Size(float width, float height);
+ method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
}
}
diff --git a/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev11.txt b/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev11.txt
index 390ba95..a89fec4 100644
--- a/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev11.txt
+++ b/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev11.txt
@@ -222,7 +222,7 @@
method public static long bottomCenter-RIqb49o(long $this, long origin);
method public static long bottomLeft-RIqb49o(long $this, long origin);
method public static long bottomRight-RIqb49o(long $this, long origin);
- method public static long center-RIqb49o(long $this, long origin);
+ method public static long center-RIqb49o(long $this, long origin = Offset.zero);
method public static long centerLeft-RIqb49o(long $this, long origin);
method public static long centerRight-RIqb49o(long $this, long origin);
method public static long constructor-impl(internal long value);
@@ -265,6 +265,7 @@
public final class SizeKt {
method public static long Size(float width, float height);
+ method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
}
}
diff --git a/ui/ui-geometry/api/public_plus_experimental_current.txt b/ui/ui-geometry/api/public_plus_experimental_current.txt
index 390ba95..a89fec4 100644
--- a/ui/ui-geometry/api/public_plus_experimental_current.txt
+++ b/ui/ui-geometry/api/public_plus_experimental_current.txt
@@ -222,7 +222,7 @@
method public static long bottomCenter-RIqb49o(long $this, long origin);
method public static long bottomLeft-RIqb49o(long $this, long origin);
method public static long bottomRight-RIqb49o(long $this, long origin);
- method public static long center-RIqb49o(long $this, long origin);
+ method public static long center-RIqb49o(long $this, long origin = Offset.zero);
method public static long centerLeft-RIqb49o(long $this, long origin);
method public static long centerRight-RIqb49o(long $this, long origin);
method public static long constructor-impl(internal long value);
@@ -265,6 +265,7 @@
public final class SizeKt {
method public static long Size(float width, float height);
+ method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
}
}
diff --git a/ui/ui-geometry/api/restricted_0.1.0-dev11.txt b/ui/ui-geometry/api/restricted_0.1.0-dev11.txt
index 390ba95..a89fec4 100644
--- a/ui/ui-geometry/api/restricted_0.1.0-dev11.txt
+++ b/ui/ui-geometry/api/restricted_0.1.0-dev11.txt
@@ -222,7 +222,7 @@
method public static long bottomCenter-RIqb49o(long $this, long origin);
method public static long bottomLeft-RIqb49o(long $this, long origin);
method public static long bottomRight-RIqb49o(long $this, long origin);
- method public static long center-RIqb49o(long $this, long origin);
+ method public static long center-RIqb49o(long $this, long origin = Offset.zero);
method public static long centerLeft-RIqb49o(long $this, long origin);
method public static long centerRight-RIqb49o(long $this, long origin);
method public static long constructor-impl(internal long value);
@@ -265,6 +265,7 @@
public final class SizeKt {
method public static long Size(float width, float height);
+ method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
}
}
diff --git a/ui/ui-geometry/api/restricted_current.txt b/ui/ui-geometry/api/restricted_current.txt
index 390ba95..a89fec4 100644
--- a/ui/ui-geometry/api/restricted_current.txt
+++ b/ui/ui-geometry/api/restricted_current.txt
@@ -222,7 +222,7 @@
method public static long bottomCenter-RIqb49o(long $this, long origin);
method public static long bottomLeft-RIqb49o(long $this, long origin);
method public static long bottomRight-RIqb49o(long $this, long origin);
- method public static long center-RIqb49o(long $this, long origin);
+ method public static long center-RIqb49o(long $this, long origin = Offset.zero);
method public static long centerLeft-RIqb49o(long $this, long origin);
method public static long centerRight-RIqb49o(long $this, long origin);
method public static long constructor-impl(internal long value);
@@ -265,6 +265,7 @@
public final class SizeKt {
method public static long Size(float width, float height);
+ method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
}
}
diff --git a/ui/ui-geometry/src/main/java/androidx/ui/geometry/Size.kt b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Size.kt
index 2825aad..2c00b6c 100644
--- a/ui/ui-geometry/src/main/java/androidx/ui/geometry/Size.kt
+++ b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Size.kt
@@ -270,7 +270,8 @@
*
* See also [Rect.center].
*/
- fun center(origin: Offset): Offset = Offset(origin.dx + width / 2.0f, origin.dy + height / 2.0f)
+ fun center(origin: Offset = Offset.zero): Offset = Offset(origin.dx + width / 2.0f, origin.dy +
+ height / 2.0f)
/**
* The offset to the center of the right edge of the rectangle described by the
@@ -325,4 +326,11 @@
fun getFlipped() = Size(height, width)
override fun toString() = "Size(${width.toStringAsFixed(1)}, ${height.toStringAsFixed(1)})"
+}
+
+/**
+ * Convert a [Size] to a [Rect].
+ */
+fun Size.toRect(): Rect {
+ return Rect(0f, 0f, width, height)
}
\ No newline at end of file
diff --git a/ui/ui-graphics/api/0.1.0-dev11.txt b/ui/ui-graphics/api/0.1.0-dev11.txt
index 70e10c2..9bf8346 100644
--- a/ui/ui-graphics/api/0.1.0-dev11.txt
+++ b/ui/ui-graphics/api/0.1.0-dev11.txt
@@ -720,7 +720,7 @@
@androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
ctor public CanvasScope();
- method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
diff --git a/ui/ui-graphics/api/current.txt b/ui/ui-graphics/api/current.txt
index 70e10c2..9bf8346 100644
--- a/ui/ui-graphics/api/current.txt
+++ b/ui/ui-graphics/api/current.txt
@@ -720,7 +720,7 @@
@androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
ctor public CanvasScope();
- method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
diff --git a/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev11.txt b/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev11.txt
index 70e10c2..9bf8346 100644
--- a/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev11.txt
+++ b/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev11.txt
@@ -720,7 +720,7 @@
@androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
ctor public CanvasScope();
- method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
diff --git a/ui/ui-graphics/api/public_plus_experimental_current.txt b/ui/ui-graphics/api/public_plus_experimental_current.txt
index 70e10c2..9bf8346 100644
--- a/ui/ui-graphics/api/public_plus_experimental_current.txt
+++ b/ui/ui-graphics/api/public_plus_experimental_current.txt
@@ -720,7 +720,7 @@
@androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
ctor public CanvasScope();
- method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
diff --git a/ui/ui-graphics/api/restricted_0.1.0-dev11.txt b/ui/ui-graphics/api/restricted_0.1.0-dev11.txt
index 70e10c2..9bf8346 100644
--- a/ui/ui-graphics/api/restricted_0.1.0-dev11.txt
+++ b/ui/ui-graphics/api/restricted_0.1.0-dev11.txt
@@ -720,7 +720,7 @@
@androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
ctor public CanvasScope();
- method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
diff --git a/ui/ui-graphics/api/restricted_current.txt b/ui/ui-graphics/api/restricted_current.txt
index 70e10c2..9bf8346 100644
--- a/ui/ui-graphics/api/restricted_current.txt
+++ b/ui/ui-graphics/api/restricted_current.txt
@@ -720,7 +720,7 @@
@androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
ctor public CanvasScope();
- method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
diff --git a/ui/ui-graphics/samples/src/main/java/androidx/ui/graphics/samples/CanvasScopeSample.kt b/ui/ui-graphics/samples/src/main/java/androidx/ui/graphics/samples/CanvasScopeSample.kt
index 0bc2870..d499e2c 100644
--- a/ui/ui-graphics/samples/src/main/java/androidx/ui/graphics/samples/CanvasScopeSample.kt
+++ b/ui/ui-graphics/samples/src/main/java/androidx/ui/graphics/samples/CanvasScopeSample.kt
@@ -18,6 +18,7 @@
import androidx.annotation.Sampled
import androidx.ui.geometry.Offset
+import androidx.ui.geometry.Size
import androidx.ui.graphics.Canvas
import androidx.ui.graphics.Color
import androidx.ui.graphics.ImageAsset
@@ -34,10 +35,10 @@
*/
@Sampled
fun canvasScopeSample() {
- val pxSize = PxSize(Px(300.0f), Px(300.0f))
+ val pxSize = Size(300.0f, 300.0f)
val imageAsset = ImageAsset(
- pxSize.width.value.toInt(),
- pxSize.height.value.toInt()
+ pxSize.width.toInt(),
+ pxSize.height.toInt()
)
// create a Canvas to draw contents into the ImageAsset
@@ -66,10 +67,10 @@
@Sampled
fun canvasScopeBatchedTransformSample() {
- val pxSize = PxSize(Px(300.0f), Px(300.0f))
+ val pxSize = Size(300.0f, 300.0f)
val imageAsset = ImageAsset(
- pxSize.width.value.toInt(),
- pxSize.height.value.toInt()
+ pxSize.width.toInt(),
+ pxSize.height.toInt()
)
// create a Canvas to draw contents into the ImageAsset
diff --git a/ui/ui-graphics/src/androidTest/java/androidx/ui/graphics/painter/CanvasScopeTest.kt b/ui/ui-graphics/src/androidTest/java/androidx/ui/graphics/painter/CanvasScopeTest.kt
index 0128312..9f5456b 100644
--- a/ui/ui-graphics/src/androidTest/java/androidx/ui/graphics/painter/CanvasScopeTest.kt
+++ b/ui/ui-graphics/src/androidTest/java/androidx/ui/graphics/painter/CanvasScopeTest.kt
@@ -41,7 +41,7 @@
private val width: Int = 100
private val height: Int = 100
- private val dstSize = PxSize(Px(width.toFloat()), Px(height.toFloat()))
+ private val dstSize = Size(width.toFloat(), height.toFloat())
private fun createTestDstImage(): ImageAsset {
val dst = ImageAsset(width, height)
@@ -211,12 +211,12 @@
val bottom = 12.0f
inset(left, top, right, bottom) {
drawRect(color = Color.Red)
- assertEquals(dstSize.width.value - (left + right), size.width)
- assertEquals(dstSize.height.value - (top + bottom), size.height)
+ assertEquals(dstSize.width - (left + right), size.width)
+ assertEquals(dstSize.height - (top + bottom), size.height)
}
- assertEquals(dstSize.width.value, size.width)
- assertEquals(dstSize.height.value, size.height)
+ assertEquals(dstSize.width, size.width)
+ assertEquals(dstSize.height, size.height)
}
}
@@ -263,7 +263,7 @@
val width = 200
val height = 200
- val size = PxSize(Px(width.toFloat()), Px(height.toFloat()))
+ val size = Size(width.toFloat(), height.toFloat())
val imageAsset = ImageAsset(width, height)
canvasScope.draw(Canvas(imageAsset), size) {
@@ -292,7 +292,7 @@
val width = 200
val height = 200
- val size = PxSize(Px(width.toFloat()), Px(height.toFloat()))
+ val size = Size(width.toFloat(), height.toFloat())
val imageAsset = ImageAsset(width, height)
canvasScope.draw(Canvas(imageAsset), size) {
@@ -335,7 +335,7 @@
val width = 200
val height = 200
- val size = PxSize(Px(width.toFloat()), Px(height.toFloat()))
+ val size = Size(width.toFloat(), height.toFloat())
val imageAsset = ImageAsset(width, height)
try {
@@ -356,7 +356,7 @@
val width = 200
val height = 200
- val size = PxSize(Px(width.toFloat()), Px(height.toFloat()))
+ val size = Size(width.toFloat(), height.toFloat())
val imageAsset = ImageAsset(width, height)
try {
@@ -377,7 +377,7 @@
val width = 200
val height = 200
- val size = PxSize(Px(width.toFloat()), Px(height.toFloat()))
+ val size = Size(width.toFloat(), height.toFloat())
val imageAsset = ImageAsset(width, height)
canvasScope.draw(Canvas(imageAsset), size) {
@@ -410,7 +410,7 @@
fun testRotationCenterPivot() {
val width = 200
val height = 200
- val size = PxSize(Px(width.toFloat()), Px(height.toFloat()))
+ val size = Size(width.toFloat(), height.toFloat())
val imageAsset = ImageAsset(width, height)
CanvasScope().draw(Canvas(imageAsset), size) {
drawRect(color = Color.Red)
@@ -440,7 +440,7 @@
fun testRotationTopLeftPivot() {
val width = 200
val height = 200
- val size = PxSize(Px(width.toFloat()), Px(height.toFloat()))
+ val size = Size(width.toFloat(), height.toFloat())
val imageAsset = ImageAsset(width, height)
CanvasScope().draw(Canvas(imageAsset), size) {
drawRect(color = Color.Red)
@@ -466,7 +466,7 @@
fun testBatchTransformEquivalent() {
val width = 200
val height = 200
- val size = PxSize(Px(width.toFloat()), Px(height.toFloat()))
+ val size = Size(width.toFloat(), height.toFloat())
val imageAsset1 = ImageAsset(width, height)
CanvasScope().draw(Canvas(imageAsset1), size) {
drawRect(color = Color.Red)
diff --git a/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/CanvasScope.kt b/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/CanvasScope.kt
index 436a40a..394f9bc 100644
--- a/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/CanvasScope.kt
+++ b/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/CanvasScope.kt
@@ -905,7 +905,7 @@
* should draw within
* @param block lambda that is called to issue drawing commands on this [CanvasScope]
*/
- fun draw(canvas: Canvas, size: PxSize, block: CanvasScope.() -> Unit) {
+ fun draw(canvas: Canvas, size: Size, block: CanvasScope.() -> Unit) {
val previousSize = this.size
// Remember the previous canvas in case we are temporarily re-directing our drawing
// to a separate Layer/RenderNode only to draw that content back into the original Canvas
@@ -913,7 +913,7 @@
// parameter back to null defensively
val previousCanvas = this.canvas
this.canvas = canvas
- setSize(Size(size.width.value, size.height.value))
+ setSize(size)
canvas.save()
this.block()
canvas.restore()
diff --git a/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/Painter.kt b/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/Painter.kt
index 1513854..bb6a153 100644
--- a/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/Painter.kt
+++ b/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/Painter.kt
@@ -16,6 +16,7 @@
package androidx.ui.graphics.painter
import androidx.ui.geometry.Rect
+import androidx.ui.geometry.Size
import androidx.ui.graphics.Canvas
import androidx.ui.graphics.ColorFilter
import androidx.ui.graphics.DefaultAlpha
@@ -192,16 +193,17 @@
configureColorFilter(colorFilter)
configureRtl(rtl)
+ val scopeSize = Size(size.width.value, size.height.value)
if (alpha > 0.0f) {
if (useLayer) {
val layerRect =
Rect.fromLTWH(0.0f, 0.0f, size.width.value, size.height.value)
// TODO (b/154550724) njawad replace with RenderNode/Layer API usage
canvas.withSaveLayer(layerRect, obtainPaint()) {
- canvasScope.draw(canvas, size, drawLambda)
+ canvasScope.draw(canvas, scopeSize, drawLambda)
}
} else {
- canvasScope.draw(canvas, size, drawLambda)
+ canvasScope.draw(canvas, scopeSize, drawLambda)
}
}
}
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/TextField.kt b/ui/ui-material/src/main/java/androidx/ui/material/TextField.kt
index 8506451..079d0a1 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/TextField.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/TextField.kt
@@ -652,10 +652,10 @@
val strokeWidth = lineWidth.value * density
paint.strokeWidth = strokeWidth
paint.color = color
- val y = size.height.value - strokeWidth / 2
+ val y = size.height - strokeWidth / 2
drawLine(
Offset(0f, y),
- Offset(size.width.value, y),
+ Offset(size.width, y),
paint
)
}
diff --git a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt
index e4b242a..af08330 100644
--- a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt
+++ b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt
@@ -23,13 +23,13 @@
import androidx.ui.core.drawBehind
import androidx.ui.foundation.Box
import androidx.ui.foundation.drawBackground
+import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.layout.Column
import androidx.ui.layout.preferredSize
import androidx.ui.unit.dp
import androidx.ui.unit.ipx
-import androidx.ui.unit.toRect
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNotEquals