private void updateRulesFromCheckboxes()

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);
        }
    }