Search in sources :

Example 11 with RoomMember

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

the class Room method callees.

/**
 * @return a list of callable members.
 */
public List<RoomMember> callees() {
    List<RoomMember> res = new ArrayList<>();
    Collection<RoomMember> members = getMembers();
    for (RoomMember m : members) {
        if (RoomMember.MEMBERSHIP_JOIN.equals(m.membership) && !mMyUserId.equals(m.getUserId())) {
            res.add(m);
        }
    }
    return res;
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember) ArrayList(java.util.ArrayList)

Example 12 with RoomMember

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

the class Room method getMemberEvent.

public void getMemberEvent(final String userId, final ApiCallback<Event> callback) {
    final Event event;
    final RoomMember member = getMember(userId);
    if ((null != member) && (null != member.getOriginalEventId())) {
        event = mMemberEventByEventId.get(member.getOriginalEventId());
        if (null == event) {
            mDataHandler.getDataRetriever().getRoomsRestClient().getEvent(getRoomId(), member.getOriginalEventId(), new ApiCallback<Event>() {

                @Override
                public void onSuccess(Event event) {
                    if (null != event) {
                        mMemberEventByEventId.put(event.eventId, event);
                    }
                    callback.onSuccess(event);
                }

                @Override
                public void onNetworkError(Exception e) {
                    callback.onNetworkError(e);
                }

                @Override
                public void onMatrixError(MatrixError e) {
                    callback.onMatrixError(e);
                }

                @Override
                public void onUnexpectedError(Exception e) {
                    callback.onUnexpectedError(e);
                }
            });
            return;
        }
    } else {
        event = null;
    }
    new Handler(Looper.getMainLooper()).post(new Runnable() {

        @Override
        public void run() {
            callback.onSuccess(event);
        }
    });
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember) Event(org.matrix.androidsdk.rest.model.Event) Handler(android.os.Handler) MXDataHandler(org.matrix.androidsdk.MXDataHandler) MatrixError(org.matrix.androidsdk.rest.model.MatrixError)

Example 13 with RoomMember

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

the class Room method isInvited.

/**
 * @return true if the user is invited to the room
 */
public boolean isInvited() {
    // Is it an initial sync for this room ?
    RoomState state = getState();
    String membership = null;
    RoomMember selfMember = state.getMember(mMyUserId);
    if (null != selfMember) {
        membership = selfMember.membership;
    }
    return TextUtils.equals(membership, RoomMember.MEMBERSHIP_INVITE);
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember)

Example 14 with RoomMember

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

the class RoomMemberCountCondition method getNumberOfMembers.

/**
 * Count joined room members in the room.
 *
 * @param room the room
 * @return the number of joined members
 */
private int getNumberOfMembers(Room room) {
    Collection<RoomMember> members = room.getMembers();
    int n = 0;
    for (RoomMember member : members) {
        if (RoomMember.MEMBERSHIP_JOIN.equals(member.membership)) {
            n++;
        }
    }
    return n;
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember)

Example 15 with RoomMember

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

the class MXDataHandler method getDirectChatRoomIdsListRetroCompat.

/**
 * Return the direct chat room list for retro compatibility with 1:1 rooms.
 *
 * @param aStore                         store instance
 * @param aDirectChatRoomIdsListRetValue the other participants in the 1:1 room
 */
private void getDirectChatRoomIdsListRetroCompat(IMXStore aStore, ArrayList<RoomIdsListRetroCompat> aDirectChatRoomIdsListRetValue) {
    RoomIdsListRetroCompat item;
    if ((null != aStore) && (null != aDirectChatRoomIdsListRetValue)) {
        ArrayList<Room> rooms = new ArrayList<>(aStore.getRooms());
        ArrayList<RoomMember> members;
        int otherParticipantIndex;
        for (Room r : rooms) {
            // been moved to a different tag section
            if ((r.getActiveMembers().size() == 2) && (null != r.getAccountData()) && (!r.getAccountData().hasTags())) {
                RoomMember roomMember = r.getMember(getMyUser().user_id);
                members = new ArrayList<>(r.getActiveMembers());
                if (null != roomMember) {
                    String membership = roomMember.membership;
                    if (TextUtils.equals(membership, RoomMember.MEMBERSHIP_JOIN) || TextUtils.equals(membership, RoomMember.MEMBERSHIP_BAN) || TextUtils.equals(membership, RoomMember.MEMBERSHIP_LEAVE)) {
                        if (TextUtils.equals(members.get(0).getUserId(), getMyUser().user_id)) {
                            otherParticipantIndex = 1;
                        } else {
                            otherParticipantIndex = 0;
                        }
                        item = new RoomIdsListRetroCompat(members.get(otherParticipantIndex).getUserId(), r.getRoomId());
                        aDirectChatRoomIdsListRetValue.add(item);
                    }
                }
            }
        }
    }
}
Also used : RoomMember(org.matrix.androidsdk.rest.model.RoomMember) ArrayList(java.util.ArrayList) Room(org.matrix.androidsdk.data.Room)

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