in WindowManager/app/src/main/java/com/example/windowmanagersample/embedding/SplitActivityBase.java [246:331]
private void updateRulesFromCheckboxes() {
int minSplitWidth = minSplitWidth();
mSplitController.clearRegisteredRules();
Set<SplitPairFilter> pairFilters = new HashSet<>();
pairFilters.add(
new SplitPairFilter(componentName(SplitActivityA.class), componentName("*"), null));
SplitPairRule rule =
new SplitPairRule(
pairFilters,
false,
false,
true,
minSplitWidth,
minSplitWidth,
SPLIT_RATIO,
LayoutDirection.LOCALE);
if (mViewBinding.splitMainCheckBox.isChecked()) {
mSplitController.registerRule(rule);
}
Set<ActivityFilter> activityFilters = new HashSet<>();
activityFilters.add(new ActivityFilter(componentName(SplitActivityB.class), null));
Intent intent = new Intent();
intent.setComponent(
componentName(
"com.example.windowmanagersample.embedding.SplitActivityPlaceholder"));
SplitPlaceholderRule placeholderRule =
new SplitPlaceholderRule(
activityFilters,
intent,
minSplitWidth,
minSplitWidth,
SPLIT_RATIO,
LayoutDirection.LOCALE);
if (mViewBinding.usePlaceholderCheckBox.isChecked()) {
mSplitController.registerRule(placeholderRule);
}
pairFilters = new HashSet<>();
pairFilters.add(
new SplitPairFilter(
componentName(SplitActivityB.class),
componentName(SplitActivityC.class),
null));
rule =
new SplitPairRule(
pairFilters,
mViewBinding.finishBCCheckBox.isChecked(),
mViewBinding.finishBCCheckBox.isChecked(),
true,
minSplitWidth,
minSplitWidth,
SPLIT_RATIO,
LayoutDirection.LOCALE);
if (mViewBinding.splitBCCheckBox.isChecked()) {
mSplitController.registerRule(rule);
}
pairFilters = new HashSet<>();
pairFilters.add(
new SplitPairFilter(
componentName("androidx.window.*"),
componentName(SplitActivityF.class),
null));
rule =
new SplitPairRule(
pairFilters,
false,
false,
true,
minSplitWidth,
minSplitWidth,
SPLIT_RATIO,
LayoutDirection.LOCALE);
if (mViewBinding.splitWithFCheckBox.isChecked()) {
mSplitController.registerRule(rule);
}
activityFilters = new HashSet<>();
activityFilters.add(new ActivityFilter(componentName(SplitActivityE.class), null));
ActivityRule activityRule = new ActivityRule(activityFilters, true);
if (mViewBinding.fullscreenECheckBox.isChecked()) {
mSplitController.registerRule(activityRule);
}
}