use of org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition in project matrix-android-sdk by matrix-org.
the class BingRulesManager method addSenderRules.
/**
* Create a sender EventMatchConditions list from a BingRule list
*
* @param rules the BingRule list
*/
private void addSenderRules(List<BingRule> rules) {
if (null != rules) {
for (BingRule rule : rules) {
EventMatchCondition condition = new EventMatchCondition();
condition.kind = Condition.KIND_EVENT_MATCH;
condition.key = "user_id";
condition.pattern = rule.ruleId;
rule.addCondition(condition);
mRules.add(rule);
}
}
}
use of org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition in project matrix-android-sdk by matrix-org.
the class BingRulesManager method addRoomRules.
/**
* Create a room EventMatchConditions list from a BingRule list
*
* @param rules the BingRule list
*/
private void addRoomRules(List<BingRule> rules) {
if (null != rules) {
for (BingRule rule : rules) {
EventMatchCondition condition = new EventMatchCondition();
condition.kind = Condition.KIND_EVENT_MATCH;
condition.key = "room_id";
condition.pattern = rule.ruleId;
rule.addCondition(condition);
mRules.add(rule);
}
}
}
use of org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition in project matrix-android-sdk by matrix-org.
the class BingRulesManager method updateRoomNotificationState.
/**
* Update the notification state of a dedicated room
*
* @param roomId the room id
* @param state the new state
* @param listener the asynchronous callback
*/
public void updateRoomNotificationState(final String roomId, final RoomNotificationState state, final onBingRuleUpdateListener listener) {
List<BingRule> bingRules = getPushRulesForRoomId(roomId);
deleteRules(bingRules, new onBingRuleUpdateListener() {
@Override
public void onBingRuleUpdateSuccess() {
if (state == RoomNotificationState.ALL_MESSAGES) {
forceRulesRefresh(null, listener);
} else {
BingRule rule;
if (state == RoomNotificationState.ALL_MESSAGES_NOISY) {
rule = new BingRule(BingRule.KIND_ROOM, roomId, true, false, true);
} else {
rule = new BingRule((state == RoomNotificationState.MENTIONS_ONLY) ? BingRule.KIND_ROOM : BingRule.KIND_OVERRIDE, roomId, false, null, false);
EventMatchCondition condition = new EventMatchCondition();
condition.key = "room_id";
condition.pattern = roomId;
rule.addCondition(condition);
}
addRule(rule, listener);
}
}
@Override
public void onBingRuleUpdateFailure(String errorMessage) {
listener.onBingRuleUpdateFailure(errorMessage);
}
});
}
use of org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition in project matrix-android-sdk by matrix-org.
the class BingRulesManager method addContentRules.
/**
* Create a content EventMatchConditions list from a ContentRules list
*
* @param rules the ContentRules list
*/
private void addContentRules(List<ContentRule> rules) {
// sanity check
if (null != rules) {
for (ContentRule rule : rules) {
EventMatchCondition condition = new EventMatchCondition();
condition.kind = Condition.KIND_EVENT_MATCH;
condition.key = "content.body";
condition.pattern = rule.pattern;
rule.addCondition(condition);
mRules.add(rule);
}
}
}
use of org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition in project matrix-android-sdk by matrix-org.
the class ConditionDeserializerTest method testEventMatchCondition.
@Test
public void testEventMatchCondition() {
String conditionJson = "{'kind': 'event_match', 'key': 'key1', 'pattern': 'pattern1'}";
Condition condition = gson.fromJson(conditionJson, Condition.class);
assertTrue(condition instanceof EventMatchCondition);
EventMatchCondition eventMatchCondition = (EventMatchCondition) condition;
assertEquals("key1", eventMatchCondition.key);
assertEquals("pattern1", eventMatchCondition.pattern);
}
Aggregations