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;
}
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;
}
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;
}
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));
}
}
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);
}
Aggregations