use of org.matrix.androidsdk.rest.model.bingrules.PushRuleSet 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(PushRuleSet ruleSet) {
synchronized (this) {
// clear the rules list
// it is
mRules.clear();
// sanity check
if (null == ruleSet) {
mRulesSet = new PushRuleSet();
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");
}
}
Aggregations