SplitPairRule.Builder

class SplitPairRule.Builder


Builder for SplitPairRule.

Summary

Public constructors

Public functions

SplitPairRule

Builds a SplitPairRule instance.

SplitPairRule.Builder
setClearTop(clearTop: Boolean)

Sets whether the existing secondary container on top and all activities in it should be destroyed when a new split is created using this rule.

SplitPairRule.Builder
setDefaultSplitAttributes(defaultSplitAttributes: SplitAttributes)

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

SplitPairRule.Builder
setFinishPrimaryWithSecondary(
    finishPrimaryWithSecondary: SplitRule.FinishBehavior
)

Sets the behavior of the primary container when all activities are finished in the associated secondary container.

SplitPairRule.Builder
setFinishSecondaryWithPrimary(
    finishSecondaryWithPrimary: SplitRule.FinishBehavior
)

Sets the behavior of the secondary container when all activities are finished in the associated primary container.

SplitPairRule.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.

SplitPairRule.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.

SplitPairRule.Builder
setMinHeightDp(minHeightDp: @IntRange(from = 0) Int)

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

SplitPairRule.Builder
setMinSmallestWidthDp(minSmallestWidthDp: @IntRange(from = 0) Int)

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

SplitPairRule.Builder
setMinWidthDp(minWidthDp: @IntRange(from = 0) Int)

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

SplitPairRule.Builder
setTag(tag: String?)

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

Public constructors

Builder

Added in 1.1.0
Builder(filters: Set<SplitPairFilter>)
Parameters
filters: Set<SplitPairFilter>

Filters used to choose when to apply this rule. The rule may be used if any one of the provided filters matches.

Public functions

build

Added in 1.1.0
fun build(): SplitPairRule

Builds a SplitPairRule instance.

Returns
SplitPairRule

The new SplitPairRule instance.

setClearTop

Added in 1.1.0
fun setClearTop(clearTop: Boolean): SplitPairRule.Builder

Sets whether the existing secondary container on top and all activities in it should be destroyed when a new split is created using this rule. Otherwise the new secondary will appear on top by default.

Parameters
clearTop: Boolean

whether the existing secondary container on top and all activities in it should be destroyed when a new split is created using this rule.

setDefaultSplitAttributes

Added in 1.1.0
fun setDefaultSplitAttributes(defaultSplitAttributes: SplitAttributes): SplitPairRule.Builder

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
defaultSplitAttributes: SplitAttributes

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

setFinishPrimaryWithSecondary

Added in 1.1.0
fun setFinishPrimaryWithSecondary(
    finishPrimaryWithSecondary: SplitRule.FinishBehavior
): SplitPairRule.Builder

Sets the behavior of the primary container when all activities are finished in the associated secondary container.

Parameters
finishPrimaryWithSecondary: SplitRule.FinishBehavior

the SplitRule.FinishBehavior of the primary container when all activities are finished in the associated secondary container.

See also
NEVER
ALWAYS
ADJACENT

setFinishSecondaryWithPrimary

Added in 1.1.0
fun setFinishSecondaryWithPrimary(
    finishSecondaryWithPrimary: SplitRule.FinishBehavior
): SplitPairRule.Builder

Sets the behavior of the secondary container when all activities are finished in the associated primary container.

Parameters
finishSecondaryWithPrimary: SplitRule.FinishBehavior

the SplitRule.FinishBehavior of the secondary container when all activities are finished in the associated primary container.

See also
NEVER
ALWAYS
ADJACENT

setMaxAspectRatioInLandscape

Added in 1.1.0
fun setMaxAspectRatioInLandscape(aspectRatio: EmbeddingAspectRatio): SplitPairRule.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. 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
aspectRatio: EmbeddingAspectRatio

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.1.0
fun setMaxAspectRatioInPortrait(aspectRatio: EmbeddingAspectRatio): SplitPairRule.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. 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
aspectRatio: EmbeddingAspectRatio

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.1.0
fun setMinHeightDp(minHeightDp: @IntRange(from = 0) Int): SplitPairRule.Builder

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 SplitPairRule.

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
minHeightDp: @IntRange(from = 0) Int

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

setMinSmallestWidthDp

Added in 1.1.0
fun setMinSmallestWidthDp(minSmallestWidthDp: @IntRange(from = 0) Int): SplitPairRule.Builder

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
minSmallestWidthDp: @IntRange(from = 0) Int

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.1.0
fun setMinWidthDp(minWidthDp: @IntRange(from = 0) Int): SplitPairRule.Builder

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
minWidthDp: @IntRange(from = 0) Int

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

setTag

Added in 1.1.0
fun setTag(tag: String?): SplitPairRule.Builder

Sets a unique string to identify this SplitPairRule, 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
tag: String?

unique string to identify this SplitPairRule.