SplitPinRule.Builder


public final class SplitPinRule.Builder


Builder for SplitPinRule.

Summary

Public constructors

Public methods

final @NonNull SplitPinRule

Builds a SplitPinRule instance.

final @NonNull SplitPinRule.Builder
setDefaultSplitAttributes(
    @NonNull SplitAttributes defaultSplitAttributes
)

Sets the default SplitAttributes to apply on the activity containers pair when the host task bounds satisfy minWidthDp, minHeightDp, minSmallestWidthDp, maxAspectRatioInPortrait and maxAspectRatioInLandscape requirements.

final @NonNull SplitPinRule.Builder

Sets the largest value of the aspect ratio, expressed as width / height in decimal form, of the parent window bounds in landscape when the split should be used.

final @NonNull SplitPinRule.Builder

Sets the largest value of the aspect ratio, expressed as height / width in decimal form, of the parent window bounds in portrait when the split should be used.

final @NonNull SplitPinRule.Builder
setMinHeightDp(@IntRange(from = 0) int minHeightDp)

Sets the smallest value of height of the parent task window when the split should be used, in DP.

final @NonNull SplitPinRule.Builder
setMinSmallestWidthDp(@IntRange(from = 0) int minSmallestWidthDp)

Sets the smallest value of the smallest possible width of the parent window in any rotation when the split should be used, in DP.

final @NonNull SplitPinRule.Builder
setMinWidthDp(@IntRange(from = 0) int minWidthDp)

Sets the smallest value of width of the parent window when the split should be used, in DP.

final @NonNull SplitPinRule.Builder
setSticky(boolean isSticky)

Sets this rule to be sticky.

final @NonNull SplitPinRule.Builder

Sets a unique string to identify this SplitPinRule, which defaults to null.

Public constructors

Builder

Added in 1.4.0-alpha01
public Builder()

Public methods

build

Added in 1.4.0-alpha01
public final @NonNull SplitPinRule build()

Builds a SplitPinRule instance.

Returns
@NonNull SplitPinRule

The new SplitPinRule instance.

setDefaultSplitAttributes

Added in 1.4.0-alpha01
public final @NonNull SplitPinRule.Builder setDefaultSplitAttributes(
    @NonNull SplitAttributes defaultSplitAttributes
)

Sets the default SplitAttributes to apply on the activity containers pair when the host task bounds satisfy minWidthDp, minHeightDp, minSmallestWidthDp, maxAspectRatioInPortrait and maxAspectRatioInLandscape requirements.

Parameters
@NonNull SplitAttributes defaultSplitAttributes

the default SplitAttributes to apply on the activity containers pair when the host task bounds satisfy all the rule requirements.

setMaxAspectRatioInLandscape

Added in 1.4.0-alpha01
public final @NonNull SplitPinRule.Builder setMaxAspectRatioInLandscape(@NonNull EmbeddingAspectRatio aspectRatio)

Sets the largest value of the aspect ratio, expressed as width / height in decimal form, of the parent window bounds in landscape when the split should be used. When the window aspect ratio is greater than requested here, activities in the secondary container will be stacked on top of the activities in the primary one, completely overlapping them.

This value is only used when the parent window is in landscape (width height).

The default is SPLIT_MAX_ASPECT_RATIO_LANDSCAPE_DEFAULT if the app doesn't set, which is the recommend value to always allow split when the parent window is in landscape.

Parameters
@NonNull EmbeddingAspectRatio aspectRatio

the largest value of the aspect ratio, expressed as width / height in decimal form, of the parent window bounds in landscape when the split should be used.

setMaxAspectRatioInPortrait

Added in 1.4.0-alpha01
public final @NonNull SplitPinRule.Builder setMaxAspectRatioInPortrait(@NonNull EmbeddingAspectRatio aspectRatio)

Sets the largest value of the aspect ratio, expressed as height / width in decimal form, of the parent window bounds in portrait when the split should be used. When the window aspect ratio is greater than requested here, activities in the secondary container will be stacked on top of the activities in the primary one, completely overlapping them.

This value is only used when the parent window is in portrait (height >= width).

The default is SPLIT_MAX_ASPECT_RATIO_PORTRAIT_DEFAULT if the app doesn't set, which is the recommend value to only allow split when the parent window is not too stretched in portrait.

Parameters
@NonNull EmbeddingAspectRatio aspectRatio

the largest value of the aspect ratio, expressed as height / width in decimal form, of the parent window bounds in portrait when the split should be used.

setMinHeightDp

Added in 1.4.0-alpha01
public final @NonNull SplitPinRule.Builder setMinHeightDp(@IntRange(from = 0) int minHeightDp)

Sets the smallest value of height of the parent task window when the split should be used, in DP. When the window size is smaller than requested here, activities in the secondary container will be stacked on top of the activities in the primary one, completely overlapping them.

It is useful if it's necessary to split the parent window horizontally for this SplitPinRule.

The default is SPLIT_MIN_DIMENSION_DP_DEFAULT if the app doesn't set. SPLIT_MIN_DIMENSION_ALWAYS_ALLOW means to always allow split.

Parameters
@IntRange(from = 0) int minHeightDp

the smallest value of height of the parent task window when the split should be used, in DP.

setMinSmallestWidthDp

Added in 1.4.0-alpha01
public final @NonNull SplitPinRule.Builder setMinSmallestWidthDp(@IntRange(from = 0) int minSmallestWidthDp)

Sets the smallest value of the smallest possible width of the parent window in any rotation when the split should be used, in DP. When the window size is smaller than requested here, activities in the secondary container will be stacked on top of the activities in the primary one, completely overlapping them.

The default is SPLIT_MIN_DIMENSION_DP_DEFAULT if the app doesn't set. SPLIT_MIN_DIMENSION_ALWAYS_ALLOW means to always allow split.

Parameters
@IntRange(from = 0) int minSmallestWidthDp

the smallest value of the smallest possible width of the parent window in any rotation when the split should be used, in DP.

setMinWidthDp

Added in 1.4.0-alpha01
public final @NonNull SplitPinRule.Builder setMinWidthDp(@IntRange(from = 0) int minWidthDp)

Sets the smallest value of width of the parent window when the split should be used, in DP. When the window size is smaller than requested here, activities in the secondary container will be stacked on top of the activities in the primary one, completely overlapping them.

The default is SPLIT_MIN_DIMENSION_DP_DEFAULT if the app doesn't set. SPLIT_MIN_DIMENSION_ALWAYS_ALLOW means to always allow split.

Parameters
@IntRange(from = 0) int minWidthDp

the smallest value of width of the parent window when the split should be used, in DP.

setSticky

Added in 1.4.0-alpha01
public final @NonNull SplitPinRule.Builder setSticky(boolean isSticky)

Sets this rule to be sticky.

Parameters
boolean isSticky

whether to be a sticky rule.

See also
setSticky

setTag

Added in 1.4.0-alpha01
public final @NonNull SplitPinRule.Builder setTag(String tag)

Sets a unique string to identify this SplitPinRule, which defaults to null. The suggested usage is to set the tag to be able to differentiate between different rules in the SplitAttributesCalculatorParams.splitRuleTag.

Parameters
String tag

unique string to identify this SplitPinRule.