Search in sources :

Example 1 with EventMatchCondition

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);
        }
    }
}
Also used : EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) BingRule(org.matrix.androidsdk.rest.model.bingrules.BingRule)

Example 2 with EventMatchCondition

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);
        }
    }
}
Also used : EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) BingRule(org.matrix.androidsdk.rest.model.bingrules.BingRule)

Example 3 with EventMatchCondition

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);
        }
    });
}
Also used : EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) BingRule(org.matrix.androidsdk.rest.model.bingrules.BingRule)

Example 4 with EventMatchCondition

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);
        }
    }
}
Also used : ContentRule(org.matrix.androidsdk.rest.model.bingrules.ContentRule) EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition)

Example 5 with EventMatchCondition

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);
}
Also used : EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) Condition(org.matrix.androidsdk.rest.model.bingrules.Condition) RoomMemberCountCondition(org.matrix.androidsdk.rest.model.bingrules.RoomMemberCountCondition) ContainsDisplayNameCondition(org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition) DeviceCondition(org.matrix.androidsdk.rest.model.bingrules.DeviceCondition) EventMatchCondition(org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition) Test(org.junit.Test)

Aggregations

EventMatchCondition (org.matrix.androidsdk.rest.model.bingrules.EventMatchCondition)5 BingRule (org.matrix.androidsdk.rest.model.bingrules.BingRule)3 Test (org.junit.Test)1 Condition (org.matrix.androidsdk.rest.model.bingrules.Condition)1 ContainsDisplayNameCondition (org.matrix.androidsdk.rest.model.bingrules.ContainsDisplayNameCondition)1 ContentRule (org.matrix.androidsdk.rest.model.bingrules.ContentRule)1 DeviceCondition (org.matrix.androidsdk.rest.model.bingrules.DeviceCondition)1 RoomMemberCountCondition (org.matrix.androidsdk.rest.model.bingrules.RoomMemberCountCondition)1