Interface

InjectionScope

The receiver scope of all input injection lambdas offered in ui-test, such as performTouchInput and performMouseInput.

Source set: Common
@JvmDefaultWithCompatibility
interface InjectionScope : Density

The receiver scope of all input injection lambdas offered in ui-test, such as performTouchInput and performMouseInput.

This scope offers several properties that allow you to get coordinates within the node you're interacting on, like the topLeft corner, its center, or some percentage of the size (percentOffset).

All positional properties are expressed in pixels. InjectionScope implements Density so you can convert between px and dp as you wish. The density used is taken from the SemanticsNode from the SemanticsNodeInteraction on which the input injection method is called.

Properties

eventPeriodMillis

Source set: Common
val eventPeriodMillis

The default time between two successive events.

visibleSize

Source set: Common
val visibleSize: IntSize

The size of the visible part of the node we're interacting with in px, i.e. its clipped bounds.

viewConfiguration

Source set: Common
val viewConfiguration: ViewConfiguration

The ViewConfiguration in use by the SemanticsNode from the SemanticsNodeInteraction on which the input injection method is called.

width

Source set: Common
val width: Int

The width of the node in px. Shorthand for visibleSize.width.

height

Source set: Common
val height: Int

The height of the node in px. Shorthand for visibleSize.height.

left

Source set: Common
val left: Float

The x-coordinate for the left edge of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

top

Source set: Common
val top: Float

The y-coordinate for the bottom of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

centerX

Source set: Common
val centerX: Float

The x-coordinate for the center of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

centerY

Source set: Common
val centerY: Float

The y-coordinate for the center of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Source set: Common
val right: Float

The x-coordinate for the right edge of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Note that, unless width == 0, right != width. In particular, right == width - 1f, because pixels are 0-based. If width == 0, right == 0 too.

bottom

Source set: Common
val bottom: Float

The y-coordinate for the bottom of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Note that, unless height == 0, bottom != height. In particular, bottom == height - 1f, because pixels are 0-based. If height == 0, bottom == 0 too.

topLeft

Source set: Common
val topLeft: Offset

The top left corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

topCenter

Source set: Common
val topCenter: Offset

The center of the top edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

topRight

Source set: Common
val topRight: Offset

The top right corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Note that topRight.x != width, see right.

centerLeft

Source set: Common
val centerLeft: Offset

The center of the left edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

center

Source set: Common
val center: Offset

The center of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

centerRight

Source set: Common
val centerRight: Offset

The center of the right edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Note that centerRight.x != width, see right.

bottomLeft

Source set: Common
val bottomLeft: Offset

The bottom left corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Note that bottomLeft.y != height, see bottom.

bottomCenter

Source set: Common
val bottomCenter: Offset

The center of the bottom edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Note that bottomCenter.y != height, see bottom.

bottomRight

Source set: Common
val bottomRight: Offset

The bottom right corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Note that bottomRight.x != width and bottomRight.y != height, see right and bottom.

Functions

advanceEventTime

fun advanceEventTime(durationMillis: Long = eventPeriodMillis)

Adds the given durationMillis to the current event time, delaying the next event by that time.

percentOffset

fun percentOffset(
        /*@FloatRange(from = -1.0, to = 1.0)*/
        x: Float = 0f,
        /*@FloatRange(from = -1.0, to = 1.0)*/
        y: Float = 0f,
    ): Offset

Creates an Offset relative to the size of the node we're interacting with. x and y are fractions of the width and height, between -1 and 1.

Note that percentOffset(1f, 1f) != bottomRight, see right and bottom.

For example: percentOffset(.5f, .5f) is the same as the center; centerLeft + percentOffset(.1f, 0f) is a point 10% inward from the middle of the left edge; and bottomRight - percentOffset(.2f, .1f) is a point 20% to the left and 10% to the top of the bottom right corner.

Last updated: