房间在线列表优化,删除无用的贵族相关代码
This commit is contained in:
@@ -4,7 +4,8 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import com.chad.library.adapter.base.entity.MultiItemEntity;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleInfo;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleResourceType;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleUtil;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
@@ -25,48 +26,42 @@ public class OnlineChatMember implements MultiItemEntity, Comparable<OnlineChatM
|
||||
|
||||
public static final int NOBLE = 1;
|
||||
public static final int NORMAL = 4;
|
||||
public static final int TEXT = 5;
|
||||
|
||||
public static final int SPAN_SIZE_NOBLE = 1;
|
||||
public static final int SPAN_SIZE_NORMAL = 4;
|
||||
public static final int SPAN_SIZE_TEXT = 4;
|
||||
|
||||
private int itemType;
|
||||
private int spanSize;
|
||||
|
||||
public ChatRoomMember chatRoomMember;
|
||||
|
||||
public boolean isOnMic;
|
||||
public boolean isAdmin;
|
||||
public boolean isRoomOwer;
|
||||
private boolean isOfficial;
|
||||
|
||||
/** 保存服务端数据 */
|
||||
public String avatar;
|
||||
public NobleInfo nobleUsers;
|
||||
public String nick;
|
||||
public int gender;
|
||||
public long uid;
|
||||
|
||||
private int platformRole;
|
||||
|
||||
public OnlineChatMember() {
|
||||
}
|
||||
|
||||
public OnlineChatMember(ChatRoomMember chatRoomMember, int itemType, int spanSize) {
|
||||
public OnlineChatMember(ChatRoomMember chatRoomMember) {
|
||||
this.chatRoomMember = chatRoomMember;
|
||||
this.itemType = itemType;
|
||||
this.spanSize = spanSize;
|
||||
}
|
||||
|
||||
public OnlineChatMember(ChatRoomMember chatRoomMember, boolean isOnMic, boolean isAdmin,
|
||||
boolean isRoomOwer, int itemType, int spanSize) {
|
||||
boolean isRoomOwer) {
|
||||
this.chatRoomMember = chatRoomMember;
|
||||
this.isOnMic = isOnMic;
|
||||
this.isAdmin = isAdmin;
|
||||
this.isRoomOwer = isRoomOwer;
|
||||
this.itemType = itemType;
|
||||
this.spanSize = spanSize;
|
||||
}
|
||||
|
||||
public static List<OnlineChatMember> coverToOnlineChatMember(List<ChatRoomMember> oldList, List<ChatRoomMember> newList) {
|
||||
HashSet<OnlineChatMember> treeSet = new HashSet<>();
|
||||
if (!ListUtils.isListEmpty(oldList)) {
|
||||
List<OnlineChatMember> list = new ArrayList<>(oldList.size());
|
||||
for (ChatRoomMember chatRoomMember : oldList) {
|
||||
list.add(new OnlineChatMember(chatRoomMember));
|
||||
}
|
||||
treeSet.addAll(list);
|
||||
}
|
||||
if (!ListUtils.isListEmpty(newList)) {
|
||||
List<OnlineChatMember> list = new ArrayList<>(newList.size());
|
||||
for (ChatRoomMember chatRoomMember : newList) {
|
||||
list.add(new OnlineChatMember(chatRoomMember));
|
||||
}
|
||||
treeSet.addAll(list);
|
||||
}
|
||||
ArrayList<OnlineChatMember> list = new ArrayList<>(treeSet);
|
||||
Collections.sort(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,38 +79,6 @@ public class OnlineChatMember implements MultiItemEntity, Comparable<OnlineChatM
|
||||
return chatRoomMember.getAccount().hashCode();
|
||||
}
|
||||
|
||||
public static List<OnlineChatMember> coverToOnlineChatMember(List<ChatRoomMember> oldList, List<ChatRoomMember> newList) {
|
||||
int itemType = OnlineChatMember.NORMAL;
|
||||
HashSet<OnlineChatMember> treeSet = new HashSet<>();
|
||||
if (!ListUtils.isListEmpty(oldList)) {
|
||||
List<OnlineChatMember> list = new ArrayList<>(oldList.size());
|
||||
for (ChatRoomMember chatRoomMember : oldList) {
|
||||
list.add(new OnlineChatMember(chatRoomMember, itemType, OnlineChatMember.SPAN_SIZE_NORMAL));
|
||||
}
|
||||
treeSet.addAll(list);
|
||||
}
|
||||
if (!ListUtils.isListEmpty(newList)) {
|
||||
List<OnlineChatMember> list = new ArrayList<>(newList.size());
|
||||
for (ChatRoomMember chatRoomMember : newList) {
|
||||
list.add(new OnlineChatMember(chatRoomMember, itemType, OnlineChatMember.SPAN_SIZE_NORMAL));
|
||||
}
|
||||
treeSet.addAll(list);
|
||||
}
|
||||
ArrayList<OnlineChatMember> list = new ArrayList<>(treeSet);
|
||||
Collections.sort(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
public static List<ChatRoomMember> converOnlineToNormal(List<OnlineChatMember> onlineChatMembers) {
|
||||
if (ListUtils.isListEmpty(onlineChatMembers)) return null;
|
||||
List<ChatRoomMember> chatRoomMembers = new ArrayList<>();
|
||||
for (OnlineChatMember temp : onlineChatMembers) {
|
||||
if (temp.chatRoomMember == null) continue;
|
||||
chatRoomMembers.add(temp.chatRoomMember);
|
||||
}
|
||||
return chatRoomMembers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(@NonNull OnlineChatMember o) {
|
||||
if (chatRoomMember == null) return 1;
|
||||
@@ -123,41 +86,19 @@ public class OnlineChatMember implements MultiItemEntity, Comparable<OnlineChatM
|
||||
return (int) (o.chatRoomMember.getEnterTime() - chatRoomMember.getEnterTime());
|
||||
}
|
||||
|
||||
public void setItemType(int itemType) {
|
||||
this.itemType = itemType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemType() {
|
||||
return itemType;
|
||||
}
|
||||
|
||||
public int getSpanSize() {
|
||||
return spanSize;
|
||||
}
|
||||
|
||||
public void setSpanSize(int spanSize) {
|
||||
this.spanSize = spanSize;
|
||||
}
|
||||
|
||||
public static List<OnlineChatMember> newEmptyList(int size) {
|
||||
List<OnlineChatMember> list = new ArrayList<>(size);
|
||||
OnlineChatMember member;
|
||||
for (int i = 0; i < size; i++) {
|
||||
member = new OnlineChatMember(null, OnlineChatMember.NOBLE, OnlineChatMember.SPAN_SIZE_NOBLE);
|
||||
member.nick = "贵族专属";
|
||||
list.add(member);
|
||||
Object isEnterHide = NobleUtil.getResource(NobleResourceType.KEY_ENTER_HIDE, chatRoomMember);
|
||||
if ((isEnterHide instanceof Boolean && (Boolean) isEnterHide)
|
||||
|| (isEnterHide instanceof String) && ((String) isEnterHide).equals("1")) {
|
||||
return NOBLE;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static OnlineChatMember newTextBean() {
|
||||
return new OnlineChatMember(null,
|
||||
OnlineChatMember.TEXT, OnlineChatMember.SPAN_SIZE_TEXT);
|
||||
return NORMAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否为官方
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isOfficial() {
|
||||
@@ -177,11 +118,4 @@ public class OnlineChatMember implements MultiItemEntity, Comparable<OnlineChatM
|
||||
}
|
||||
}
|
||||
|
||||
public int getPlatformRole() {
|
||||
return platformRole;
|
||||
}
|
||||
|
||||
public void setPlatformRole(int platformRole) {
|
||||
this.platformRole = platformRole;
|
||||
}
|
||||
}
|
||||
|
@@ -1,37 +1,28 @@
|
||||
package com.yizhuan.xchat_android_core.room.model;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.netease.nimlib.sdk.chatroom.constant.MemberType;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.bean.RoomQueueInfo;
|
||||
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
|
||||
import com.yizhuan.xchat_android_core.exception.ErrorThrowable;
|
||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
||||
import com.yizhuan.xchat_android_core.room.bean.OnlineChatMember;
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_core.room.model.inteface.IHomePartyUserListModel;
|
||||
import com.yizhuan.xchat_android_library.net.rxnet.RxNet;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleOnSubscribe;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.functions.Function;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
* <p> 轰趴房用户列表网络处理 </p>
|
||||
@@ -40,9 +31,6 @@ import retrofit2.http.Query;
|
||||
* @date 2017/12/8
|
||||
*/
|
||||
public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyUserListModel {
|
||||
private static final int MAX_NOBLE_LIMIT = 60;
|
||||
|
||||
private final static int NOBLE_COLUM_NUM = 4;
|
||||
|
||||
/**
|
||||
* 分页获取房间成员:第一页包含队列成员,固定成员,游客50人,之后每一页获取游客50人
|
||||
@@ -51,70 +39,16 @@ public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyU
|
||||
* @param time 固定成员列表用updateTime,
|
||||
* 游客列表用进入enterTime,
|
||||
* 填0会使用当前服务器最新时间开始查询,即第一页,单位毫秒
|
||||
* @param isHomePartyOnline 是否是在轰趴房在线列表
|
||||
*/
|
||||
@Override
|
||||
public Single<List<OnlineChatMember>> getOnLinePageMembers(final int page, long time,
|
||||
final List<OnlineChatMember> oldList,
|
||||
final boolean isHomePartyOnline) {
|
||||
if (page == Constants.PAGE_START) {
|
||||
Single<List<ChatRoomMember>> onlineUserObservable = queryOnlineList(500);
|
||||
Single<List<ChatRoomMember>> firstGuestObservable = queryGuestList(ROOM_MEMBER_SIZE, 0);
|
||||
Single<List<OnlineChatMember>> roomNobleUsersSingle = getRoomNobleUsers();
|
||||
|
||||
return Single.zip(onlineUserObservable, firstGuestObservable, roomNobleUsersSingle,
|
||||
(onlineChatRoomMemberList, guestChatRoomMemberList, nobleOnlineChatMembers) ->
|
||||
getChatRoomMemberList(onlineChatRoomMemberList, guestChatRoomMemberList,
|
||||
isHomePartyOnline ? getNobleOnlineChatMembers(nobleOnlineChatMembers) : null))
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
} else {
|
||||
return queryGuestList(ROOM_MEMBER_SIZE, time)
|
||||
.map(chatRoomMemberList -> {
|
||||
if (!ListUtils.isListEmpty(chatRoomMemberList)) {
|
||||
Logger.i("第%1d页游客在线人数:%2d", page, chatRoomMemberList.size());
|
||||
List<ChatRoomMember> list = null;
|
||||
List<OnlineChatMember> nobleList = null;
|
||||
if (!ListUtils.isListEmpty(oldList)) {
|
||||
list = new ArrayList<>();
|
||||
for (OnlineChatMember temp : oldList) {
|
||||
int itemType = temp.getItemType();
|
||||
if (itemType == OnlineChatMember.NORMAL) {
|
||||
list.add(temp.chatRoomMember);
|
||||
} else if (itemType == OnlineChatMember.NOBLE || itemType == OnlineChatMember.TEXT) {
|
||||
if (nobleList == null)
|
||||
nobleList = new ArrayList<>();
|
||||
nobleList.add(temp);
|
||||
}
|
||||
}
|
||||
}
|
||||
return getChatRoomMemberList(list, chatRoomMemberList, nobleList);
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页获取房间成员:第一页包含队列成员,固定成员,游客50人,之后每一页获取游客50人
|
||||
*没有贵族调用此方法
|
||||
* @param page 页数
|
||||
* @param time 固定成员列表用updateTime,
|
||||
* 游客列表用进入enterTime,
|
||||
* 填0会使用当前服务器最新时间开始查询,即第一页,单位毫秒
|
||||
* @param isHomePartyOnline 是否是在轰趴房在线列表
|
||||
*/
|
||||
@Override
|
||||
public Single<List<OnlineChatMember>> getPageMembers(final int page, long time,
|
||||
final List<OnlineChatMember> oldList,
|
||||
final boolean isHomePartyOnline) {
|
||||
final List<OnlineChatMember> oldList) {
|
||||
if (page == Constants.PAGE_START) {
|
||||
Single<List<ChatRoomMember>> onlineUserObservable = queryOnlineList(500);
|
||||
Single<List<ChatRoomMember>> firstGuestObservable = queryGuestList(ROOM_MEMBER_SIZE, 0);
|
||||
|
||||
return Single.zip(onlineUserObservable, firstGuestObservable,
|
||||
(onlineChatRoomMemberList, guestChatRoomMemberList) ->
|
||||
getChatRoomMemberList(onlineChatRoomMemberList, guestChatRoomMemberList,null))
|
||||
this::getChatRoomMemberList)
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
} else {
|
||||
return queryGuestList(ROOM_MEMBER_SIZE, time)
|
||||
@@ -122,21 +56,13 @@ public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyU
|
||||
if (!ListUtils.isListEmpty(chatRoomMemberList)) {
|
||||
Logger.i("第%1d页游客在线人数:%2d", page, chatRoomMemberList.size());
|
||||
List<ChatRoomMember> list = null;
|
||||
List<OnlineChatMember> nobleList = null;
|
||||
if (!ListUtils.isListEmpty(oldList)) {
|
||||
list = new ArrayList<>();
|
||||
for (OnlineChatMember temp : oldList) {
|
||||
int itemType = temp.getItemType();
|
||||
if (itemType == OnlineChatMember.NORMAL) {
|
||||
list.add(temp.chatRoomMember);
|
||||
} else if (itemType == OnlineChatMember.NOBLE || itemType == OnlineChatMember.TEXT) {
|
||||
if (nobleList == null)
|
||||
nobleList = new ArrayList<>();
|
||||
nobleList.add(temp);
|
||||
}
|
||||
list.add(temp.chatRoomMember);
|
||||
}
|
||||
}
|
||||
return getChatRoomMemberList(list, chatRoomMemberList, null);
|
||||
return getChatRoomMemberList(list, chatRoomMemberList);
|
||||
}
|
||||
return null;
|
||||
})
|
||||
@@ -144,78 +70,16 @@ public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyU
|
||||
}
|
||||
}
|
||||
|
||||
private List<OnlineChatMember> getNobleOnlineChatMembers(List<OnlineChatMember> nobleOnlineChatMembers) {
|
||||
ChatRoomMember tempChat;
|
||||
//过滤超管
|
||||
if (!ListUtils.isListEmpty(nobleOnlineChatMembers)) {
|
||||
Iterator<OnlineChatMember> iterator = nobleOnlineChatMembers.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
OnlineChatMember member = iterator.next();
|
||||
if (member == null) {
|
||||
continue;
|
||||
}
|
||||
if (member.getPlatformRole() == 1) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!ListUtils.isListEmpty(nobleOnlineChatMembers)) {
|
||||
int size = AvRoomDataManager.get().mMicQueueMemberMap.size();
|
||||
for (OnlineChatMember onlineChatMember : nobleOnlineChatMembers) {
|
||||
onlineChatMember.setItemType(OnlineChatMember.NOBLE);
|
||||
onlineChatMember.setSpanSize(OnlineChatMember.SPAN_SIZE_NOBLE);
|
||||
onlineChatMember.isOnMic = false;
|
||||
|
||||
for (int i = 0; i < size; i++) {
|
||||
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.valueAt(i);
|
||||
if (roomQueueInfo.mChatRoomMember != null
|
||||
&& Objects.equals(roomQueueInfo.mChatRoomMember.getAccount(), String.valueOf(onlineChatMember.uid))) {
|
||||
onlineChatMember.isOnMic = true;
|
||||
}
|
||||
}
|
||||
onlineChatMember.isRoomOwer = AvRoomDataManager.get().isRoomOwner(onlineChatMember.uid);
|
||||
onlineChatMember.isAdmin = AvRoomDataManager.get().isRoomAdmin(String.valueOf(onlineChatMember.uid));
|
||||
|
||||
//统一判断使用
|
||||
tempChat = new ChatRoomMember();
|
||||
tempChat.setAccount(String.valueOf(onlineChatMember.uid));
|
||||
tempChat.setAvatar(onlineChatMember.avatar);
|
||||
tempChat.setNick(onlineChatMember.nick);
|
||||
onlineChatMember.chatRoomMember = tempChat;
|
||||
}
|
||||
|
||||
int nobleSize = nobleOnlineChatMembers.size();
|
||||
int alreadyHasSize = nobleSize % NOBLE_COLUM_NUM;
|
||||
if (alreadyHasSize > 0) {
|
||||
nobleOnlineChatMembers.addAll(OnlineChatMember.newEmptyList(NOBLE_COLUM_NUM - alreadyHasSize));
|
||||
}
|
||||
|
||||
if (nobleOnlineChatMembers.size() >= MAX_NOBLE_LIMIT)
|
||||
nobleOnlineChatMembers.add(OnlineChatMember.newTextBean());
|
||||
} else {
|
||||
nobleOnlineChatMembers = OnlineChatMember.newEmptyList(NOBLE_COLUM_NUM);
|
||||
}
|
||||
return nobleOnlineChatMembers;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private List<OnlineChatMember> getChatRoomMemberList(List<ChatRoomMember> oldList,
|
||||
List<ChatRoomMember> newList,
|
||||
List<OnlineChatMember> nobleList) {
|
||||
List<ChatRoomMember> newList) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
/* try {
|
||||
Thread.sleep(12000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}*/
|
||||
|
||||
//处理耗时的循环
|
||||
|
||||
List<OnlineChatMember> allMemberList = OnlineChatMember.coverToOnlineChatMember(oldList, newList);
|
||||
|
||||
List<OnlineChatMember> part1MemberList = new ArrayList<>();
|
||||
List<OnlineChatMember> limitMemberList = new ArrayList<>();
|
||||
List<OnlineChatMember> managerMemberList = new ArrayList<>();
|
||||
List<OnlineChatMember> normalMemberList = new ArrayList<>();
|
||||
List<OnlineChatMember> onMicMemberList = new ArrayList<>();
|
||||
@@ -264,8 +128,6 @@ public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyU
|
||||
} else if (memberType == MemberType.CREATOR) {
|
||||
isRoomOwnerOnline = chatRoomMember.isOnline();
|
||||
AvRoomDataManager.get().mRoomCreateMember = chatRoomMember;
|
||||
} else if (chatRoomMember.isInBlackList() || chatRoomMember.isMuted()) {
|
||||
limitMemberList.add(temp);
|
||||
} else if (memberType == MemberType.NORMAL) {
|
||||
normalMemberList.add(temp);
|
||||
} else if (memberType == MemberType.GUEST) {
|
||||
@@ -279,11 +141,11 @@ public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyU
|
||||
if (!ListUtils.isListEmpty(onMicMemberList)
|
||||
&& !AvRoomDataManager.get().isRoomOwner(onMicMemberList.get(0).chatRoomMember.getAccount())) {
|
||||
part1MemberList.add(0, new OnlineChatMember(AvRoomDataManager.get().mRoomCreateMember,
|
||||
false, false, true, OnlineChatMember.NORMAL, OnlineChatMember.SPAN_SIZE_NORMAL));
|
||||
false, false, true));
|
||||
} else if (ListUtils.isListEmpty(onMicMemberList)) {
|
||||
//处理麦上没有人的情况
|
||||
part1MemberList.add(0, new OnlineChatMember(AvRoomDataManager.get().mRoomCreateMember,
|
||||
false, false, true, OnlineChatMember.NORMAL, OnlineChatMember.SPAN_SIZE_NORMAL));
|
||||
false, false, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -306,39 +168,10 @@ public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyU
|
||||
part1MemberList.addAll(guestMemberList);
|
||||
}
|
||||
|
||||
if (!ListUtils.isListEmpty(nobleList)) {
|
||||
part1MemberList.addAll(0, nobleList);
|
||||
}
|
||||
|
||||
Logger.i("循环处理在线顺序列表耗时:" + (System.currentTimeMillis() - startTime));
|
||||
return part1MemberList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 成员进来刷新在线列表
|
||||
*
|
||||
* @param account 进来成员的账号
|
||||
* @param onlineChatMembers 成员列表
|
||||
*/
|
||||
@Override
|
||||
public Single<List<OnlineChatMember>> onMemberInRefreshData(String account, int page,
|
||||
final List<OnlineChatMember> onlineChatMembers) {
|
||||
if (TextUtils.isEmpty(account)) return Single.error(new Throwable("account 不能为空"));
|
||||
List<String> accounts = new ArrayList<>(1);
|
||||
accounts.add(account);
|
||||
return IMNetEaseManager.get().fetchRoomMembersByIds(accounts)
|
||||
.observeOn(Schedulers.io())
|
||||
.map(new Function<List<ChatRoomMember>, List<OnlineChatMember>>() {
|
||||
@Override
|
||||
public List<OnlineChatMember> apply(List<ChatRoomMember> chatRoomMemberList) throws Exception {
|
||||
if (ListUtils.isListEmpty(chatRoomMemberList)) return onlineChatMembers;
|
||||
return /*getChatRoomMemberList(chatRoomMemberList, OnlineChatMember.converOnlineToNormal(onlineChatMembers))*/onlineChatMembers;
|
||||
}
|
||||
})
|
||||
.delay(page == Constants.PAGE_START ? 2 : 0, TimeUnit.SECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<List<OnlineChatMember>> onMemberDownUpMic(final String account,
|
||||
final boolean isUpMic,
|
||||
@@ -385,37 +218,4 @@ public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyU
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取房间在线贵族列表
|
||||
*/
|
||||
private Single<List<OnlineChatMember>> getRoomNobleUsers() {
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo == null)
|
||||
return Single.error(new ErrorThrowable(ErrorThrowable.ROOM_INFO_NULL_ERROR));
|
||||
return RxNet.create(Service.class)
|
||||
.getRoomNobleUsers(roomInfo.getUid(),
|
||||
AuthModel.get().getCurrentUid(),
|
||||
AuthModel.get().getTicket())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.unsubscribeOn(Schedulers.io())
|
||||
.onErrorResumeNext(this.getSingleCommonExceptionFunction())
|
||||
.flatMap(this.getSingleFunction());
|
||||
}
|
||||
|
||||
|
||||
private interface Service {
|
||||
|
||||
/**
|
||||
* 获取房间在线贵族列表
|
||||
*
|
||||
* @param roomUid 房主uid
|
||||
* @param uid 自己uid
|
||||
* @param ticket -
|
||||
* @return -
|
||||
*/
|
||||
@GET("noble/room/user/get")
|
||||
Single<ServiceResult<List<OnlineChatMember>>> getRoomNobleUsers(@Query("roomUid") long roomUid,
|
||||
@Query("uid") long uid,
|
||||
@Query("ticket") String ticket);
|
||||
}
|
||||
}
|
||||
|
@@ -15,35 +15,11 @@ public interface IHomePartyUserListModel extends IModel {
|
||||
* @param time 固定成员列表用updateTime,
|
||||
* 游客列表用进入enterTime,
|
||||
* 填0会使用当前服务器最新时间开始查询,即第一页,单位毫秒
|
||||
* @param isHomePartyOnline 是否是在轰趴房在线列表
|
||||
*/
|
||||
Single<List<OnlineChatMember>> getOnLinePageMembers(int page, long time,
|
||||
List<OnlineChatMember> oldList,
|
||||
boolean isHomePartyOnline);
|
||||
|
||||
/**
|
||||
* 分页获取房间成员:第一页包含队列成员,固定成员,游客50人,之后每一页获取游客50人
|
||||
*
|
||||
* @param page 页数
|
||||
* @param time 固定成员列表用updateTime,
|
||||
* 游客列表用进入enterTime,
|
||||
* 填0会使用当前服务器最新时间开始查询,即第一页,单位毫秒
|
||||
* @param isHomePartyOnline 是否是在轰趴房在线列表
|
||||
*/
|
||||
Single<List<OnlineChatMember>> getPageMembers(final int page, long time,
|
||||
final List<OnlineChatMember> oldList,
|
||||
final boolean isHomePartyOnline);
|
||||
|
||||
|
||||
/**
|
||||
* 成员进来刷新在线列表
|
||||
*
|
||||
* @param account 进来成员的账号
|
||||
* @param onlineChatMembers 成员列表
|
||||
*/
|
||||
Single<List<OnlineChatMember>> onMemberInRefreshData(String account, int page,
|
||||
final List<OnlineChatMember> onlineChatMembers);
|
||||
List<OnlineChatMember> oldList);
|
||||
|
||||
;
|
||||
Single<List<OnlineChatMember>> onMemberDownUpMic(final String account,
|
||||
final boolean isUpMic,
|
||||
final List<OnlineChatMember> dataList);
|
||||
|
@@ -41,6 +41,7 @@ public class UserInfo implements Serializable {
|
||||
public static final transient int GENDER_MALE = 1;
|
||||
public static final transient int GENDER_FEMALE = 2;
|
||||
public static String IS_NEW_USER = "newUser";
|
||||
public static String GENDER = "gender";
|
||||
public static String IS_OFFICIAL = "official";
|
||||
public static String DEF_USER = "defUser";
|
||||
public static String HAS_PRETTY = "hasPrettyErbanNo";
|
||||
@@ -577,6 +578,7 @@ public class UserInfo implements Serializable {
|
||||
if (map == null) {
|
||||
map = new HashMap<>();
|
||||
}
|
||||
map.put(GENDER, userInfo.getGender());
|
||||
map.put(IS_OFFICIAL, userInfo.getDefUser() == USER_TYPE_OFFICIAL);
|
||||
map.put(IS_NEW_USER, isNewUser());
|
||||
map.put(DEF_USER, userInfo.getDefUser());
|
||||
|
Reference in New Issue
Block a user