Search in sources :

Example 31 with RoomMember

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

the class Room method getJoinedMembers.

/**
 * Get the list of the members who have joined the room.
 *
 * @return the list the joined members of the room.
 */
public Collection<RoomMember> getJoinedMembers() {
    Collection<RoomMember> membersList = getState().getMembers();
    List<RoomMember> joinedMembersList = new ArrayList<>();
    for (RoomMember member : membersList) {
        if (TextUtils.equals(member.membership, RoomMember.MEMBERSHIP_JOIN)) {
            joinedMembersList.add(member);
        }
    }
    return joinedMembersList;
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember) ArrayList(java.util.ArrayList)

Example 32 with RoomMember

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

the class Room method isDirectChatInvitation.

/**
 * @return true if the user is invited in a direct chat room
 */
public boolean isDirectChatInvitation() {
    if (isInvited()) {
        // Is it an initial sync for this room ?
        RoomState state = getState();
        RoomMember selfMember = state.getMember(mMyUserId);
        if ((null != selfMember) && (null != selfMember.is_direct)) {
            return selfMember.is_direct;
        }
    }
    return false;
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember)

Example 33 with RoomMember

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

the class Room method getActiveMembers.

/**
 * @return the list of active members in a room ie joined or invited ones.
 */
public Collection<RoomMember> getActiveMembers() {
    Collection<RoomMember> members = getState().getMembers();
    List<RoomMember> activeMembers = new ArrayList<>();
    String conferenceUserId = MXCallsManager.getConferenceUserId(getRoomId());
    for (RoomMember member : members) {
        if (!TextUtils.equals(member.getUserId(), conferenceUserId)) {
            if (TextUtils.equals(member.membership, RoomMember.MEMBERSHIP_JOIN) || TextUtils.equals(member.membership, RoomMember.MEMBERSHIP_INVITE)) {
                activeMembers.add(member);
            }
        }
    }
    return activeMembers;
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember) ArrayList(java.util.ArrayList)

Example 34 with RoomMember

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

the class RoomsRestClient method kickFromRoom.

/**
 * Kick a user from a room.
 *
 * @param roomId   the room id
 * @param userId   the user id
 * @param callback the async callback
 */
public void kickFromRoom(final String roomId, final String userId, final ApiCallback<Void> callback) {
    final String description = "kickFromRoom : roomId " + roomId + " userId " + userId;
    // Kicking is done by posting that the user is now in a "leave" state
    RoomMember member = new RoomMember();
    member.membership = RoomMember.MEMBERSHIP_LEAVE;
    try {
        mApi.updateRoomMember(roomId, userId, member, new RestAdapterCallback<Void>(description, mUnsentEventsManager, callback, new RestAdapterCallback.RequestRetryCallBack() {

            @Override
            public void onRetry() {
                kickFromRoom(roomId, userId, callback);
            }
        }));
    } catch (Throwable t) {
        callback.onUnexpectedError(new Exception(t));
    }
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember)

Example 35 with RoomMember

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

the class RoomMemberCountConditionTest method setUpThreeRoomMembers.

private void setUpThreeRoomMembers() {
    ArrayList<RoomMember> members = new ArrayList<>();
    RoomMember rm1 = new RoomMember();
    rm1.membership = RoomMember.MEMBERSHIP_JOIN;
    members.add(rm1);
    RoomMember rm2 = new RoomMember();
    rm2.membership = RoomMember.MEMBERSHIP_JOIN;
    members.add(rm2);
    RoomMember rm3 = new RoomMember();
    rm3.membership = RoomMember.MEMBERSHIP_JOIN;
    members.add(rm3);
    // This one shouldn't count because they're not joined
    RoomMember rm4 = new RoomMember();
    rm4.membership = RoomMember.MEMBERSHIP_LEAVE;
    members.add(rm4);
    when(mockRoom.getMembers()).thenReturn(members);
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember) ArrayList(java.util.ArrayList)

Aggregations

RoomMember (org.matrix.androidsdk.rest.model.RoomMember)35 ArrayList (java.util.ArrayList)20 Room (org.matrix.androidsdk.data.Room)12 Event (org.matrix.androidsdk.rest.model.Event)6 MatrixError (org.matrix.androidsdk.rest.model.MatrixError)6 HashMap (java.util.HashMap)4 HashSet (java.util.HashSet)3 List (java.util.List)3 Map (java.util.Map)3 IMXEncrypting (org.matrix.androidsdk.crypto.algorithms.IMXEncrypting)3 ApiCallback (org.matrix.androidsdk.rest.callback.ApiCallback)3 HandlerThread (android.os.HandlerThread)2 JsonObject (com.google.gson.JsonObject)2 Iterator (java.util.Iterator)2 Set (java.util.Set)2 MXDecryptionException (org.matrix.androidsdk.crypto.MXDecryptionException)2 IMXStore (org.matrix.androidsdk.data.store.IMXStore)2 SimpleApiCallback (org.matrix.androidsdk.rest.callback.SimpleApiCallback)2 RoomThirdPartyInvite (org.matrix.androidsdk.rest.model.pid.RoomThirdPartyInvite)2 UnrecognizedCertificateException (org.matrix.androidsdk.ssl.UnrecognizedCertificateException)2