Search in sources :

Example 1 with BingRuleSet

use of org.matrix.androidsdk.rest.model.bingrules.BingRuleSet in project matrix-android-sdk by matrix-org.

the class BingRulesManager method updateRulesSet.

/**
 * Update mRulesSet with the new one.
 *
 * @param ruleSet the new ruleSet to apply
 */
private void updateRulesSet(BingRuleSet ruleSet) {
    synchronized (this) {
        // clear the rules list
        // it is
        mRules.clear();
        // sanity check
        if (null == ruleSet) {
            mRulesSet = new BingRuleSet();
            return;
        }
        // Ensure that the null pointers are replaced by an empty list
        if (ruleSet.override != null) {
            ruleSet.override = new ArrayList<>(ruleSet.override);
            for (BingRule rule : ruleSet.override) {
                rule.kind = BingRule.KIND_OVERRIDE;
            }
            mRules.addAll(ruleSet.override);
        } else {
            ruleSet.override = new ArrayList<>(ruleSet.override);
        }
        if (ruleSet.content != null) {
            ruleSet.content = new ArrayList<>(ruleSet.content);
            for (BingRule rule : ruleSet.content) {
                rule.kind = BingRule.KIND_CONTENT;
            }
            addContentRules(ruleSet.content);
        } else {
            ruleSet.content = new ArrayList<>();
        }
        mIsMentionOnlyMap.clear();
        if (ruleSet.room != null) {
            ruleSet.room = new ArrayList<>(ruleSet.room);
            for (BingRule rule : ruleSet.room) {
                rule.kind = BingRule.KIND_ROOM;
            }
            addRoomRules(ruleSet.room);
        } else {
            ruleSet.room = new ArrayList<>();
        }
        if (ruleSet.sender != null) {
            ruleSet.sender = new ArrayList<>(ruleSet.sender);
            for (BingRule rule : ruleSet.sender) {
                rule.kind = BingRule.KIND_SENDER;
            }
            addSenderRules(ruleSet.sender);
        } else {
            ruleSet.sender = new ArrayList<>();
        }
        if (ruleSet.underride != null) {
            ruleSet.underride = new ArrayList<>(ruleSet.underride);
            for (BingRule rule : ruleSet.underride) {
                rule.kind = BingRule.KIND_UNDERRIDE;
            }
            mRules.addAll(ruleSet.underride);
        } else {
            ruleSet.underride = new ArrayList<>();
        }
        mRulesSet = ruleSet;
        Log.d(LOG_TAG, "## updateRules() : has " + mRules.size() + " rules");
    }
}
Also used : BingRuleSet(org.matrix.androidsdk.rest.model.bingrules.BingRuleSet) BingRule(org.matrix.androidsdk.rest.model.bingrules.BingRule)

Aggregations

BingRule (org.matrix.androidsdk.rest.model.bingrules.BingRule)1 BingRuleSet (org.matrix.androidsdk.rest.model.bingrules.BingRuleSet)1