diff --git a/app/src/main/java/com/yizhuan/erban/avroom/activity/RoomInviteActivity.java b/app/src/main/java/com/yizhuan/erban/avroom/activity/RoomInviteActivity.java
index db00d2f0d..4beb62ffe 100644
--- a/app/src/main/java/com/yizhuan/erban/avroom/activity/RoomInviteActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/avroom/activity/RoomInviteActivity.java
@@ -106,6 +106,11 @@ public class RoomInviteActivity extends BaseMvpActivity list) {
+
+ }
+
@Override
public void onRequestChatMemberByPageSuccess(List memberList, int page) {
diff --git a/app/src/main/java/com/yizhuan/erban/avroom/adapter/OnlineUserAdapter.java b/app/src/main/java/com/yizhuan/erban/avroom/adapter/OnlineUserAdapter.java
index 6a7f3f686..f39a03045 100644
--- a/app/src/main/java/com/yizhuan/erban/avroom/adapter/OnlineUserAdapter.java
+++ b/app/src/main/java/com/yizhuan/erban/avroom/adapter/OnlineUserAdapter.java
@@ -11,6 +11,7 @@ import androidx.appcompat.widget.AppCompatImageView;
import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
+import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
import com.netease.nimlib.sdk.RequestCallbackWrapper;
@@ -41,7 +42,7 @@ import io.reactivex.disposables.Disposable;
* @author Administrator
* @date 2017/12/4
*/
-public class OnlineUserAdapter extends BaseMultiItemQuickAdapter {
+public class OnlineUserAdapter extends BaseQuickAdapter {
private boolean mIsHomeParty;
private Disposable mDisposable;
@@ -49,9 +50,7 @@ public class OnlineUserAdapter extends BaseMultiItemQuickAdapter 房间在线人数列表 (上麦,房主,游客,管理员)
+ *
+ * @author Administrator
+ * @date 2017/12/4
+ */
+public class OnlineUserAdapter2 extends BaseMultiItemQuickAdapter {
+
+ private boolean mIsHomeParty;
+ private Disposable mDisposable;
+ private Context context;
+ private OnRoomOnlineNumberChangeListener mListener;
+
+ public OnlineUserAdapter2(Context context, boolean isHomeParty) {
+ super(null);
+ addItemType(OnlineChatMember.NORMAL, R.layout.list_item_online_user);
+ addItemType(OnlineChatMember.NOBLE, R.layout.list_item_online_user_mystery);
+ mIsHomeParty = isHomeParty;
+ this.context = context;
+ }
+
+ @Override
+ public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
+ super.onAttachedToRecyclerView(recyclerView);
+ registerRoomEvent();
+ }
+
+ @Override
+ protected void convert(@NonNull BaseViewHolder baseViewHolder, OnlineChatMember onlineChatMember) {
+ if (onlineChatMember != null && onlineChatMember.chatRoomMember != null) {
+ if (onlineChatMember.getItemType() == OnlineChatMember.NORMAL) {
+ setNormalData(baseViewHolder, onlineChatMember);
+ } else {
+ setMysteryData();
+ }
+ }
+ }
+
+ private void setMysteryData() {
+ //do nothing
+ }
+
+ private void setNormalData(BaseViewHolder baseViewHolder, OnlineChatMember onlineChatMember) {
+ setSexData(baseViewHolder, onlineChatMember);
+
+ ImageView roomOnlineTag = baseViewHolder.getView(R.id.room_online_tag);
+ ImageView managerLogo = baseViewHolder.getView(R.id.manager_logo);
+ roomOnlineTag.setVisibility(onlineChatMember.isOnMic ? View.VISIBLE : View.GONE);
+ managerLogo.setVisibility((onlineChatMember.isAdmin || onlineChatMember.isRoomOwer)
+ ? View.VISIBLE : View.GONE);
+ managerLogo.setImageResource(onlineChatMember.isAdmin ? R.drawable.icon_admin_logo
+ : R.drawable.icon_user_list_room_ownner);
+
+ baseViewHolder.setText(R.id.nick, RegexUtil.getPrintableString(onlineChatMember.chatRoomMember.getNick()));
+
+ NobleAvatarView nobleAvatarView = baseViewHolder.getView(R.id.noble_avatar_view);
+ nobleAvatarView.setSize(37, 54, 0);
+ nobleAvatarView.setData(onlineChatMember.chatRoomMember);
+
+ // 官字
+ baseViewHolder.getView(R.id.iv_user_official).setVisibility(onlineChatMember.isOfficial() ? View.VISIBLE : View.GONE);
+ //经验等级
+ AppCompatImageView ivUserExper = baseViewHolder.getView(R.id.iv_user_exper);
+ String experLevelUrl = NobleUtil.getLevel(UserLevelResourceType.EXPER_URL, onlineChatMember.chatRoomMember);
+ boolean isExperLevelUrlEmpty = TextUtils.isEmpty(experLevelUrl);
+ ivUserExper.setVisibility(!isExperLevelUrlEmpty ? View.VISIBLE : View.GONE);
+ if (!isExperLevelUrlEmpty) {
+ ImageLoadUtils.loadImage(mContext, experLevelUrl, ivUserExper);
+ }
+ //魅力等级
+ AppCompatImageView ivUserCharm = baseViewHolder.getView(R.id.iv_user_charm);
+ String charmLevelUrl = NobleUtil.getLevel(UserLevelResourceType.CHARM_URL, onlineChatMember.chatRoomMember);
+ boolean isCharmLevelUrlEmpty = TextUtils.isEmpty(charmLevelUrl);
+ ivUserCharm.setVisibility(!isCharmLevelUrlEmpty ? View.VISIBLE : View.GONE);
+ if (!isCharmLevelUrlEmpty) {
+ ImageLoadUtils.loadImage(mContext, charmLevelUrl, ivUserCharm);
+ }
+
+ // 官方主播铭牌标识
+ String fixWord = NobleUtil.getLevel(UserInfo.OAC_NAME, onlineChatMember.chatRoomMember);
+ String iconPic = NobleUtil.getLevel(UserInfo.OAC_ICON, onlineChatMember.chatRoomMember);
+ View inOfficialMask = baseViewHolder.getView(R.id.in_official_mask);
+ if (!TextUtils.isEmpty(fixWord) && !TextUtils.isEmpty(iconPic)) {
+ inOfficialMask.setVisibility(View.VISIBLE);
+ TextView tvOfficialMask = inOfficialMask.findViewById(R.id.tv_official_mask);
+ if (tvOfficialMask != null) {
+ tvOfficialMask.setText(fixWord);
+ }
+
+ ImageView ivOfficialMask = inOfficialMask.findViewById(R.id.iv_official_mask);
+ if (ivOfficialMask != null) {
+ ImageLoadUtils.loadImage(mContext, iconPic, ivOfficialMask);
+ }
+
+ } else {
+ inOfficialMask.setVisibility(View.GONE);
+ }
+
+ // 铭牌
+ String namePlateWord = NobleUtil.getLevel(UserInfo.NAMEPLATE_WORD, onlineChatMember.chatRoomMember);
+ String namePlatePic = NobleUtil.getLevel(UserInfo.NAMEPLATE_PIC, onlineChatMember.chatRoomMember);
+ View inNamePlate = baseViewHolder.getView(R.id.in_nameplate);
+ if (!TextUtils.isEmpty(namePlateWord) && !TextUtils.isEmpty(namePlatePic)) {
+ inNamePlate.setVisibility(View.VISIBLE);
+ TextView tvNamePlate = inNamePlate.findViewById(R.id.tv_official_mask);
+ if (tvNamePlate != null) {
+ tvNamePlate.setText(namePlateWord);
+ }
+
+ ImageView ivNamePlate = inNamePlate.findViewById(R.id.iv_official_mask);
+ if (ivNamePlate != null) {
+ ImageLoadUtils.loadImage(mContext, namePlatePic, ivNamePlate);
+ }
+
+ } else {
+ inNamePlate.setVisibility(View.GONE);
+ }
+
+ AppCompatImageView ivUserLevel = baseViewHolder.getView(R.id.iv_noble_level);
+ String resource = (String) NobleUtil.getResource(NobleResourceType.KEY_BADGE, onlineChatMember.chatRoomMember);
+ if (TextUtils.isEmpty(resource)) {
+ ivUserLevel.setVisibility(View.GONE);
+ return;
+ }
+ ivUserLevel.setVisibility(View.VISIBLE);
+ NobleUtil.loadResource(resource, ivUserLevel);
+ }
+
+ private void setSexData(BaseViewHolder baseViewHolder, OnlineChatMember onlineChatMember) {
+ final ImageView sexImage = baseViewHolder.getView(R.id.sex);
+ String gender = NobleUtil.getLevel(UserInfo.GENDER, onlineChatMember.chatRoomMember);
+ if ("1".equals(gender)) {
+ sexImage.setVisibility(View.VISIBLE);
+ sexImage.setImageResource(R.drawable.ic_gender_male);
+ } else if ("2".equals(gender)) {
+ sexImage.setVisibility(View.VISIBLE);
+ sexImage.setImageResource(R.drawable.ic_gender_female);
+ } else {
+ NimUserInfo nimUserInfo = NimUserInfoCache.getInstance().getUserInfo(onlineChatMember.chatRoomMember.getAccount());
+ if (nimUserInfo == null) {
+ NimUserInfoCache.getInstance().getUserInfoFromRemote(onlineChatMember.chatRoomMember.getAccount(),
+ new RequestCallbackWrapper() {
+ @Override
+ public void onResult(int i, NimUserInfo nimUserInfo, Throwable throwable) {
+ if (nimUserInfo != null) {
+ if (nimUserInfo.getGenderEnum() == GenderEnum.MALE) {
+ sexImage.setVisibility(View.VISIBLE);
+ sexImage.setImageResource(R.drawable.ic_gender_male);
+ } else if (nimUserInfo.getGenderEnum() == GenderEnum.FEMALE) {
+ sexImage.setVisibility(View.VISIBLE);
+ sexImage.setImageResource(R.drawable.ic_gender_female);
+ } else {
+ sexImage.setVisibility(View.GONE);
+ }
+ }
+ }
+ });
+ } else {
+ if (nimUserInfo.getGenderEnum() == GenderEnum.MALE) {
+ sexImage.setVisibility(View.VISIBLE);
+ sexImage.setImageResource(R.drawable.ic_gender_male);
+ } else if (nimUserInfo.getGenderEnum() == GenderEnum.FEMALE) {
+ sexImage.setVisibility(View.VISIBLE);
+ sexImage.setImageResource(R.drawable.ic_gender_female);
+ } else {
+ sexImage.setVisibility(View.GONE);
+ }
+ }
+ }
+ }
+
+ private void registerRoomEvent() {
+ mDisposable = IMNetEaseManager.get()
+ .getChatRoomEventObservable()
+ .subscribe(roomEvent -> {
+ if (roomEvent == null) return;
+ int event = roomEvent.getEvent();
+ if (roomEvent.getEvent() == RoomEvent.ADD_BLACK_LIST ||
+ roomEvent.getEvent() == RoomEvent.DOWN_MIC ||
+ roomEvent.getEvent() == RoomEvent.KICK_OUT_ROOM) {
+ if (roomEvent.getEvent() == RoomEvent.ADD_BLACK_LIST ||
+ roomEvent.getEvent() == RoomEvent.KICK_OUT_ROOM) {
+ if (mListener != null
+ && !AvRoomDataManager.get().isOwner(AuthModel.get().getCurrentUid())) {
+ mListener.addMemberBlack();
+ return;
+ }
+ }
+ if (ListUtils.isListEmpty(mData)) return;
+ if (mIsHomeParty && roomEvent.getEvent() == RoomEvent.DOWN_MIC) {
+ updateDownUpMic(roomEvent.getAccount(), false);
+ return;
+ }
+
+ if (mListener != null)
+ mListener.addMemberBlack();
+ } else if (roomEvent.getEvent() == RoomEvent.ROOM_MANAGER_ADD
+ || roomEvent.getEvent() == RoomEvent.ROOM_MANAGER_REMOVE) {
+ updateManager(roomEvent);
+ } else if (roomEvent.getEvent() == RoomEvent.UP_MIC) {
+ updateDownUpMic(roomEvent.getAccount(), true);
+ } else if (event == RoomEvent.ROOM_MEMBER_IN) {
+ updateMemberIn(roomEvent);
+ } else if (event == RoomEvent.ROOM_MEMBER_EXIT) {
+ if (mListener != null) {
+ mListener.onMemberExit(roomEvent.getAccount(), mData);
+ }
+ }
+ });
+ }
+
+ private void updateMemberIn(RoomEvent roomEvent) {
+ if (mListener != null) {
+ mListener.onMemberIn(roomEvent.getAccount(), mData);
+ }
+ }
+
+ private void updateManager(RoomEvent roomEvent) {
+ if (mListener != null)
+ mListener.onUpdateMemberManager(roomEvent.getAccount(),
+ roomEvent.getEvent() == RoomEvent.ROOM_MANAGER_REMOVE, mData);
+ }
+
+ private void updateDownUpMic(String account, boolean isUpMic) {
+ if (mListener != null) {
+ mListener.onMemberDownUpMic(account, isUpMic, mData);
+ }
+ }
+
+ public void release() {
+ if (mDisposable != null) {
+ mDisposable.dispose();
+ mDisposable = null;
+ }
+ }
+
+ public void setListener(OnRoomOnlineNumberChangeListener listener) {
+ mListener = listener;
+ }
+
+ public interface OnRoomOnlineNumberChangeListener {
+ /**
+ * 成员进来回调
+ *
+ * @param account
+ */
+ void onMemberIn(String account, List dataList);
+
+ /**
+ * 成员出去回调
+ *
+ * @param account
+ * @param dataList
+ */
+ void onMemberExit(String account, List dataList);
+
+ /**
+ * 成员上下麦更新
+ *
+ * @param account
+ * @param isUpMic
+ * @param dataList
+ */
+ void onMemberDownUpMic(String account, boolean isUpMic,
+ List dataList);
+
+ /**
+ * 设置管理员回调
+ *
+ * @param account
+ * @param dataList
+ */
+ void onUpdateMemberManager(String account, boolean isRemoveManager,
+ List dataList);
+
+ void addMemberBlack();
+ }
+}
diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/OnlineUserFragment.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/OnlineUserFragment.java
index 871df8aea..f97d9ea2e 100644
--- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/OnlineUserFragment.java
+++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/OnlineUserFragment.java
@@ -23,6 +23,7 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.room.bean.OnlineChatMember;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
+import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.JavaUtil;
import com.yizhuan.xchat_android_library.utils.ListUtils;
@@ -65,16 +66,16 @@ public class OnlineUserFragment extends BaseMvpFragment data = mOnlineUserAdapter.getData();
- if (ListUtils.isListEmpty(data)) {
- mRefreshLayout.finishLoadmore();
- return;
- }
- loadData(data.get(data.size() - 1).chatRoomMember.getEnterTime());
+// if (!NetworkUtil.isNetAvailable(mContext)) {
+// mRefreshLayout.finishLoadmore();
+// return;
+// }
+// List data = mOnlineUserAdapter.getData();
+// if (ListUtils.isListEmpty(data)) {
+// mRefreshLayout.finishLoadmore();
+// return;
+// }
+// loadData(data.get(data.size() - 1).chatRoomMember.getEnterTime());
}
@Override
@@ -111,37 +112,42 @@ public class OnlineUserFragment extends BaseMvpFragment list) {
+ mOnlineUserAdapter.setNewData(list);
+ mRefreshLayout.finishRefresh();
+ }
+
@Override
public void onRequestChatMemberByPageSuccess(List chatRoomMemberList, int page) {
- mPage = page;
- if (!ListUtils.isListEmpty(chatRoomMemberList)) {
- //超管不显示
- Iterator iterator = chatRoomMemberList.iterator();
- while (iterator.hasNext()) {
- OnlineChatMember member = iterator.next();
- if (member != null && SuperAdminUtil.isSuperAdmin(member.chatRoomMember)) {
- iterator.remove();
- }
- }
- mOnlineUserAdapter.setNewData(chatRoomMemberList);
- if (mPage == Constants.PAGE_START) {
- mRefreshLayout.finishRefresh();
- } else {
- mRefreshLayout.finishLoadmore(0);
- }
- mPage++;
- } else {
- if (mPage == Constants.PAGE_START) {
- mRefreshLayout.finishRefresh();
- } else {
- mRefreshLayout.finishLoadmore(0);
- }
- }
+// mPage = page;
+// if (!ListUtils.isListEmpty(chatRoomMemberList)) {
+// //超管不显示
+// Iterator iterator = chatRoomMemberList.iterator();
+// while (iterator.hasNext()) {
+// OnlineChatMember member = iterator.next();
+// if (member != null && SuperAdminUtil.isSuperAdmin(member.chatRoomMember)) {
+// iterator.remove();
+// }
+// }
+// mOnlineUserAdapter.setNewData(chatRoomMemberList);
+// if (mPage == Constants.PAGE_START) {
+// mRefreshLayout.finishRefresh();
+// } else {
+// mRefreshLayout.finishLoadmore(0);
+// }
+// mPage++;
+// } else {
+// if (mPage == Constants.PAGE_START) {
+// mRefreshLayout.finishRefresh();
+// } else {
+// mRefreshLayout.finishLoadmore(0);
+// }
+// }
}
@Override
@@ -165,23 +171,23 @@ public class OnlineUserFragment extends BaseMvpFragment chatRoomMembers = mOnlineUserAdapter.getData();
- if (ListUtils.isListEmpty(chatRoomMembers)) return;
- OnlineChatMember onlineChatMember = chatRoomMembers.get(position);
- ChatRoomMember chatRoomMember = onlineChatMember.chatRoomMember;
- if (chatRoomMember != null) {
- if (onlineChatMember.getItemType() == OnlineChatMember.NOBLE) {
- return;
- }
- UserInfoDialog.showNewUserInfoDialog(mContext,
- JavaUtil.str2long(chatRoomMember.getAccount()),
- true,
- false,
- true,
- null);
- }
- }
+// if (currentRoom != null) {
+// List chatRoomMembers = mOnlineUserAdapter.getData();
+// if (ListUtils.isListEmpty(chatRoomMembers)) return;
+// OnlineChatMember onlineChatMember = chatRoomMembers.get(position);
+// ChatRoomMember chatRoomMember = onlineChatMember.chatRoomMember;
+// if (chatRoomMember != null) {
+// if (onlineChatMember.getItemType() == OnlineChatMember.NOBLE) {
+// return;
+// }
+// UserInfoDialog.showNewUserInfoDialog(mContext,
+// JavaUtil.str2long(chatRoomMember.getAccount()),
+// true,
+// false,
+// true,
+// null);
+// }
+// }
}
@Override
diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/OnlineUserFragment2.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/OnlineUserFragment2.java
new file mode 100644
index 000000000..feb29c87a
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/OnlineUserFragment2.java
@@ -0,0 +1,229 @@
+package com.yizhuan.erban.avroom.fragment;
+
+import android.view.View;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.netease.nim.uikit.common.util.sys.NetworkUtil;
+import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
+import com.orhanobut.logger.Logger;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnRefreshLoadmoreListener;
+import com.yizhuan.erban.R;
+import com.yizhuan.erban.avroom.adapter.OnlineUserAdapter2;
+import com.yizhuan.erban.avroom.presenter.HomePartyUserListPresenter;
+import com.yizhuan.erban.avroom.view.IHomePartyUserListView;
+import com.yizhuan.erban.base.BaseMvpFragment;
+import com.yizhuan.erban.ui.widget.UserInfoDialog;
+import com.yizhuan.xchat_android_core.Constants;
+import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
+import com.yizhuan.xchat_android_core.room.bean.OnlineChatMember;
+import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
+import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
+import com.yizhuan.xchat_android_core.user.bean.UserInfo;
+import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
+import com.yizhuan.xchat_android_library.utils.JavaUtil;
+import com.yizhuan.xchat_android_library.utils.ListUtils;
+import com.yizhuan.xchat_android_library.utils.ResUtil;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * 在线用户列表
+ *
+ * @author Administrator
+ * @date 2017/12/4
+ */
+@CreatePresenter(HomePartyUserListPresenter.class)
+public class OnlineUserFragment2 extends BaseMvpFragment
+ implements BaseQuickAdapter.OnItemClickListener, IHomePartyUserListView, OnlineUserAdapter2.OnRoomOnlineNumberChangeListener {
+ private RecyclerView mRecyclerView;
+ private SmartRefreshLayout mRefreshLayout;
+
+ private OnlineUserAdapter2 mOnlineUserAdapter;
+ private int mPage = Constants.PAGE_START;
+ private boolean isShowToUser = false;
+
+ @Override
+ public void onDestroy() {
+ if (mOnlineUserAdapter != null)
+ mOnlineUserAdapter.release();
+ super.onDestroy();
+ }
+
+ @Override
+ public void onFindViews() {
+ mRecyclerView = mView.findViewById(R.id.recycler_view);
+ mRefreshLayout = mView.findViewById(R.id.refresh_layout);
+ }
+
+ @Override
+ public void onSetListener() {
+ mRefreshLayout.setOnRefreshLoadmoreListener(new OnRefreshLoadmoreListener() {
+ @Override
+ public void onLoadmore(RefreshLayout refreshLayout) {
+ if (!NetworkUtil.isNetAvailable(mContext)) {
+ mRefreshLayout.finishLoadmore();
+ return;
+ }
+ List data = mOnlineUserAdapter.getData();
+ if (ListUtils.isListEmpty(data)) {
+ mRefreshLayout.finishLoadmore();
+ return;
+ }
+ loadData(data.get(data.size() - 1).chatRoomMember.getEnterTime());
+ }
+
+ @Override
+ public void onRefresh(RefreshLayout refreshLayout) {
+ if (!NetworkUtil.isNetAvailable(mContext)) {
+ mRefreshLayout.finishRefresh();
+ return;
+ }
+ firstLoad();
+ }
+ });
+ }
+
+ @Override
+ public void initiate() {
+ mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
+ mOnlineUserAdapter = new OnlineUserAdapter2(mContext, true);
+ mRecyclerView.setAdapter(mOnlineUserAdapter);
+ mOnlineUserAdapter.setOnItemClickListener(this);
+ mOnlineUserAdapter.setListener(this);
+ firstLoad();
+ }
+
+
+ @Override
+ public int getRootLayoutId() {
+ return R.layout.common_refresh_recycler_view;
+ }
+
+
+ public void firstLoad() {
+ mPage = Constants.PAGE_START;
+ loadData(0);
+ }
+
+ private void loadData(long time) {
+ getMvpPresenter().requestChatMemberByPage(mPage, time,
+ mOnlineUserAdapter == null ? null : mOnlineUserAdapter.getData());
+ }
+
+
+ @Override
+ public void onRequestRoomOnlineListSuccess(List list) {
+
+ }
+
+ @Override
+ public void onRequestChatMemberByPageSuccess(List chatRoomMemberList, int page) {
+ mPage = page;
+ if (!ListUtils.isListEmpty(chatRoomMemberList)) {
+ //超管不显示
+ Iterator iterator = chatRoomMemberList.iterator();
+ while (iterator.hasNext()) {
+ OnlineChatMember member = iterator.next();
+ if (member != null && SuperAdminUtil.isSuperAdmin(member.chatRoomMember)) {
+ iterator.remove();
+ }
+ }
+ mOnlineUserAdapter.setNewData(chatRoomMemberList);
+ if (mPage == Constants.PAGE_START) {
+ mRefreshLayout.finishRefresh();
+ } else {
+ mRefreshLayout.finishLoadmore(0);
+ }
+ mPage++;
+ } else {
+ if (mPage == Constants.PAGE_START) {
+ mRefreshLayout.finishRefresh();
+ } else {
+ mRefreshLayout.finishLoadmore(0);
+ }
+ }
+ }
+
+ @Override
+ public void onRequestChatMemberByPageFail(String errorStr, int page) {
+ Logger.i(ResUtil.getString(R.string.avroom_fragment_onlineuserfragment_01) + page);
+ mPage = page;
+ if (mPage == Constants.PAGE_START) {
+ mRefreshLayout.finishRefresh();
+ } else {
+ mRefreshLayout.finishLoadmore(0);
+ }
+ }
+
+ @Override
+ public void onMemberInRefresh() {
+// if (!isResumed()) return;
+// if (!isShowToUser()) return;
+// firstLoad();
+ }
+
+ @Override
+ public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int position) {
+ RoomInfo currentRoom = AvRoomDataManager.get().mCurrentRoomInfo;
+ if (currentRoom != null) {
+ List chatRoomMembers = mOnlineUserAdapter.getData();
+ if (ListUtils.isListEmpty(chatRoomMembers)) return;
+ OnlineChatMember onlineChatMember = chatRoomMembers.get(position);
+ ChatRoomMember chatRoomMember = onlineChatMember.chatRoomMember;
+ if (chatRoomMember != null) {
+ if (onlineChatMember.getItemType() == OnlineChatMember.NOBLE) {
+ return;
+ }
+ UserInfoDialog.showNewUserInfoDialog(mContext,
+ JavaUtil.str2long(chatRoomMember.getAccount()),
+ true,
+ false,
+ true,
+ null);
+ }
+ }
+ }
+
+ @Override
+ public void onMemberIn(String account, List dataList) {
+// if (!isResumed()) return;
+// getMvpPresenter().onMemberInRefreshData(account, dataList, mPage);
+ }
+
+ @Override
+ public void onMemberExit(String account, List dataList) {
+// if (!isResumed()) return;
+// if (!isShowToUser()) return;
+// firstLoad();
+ }
+
+ @Override
+ public void onMemberDownUpMic(String account, boolean isUpMic, List dataList) {
+ if (!isResumed()) return;
+ getMvpPresenter().onMemberDownUpMic(account, isUpMic, dataList, mPage);
+ }
+
+ @Override
+ public void onUpdateMemberManager(String account, boolean isRemoveManager, List dataList) {
+ if (!isResumed()) return;
+ getMvpPresenter().onUpdateMemberManager(account, dataList, isRemoveManager, mPage);
+ }
+
+ @Override
+ public void addMemberBlack() {
+ if (!isResumed()) return;
+ if (!isShowToUser()) return;
+ firstLoad();
+ }
+
+ public boolean isShowToUser() {
+ return isShowToUser;
+ }
+
+}
diff --git a/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyUserListPresenter.java b/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyUserListPresenter.java
index a1c3f78af..4cb5f99a7 100644
--- a/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyUserListPresenter.java
+++ b/app/src/main/java/com/yizhuan/erban/avroom/presenter/HomePartyUserListPresenter.java
@@ -51,6 +51,19 @@ public class HomePartyUserListPresenter extends BaseMvpPresenter {
+ if (getMvpView() != null) {
+ if (data != null) {
+ getMvpView().onRequestRoomOnlineListSuccess(data);
+ } else {
+ getMvpView().onRequestChatMemberByPageFail(throwable.getMessage(), 1);
+ }
+ }
+ });
+ }
+
public void onMemberDownUpMic(String account, boolean isUpMic, List dataList,
final int page) {
mHomePartyUserListMode.onMemberDownUpMic(account, isUpMic, dataList)
diff --git a/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyUserListView.java b/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyUserListView.java
index 09a6c6d09..6aec68d9e 100644
--- a/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyUserListView.java
+++ b/app/src/main/java/com/yizhuan/erban/avroom/view/IHomePartyUserListView.java
@@ -3,6 +3,7 @@ package com.yizhuan.erban.avroom.view;
import com.yizhuan.xchat_android_core.room.bean.OnlineChatMember;
+import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
import java.util.List;
@@ -14,6 +15,9 @@ import java.util.List;
* @date 2017/12/8
*/
public interface IHomePartyUserListView extends IMvpBaseView {
+
+ void onRequestRoomOnlineListSuccess(List list);
+
void onRequestChatMemberByPageSuccess(List memberList, int page);
void onRequestChatMemberByPageFail(String errorStr, int page);
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/model/HomePartyUserListModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/model/HomePartyUserListModel.java
index 962f451a9..8fb779705 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/room/model/HomePartyUserListModel.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/model/HomePartyUserListModel.java
@@ -9,11 +9,17 @@ import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
import com.orhanobut.logger.Logger;
import com.yizhuan.xchat_android_core.R;
import com.yizhuan.xchat_android_core.Constants;
+import com.yizhuan.xchat_android_core.bean.PrivateChatLimitInfo;
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.im.custom.bean.User;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.room.bean.OnlineChatMember;
import com.yizhuan.xchat_android_core.room.model.inteface.IHomePartyUserListModel;
+import com.yizhuan.xchat_android_core.user.bean.UserInfo;
+import com.yizhuan.xchat_android_core.utils.net.RxHelper;
+import com.yizhuan.xchat_android_library.net.rxnet.RxNet;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
@@ -25,6 +31,8 @@ import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
/**
* 轰趴房用户列表网络处理
@@ -34,6 +42,8 @@ import io.reactivex.schedulers.Schedulers;
*/
public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyUserListModel {
+ private HomePartyUserListModel.Api api = RxNet.create(HomePartyUserListModel.Api.class);
+
/**
* 分页获取房间成员:第一页包含队列成员,固定成员,游客50人,之后每一页获取游客50人
*
@@ -220,4 +230,18 @@ public class HomePartyUserListModel extends RoomBaseModel implements IHomePartyU
.observeOn(AndroidSchedulers.mainThread());
}
+ public Single> getRoomOnlineList(long roomUid) {
+ return api.getRoomOnlineList(roomUid)
+ .compose(RxHelper.handleBeanData())
+ .compose(RxHelper.handleSchedulers());
+ }
+
+ private interface Api {
+ /**
+ * 房间在线列表
+ * @return
+ */
+ @GET("/room/v2/online")
+ Single>> getRoomOnlineList(@Query("roomUid") long roomUid);
+ }
}
diff --git a/gradle.properties b/gradle.properties
index 341046780..808891ffe 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -31,8 +31,8 @@ COMPILE_SDK_VERSION=33
MIN_SDK_VERSION=21
TARGET_SDK_VERSION=33
-version_name=2.2.0
-version_code=2200
+version_name=2.5.0
+version_code=2500
#systemProp.https.proxyHost=127.0.0.1
#systemProp.https.proxyPort=7890
\ No newline at end of file