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