androidx.window.testing.layout

Classes

WindowLayoutInfoPublisherRule

A TestRule to help test consuming a stream of WindowLayoutInfo values.

WindowMetricsCalculatorRule

A TestRule that will sub out the actual WindowMetricsCalculator with a more simple one that will support testing independent of the current platform.

Objects

FoldingFeatureTestingConstants

A class to contain all the constants related to testing androidx.window.layout.DisplayFeatures.

Top-level functions summary

FoldingFeature
FoldingFeature(
    activity: Activity,
    center: @IntRange(from = -1) Int,
    size: Int,
    state: FoldingFeature.State,
    orientation: FoldingFeature.Orientation
)

A convenience method to get a test fold with default values provided.

FoldingFeature
FoldingFeature(
    windowBounds: Rect,
    center: @IntRange(from = -1) Int,
    size: Int,
    state: FoldingFeature.State,
    orientation: FoldingFeature.Orientation
)

A convenience method to get a test FoldingFeature with default values provided.

WindowLayoutInfo

Returns a WindowLayoutInfo with default values for testing.

Top-level functions

FoldingFeature

fun FoldingFeature(
    activity: Activity,
    center: @IntRange(from = -1) Int = FOLDING_FEATURE_CENTER_DEFAULT,
    size: Int = 0,
    state: FoldingFeature.State = HALF_OPENED,
    orientation: FoldingFeature.Orientation = HORIZONTAL
): FoldingFeature

A convenience method to get a test fold with default values provided. With the default values it returns a FoldingFeature.State.HALF_OPENED feature that splits the screen along the FoldingFeature.Orientation.HORIZONTAL axis.

The bounds of the feature are calculated based on orientation and size. If the feature is VERTICAL then the feature is centered horizontally. The top-left x-coordinate is center - (size / 2) and the top-right x-coordinate is center + (size / 2). If the feature is HORIZONTAL then the feature is centered vertically. The top-left y-coordinate is center - (size / 2) and the bottom-left y-coordinate is center - (size / 2). The folding features always cover the window in one dimension and that determines the other coordinates.

Use FOLDING_FEATURE_CENTER_DEFAULT to default to the center of Activity window bounds. Otherwise, use values greater than or equal to 0 to specify the center.

Parameters
activity: Activity

that will house the FoldingFeature.

center: @IntRange(from = -1) Int = FOLDING_FEATURE_CENTER_DEFAULT

the center of the fold complementary to the orientation in px. For a HORIZONTAL fold, this is the y-axis and for a VERTICAL fold this is the x-axis. The default value will be calculated to be in the middle of the window.

size: Int = 0

the smaller dimension of the fold in px. The larger dimension always covers the entire window.

state: FoldingFeature.State = HALF_OPENED

State of the fold. The default value is HALF_OPENED

orientation: FoldingFeature.Orientation = HORIZONTAL

Orientation of the fold. The default value is HORIZONTAL

Returns
FoldingFeature

FoldingFeature that is splitting if the width is not 0 and runs parallel to the Orientation axis.

FoldingFeature

fun FoldingFeature(
    windowBounds: Rect,
    center: @IntRange(from = -1) Int = FOLDING_FEATURE_CENTER_DEFAULT,
    size: Int = 0,
    state: FoldingFeature.State = HALF_OPENED,
    orientation: FoldingFeature.Orientation = HORIZONTAL
): FoldingFeature

A convenience method to get a test FoldingFeature with default values provided. With the default values it returns a FoldingFeature.State.HALF_OPENED feature that splits the screen along the FoldingFeature.Orientation.HORIZONTAL axis.

The bounds of the feature are calculated based on orientation and size. If the feature is VERTICAL then the feature is centered horizontally. The top-left x-coordinate is center - (size / 2) and the top-right x-coordinate is center + (size / 2). If the feature is HORIZONTAL then the feature is centered vertically. The top-left y-coordinate is center - (size / 2) and the bottom-left y-coordinate is center - (size / 2). The folding features always cover the window in one dimension and that determines the other coordinates.

Use FOLDING_FEATURE_CENTER_DEFAULT to default to the center of Activity window bounds. Otherwise, use values greater than or equal to 0 to specify the center.

Parameters
windowBounds: Rect

that will contain the FoldingFeature.

center: @IntRange(from = -1) Int = FOLDING_FEATURE_CENTER_DEFAULT

the center of the fold complementary to the orientation in px. For a HORIZONTAL fold, this is the y-axis and for a VERTICAL fold this is the x-axis. The default value will be calculated to be in the middle of the window.

size: Int = 0

the smaller dimension of the fold in px. The larger dimension always covers the entire window.

state: FoldingFeature.State = HALF_OPENED

State of the fold. The default value is HALF_OPENED

orientation: FoldingFeature.Orientation = HORIZONTAL

Orientation of the fold. The default value is HORIZONTAL

Returns
FoldingFeature

FoldingFeature that is splitting if the width is not 0 and runs parallel to the Orientation axis.

TestWindowLayoutInfo

fun TestWindowLayoutInfo(displayFeatures: List<DisplayFeature> = emptyList()): WindowLayoutInfo

Returns a WindowLayoutInfo with default values for testing.

Parameters
displayFeatures: List<DisplayFeature> = emptyList()

a List of DisplayFeature, the default value is an empty List.