移除成员列表优化
This commit is contained in:
@@ -1022,9 +1022,6 @@
|
||||
android:name=".module_hall.team.activity.TeamEditActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".module_hall.hall.activity.GroupMemberListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".module_hall.hall.activity.RemoveMemberListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
|
@@ -61,7 +61,7 @@ public class AdminAddActivity extends BaseMvpActivity<IAdminAddView, AdminAddPre
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_group_member);
|
||||
setContentView(R.layout.activity_admin_add);
|
||||
|
||||
ButterKnife.bind(this);
|
||||
|
||||
|
@@ -1,385 +0,0 @@
|
||||
package com.yizhuan.erban.module_hall.hall.activity;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.UIHelper;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
import com.yizhuan.erban.module_hall.HallDataManager;
|
||||
import com.yizhuan.erban.module_hall.hall.adapter.GroupMemberListAdapter;
|
||||
import com.yizhuan.erban.module_hall.hall.presenter.GroupMemberPresenter;
|
||||
import com.yizhuan.erban.module_hall.hall.view.IGroupMemberView;
|
||||
import com.yizhuan.erban.module_hall.hall.view.dialog.HallMenuDialog;
|
||||
import com.yizhuan.erban.module_hall.secretcode.PwdCodeMgr;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.AuthInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.MemberInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.income.event.UpdateMemberListEvent;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
@CreatePresenter(GroupMemberPresenter.class)
|
||||
public class GroupMemberListActivity extends BaseMvpActivity<IGroupMemberView, GroupMemberPresenter>
|
||||
implements IGroupMemberView{
|
||||
|
||||
@BindView(R.id.tv_count)
|
||||
TextView tvCount;
|
||||
@BindView(R.id.srl_group)
|
||||
SwipeRefreshLayout srlGroup;
|
||||
@BindView(R.id.recycler_view)
|
||||
RecyclerView recyclerView;
|
||||
|
||||
private GroupMemberListAdapter mGroupMemberListAdapter;
|
||||
private List<MemberInfo> listInfos = new ArrayList<>();
|
||||
private List<AuthInfo> mAuthInfoList;
|
||||
|
||||
private int page = 1;
|
||||
|
||||
private int pageSize = 50;
|
||||
|
||||
private boolean isLoading, noMoreData;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context, GroupMemberListActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_group_member);
|
||||
|
||||
ButterKnife.bind(this);
|
||||
|
||||
initTitleBar("成员列表");
|
||||
setRightOption();
|
||||
|
||||
srlGroup.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
if (isLoading) {
|
||||
return;
|
||||
}
|
||||
page = 1;
|
||||
loadMembers();
|
||||
}
|
||||
});
|
||||
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
mGroupMemberListAdapter = new GroupMemberListAdapter(this, null);
|
||||
mGroupMemberListAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
@Override
|
||||
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
List<MemberInfo> memberInfoList = mGroupMemberListAdapter.getData();
|
||||
if (memberInfoList.size() > 0) {
|
||||
MemberInfo memberInfo = memberInfoList.get(position);
|
||||
|
||||
int type = mGroupMemberListAdapter.getmType();
|
||||
if (type == GroupMemberListAdapter.TYPE_REMOVE) {
|
||||
if (view.getId() == R.id.iv_remove) {
|
||||
showRemoveDialog(memberInfo.getUid(), memberInfo.getRoleType(), memberInfo.getNick());
|
||||
}
|
||||
} else {
|
||||
UIHelper.showUserInfoAct(GroupMemberListActivity.this, memberInfo.getUid());
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
recyclerView.setAdapter(mGroupMemberListAdapter);
|
||||
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
||||
super.onScrollStateChanged(recyclerView, newState);
|
||||
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
||||
if (isLoading || noMoreData) {
|
||||
return;
|
||||
}
|
||||
LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
|
||||
int lastfirst = manager.findLastVisibleItemPosition();
|
||||
int itemCount = mGroupMemberListAdapter.getItemCount();
|
||||
if (lastfirst >= itemCount - 2) {
|
||||
loadMembers();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
setTvCount(0);
|
||||
loadMembers();
|
||||
getMvpPresenter().getHallAuths();
|
||||
|
||||
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void displayNotEmptyQueuingMic(UpdateMemberListEvent event) {
|
||||
onReloadDate();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReloadDate() {
|
||||
page = 1;
|
||||
loadMembers();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadMembers() {
|
||||
isLoading = true;
|
||||
HallModel.get().getAllMembers(HallDataManager.get().getHallId(), page, pageSize)
|
||||
.compose(RxHelper.bindActivity(this))
|
||||
.subscribe((listMemberInfo, throwable) -> {
|
||||
srlGroup.setRefreshing(false);
|
||||
isLoading = false;
|
||||
if (throwable != null) {
|
||||
Logger.i("模厅成员加载失败...");
|
||||
if (page == 1) {
|
||||
showNetworkErr();
|
||||
}
|
||||
} else {
|
||||
int count = listMemberInfo.getCount();
|
||||
setTvCount(count);
|
||||
List<MemberInfo> list = listMemberInfo.getMembers();
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
}
|
||||
if (list.size() == 0) {
|
||||
noMoreData = true;
|
||||
if (page == 1) {
|
||||
showNoData();
|
||||
}
|
||||
} else {
|
||||
noMoreData = false;
|
||||
hideStatus();
|
||||
if (page == 1) {
|
||||
mGroupMemberListAdapter.setNewData(list);
|
||||
} else {
|
||||
mGroupMemberListAdapter.addData(list);
|
||||
}
|
||||
page ++;
|
||||
}
|
||||
mGroupMemberListAdapter.setmType(GroupMemberListAdapter.TYPE_REMOVE);
|
||||
mGroupMemberListAdapter.notifyDataSetChanged();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void setRightOption() {
|
||||
mTitleBar.addAction(new TitleBar.ImageAction(R.drawable.ic_hall_member_search) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
MemberSearchActivity.start(GroupMemberListActivity.this);
|
||||
}
|
||||
});
|
||||
|
||||
// mTitleBar.addAction(new TitleBar.ImageAction(R.drawable.ic_hall_member_more) {
|
||||
// @Override
|
||||
// public void performAction(View view) {
|
||||
// moreOption(view, mAuthInfoList);
|
||||
// }
|
||||
// });
|
||||
|
||||
}
|
||||
|
||||
private int mCount;
|
||||
private void setTvCount(int count) {
|
||||
mCount = count;
|
||||
tvCount.setText("总人数:" + mCount + "人");
|
||||
}
|
||||
|
||||
private void moreOption(View attachView, List<AuthInfo> authInfoList) {
|
||||
|
||||
if (authInfoList != null && authInfoList.size() > 0) {
|
||||
HallMenuDialog dialog = new HallMenuDialog(this, attachView, authInfoList, true);
|
||||
dialog.setOnMenuClickListener(new HallMenuDialog.OnMenuClickListener() {
|
||||
@Override
|
||||
public void callback(String code) {
|
||||
jumpCode(code);
|
||||
}
|
||||
});
|
||||
|
||||
dialog.show();
|
||||
} else {
|
||||
toast("未分配权限");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void jumpCode(String code) {
|
||||
switch (code) {
|
||||
case AuthInfo.AUTH_APPLY_HALL_EXIT:
|
||||
showExitDialog();
|
||||
break;
|
||||
|
||||
case AuthInfo.AUTH_MEMBER_JOIN_MANAGER:
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HALL_ADDMEMBERS_CLICK,
|
||||
"添加成员-成员列表");
|
||||
PwdCodeMgr.showShareCodeDialog(context);
|
||||
break;
|
||||
|
||||
case AuthInfo.AUTH_MEMBER_EXIT_MANAGER:
|
||||
mGroupMemberListAdapter.setmType(GroupMemberListAdapter.TYPE_REMOVE);
|
||||
mGroupMemberListAdapter.notifyDataSetChanged();
|
||||
break;
|
||||
|
||||
case AuthInfo.AUTH_HALL_MANAGER_SET:
|
||||
AdminListActivity.start(GroupMemberListActivity.this);
|
||||
break;
|
||||
default:
|
||||
Logger.e("本版本不能识别的权限");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void statusNone() {
|
||||
mGroupMemberListAdapter.setmType(GroupMemberListAdapter.TYPE_NONE);
|
||||
mGroupMemberListAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
|
||||
if (mGroupMemberListAdapter.getmType() == GroupMemberListAdapter.TYPE_REMOVE) {
|
||||
statusNone();
|
||||
} else
|
||||
super.onBackPressed();
|
||||
|
||||
}
|
||||
|
||||
private void showExitDialog() {
|
||||
CharSequence text = getMvpPresenter().getExitTips(this);
|
||||
getDialogManager().showOkCancelDialog(text, new DialogManager.OkCancelDialogListener() {
|
||||
@Override
|
||||
public void onCancel() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk() {
|
||||
getMvpPresenter().quit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private long mTargetUid;
|
||||
private void showRemoveDialog(long targetUid, int targetRoleType, String targetNick) {
|
||||
mTargetUid = targetUid;
|
||||
SpannableString spannableString = getMvpPresenter().getRemoveTips(this, targetRoleType, targetNick);
|
||||
|
||||
getDialogManager().showOkCancelWithTitleDialog("提示", spannableString, "确定", "取消", new DialogManager.OkCancelDialogListener() {
|
||||
@Override
|
||||
public void onCancel() {
|
||||
mTargetUid = -1;
|
||||
statusNone();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk() {
|
||||
getMvpPresenter().remove(targetUid);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onLeftClickListener() {
|
||||
onBackPressed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getHallAuthsSuccess(List<AuthInfo> authInfoList) {
|
||||
mAuthInfoList = authInfoList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getHallAuthsFail(String message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void quitSuccess(String message) {
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void quitFail(String message) {
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAllMembersSuccess(List<MemberInfo> memberInfoList) {
|
||||
hideStatus();
|
||||
mGroupMemberListAdapter.setNewData(memberInfoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAllMembersFail(String message) {
|
||||
hideStatus();
|
||||
showNoData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeSuccess(String message) {
|
||||
if (mTargetUid == -1)
|
||||
return;
|
||||
|
||||
List<MemberInfo> memberInfoList = mGroupMemberListAdapter.getData();
|
||||
if (memberInfoList.size() > 0) {
|
||||
for (MemberInfo memberInfo : memberInfoList) {
|
||||
if (memberInfo.getUid() == mTargetUid) {
|
||||
memberInfoList.remove(memberInfo);
|
||||
|
||||
if (mCount > 0) {
|
||||
mCount--;
|
||||
setTvCount(mCount);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
statusNone();
|
||||
mTargetUid = -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeFail(String message) {
|
||||
mTargetUid = -1;
|
||||
toast(message);
|
||||
}
|
||||
}
|
@@ -206,10 +206,11 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
loadHallList();
|
||||
}
|
||||
});
|
||||
//如果用户只是个单纯的族长,不显示设置
|
||||
//如果用户只是族长而且不是会长,隐藏设置
|
||||
UserModel.get().getCurrentUserInfo()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(userInfo -> setSettingOption(HallDataManager.get().isManager() || !userInfo.isUserIsClanElder()));
|
||||
.subscribe(userInfo -> setSettingOption(userInfo.isUserIsClanElder() &&
|
||||
HallDataManager.get().getRoleType() != RoleType.OWNER));
|
||||
|
||||
HallModel.get().getUserHallAndClan(AuthModel.get().getCurrentUid())
|
||||
.compose(bindToLifecycle())
|
||||
@@ -295,13 +296,13 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
/**
|
||||
* 设置权限, 房主才展示
|
||||
*
|
||||
* @param hasOption true:房主
|
||||
* @param gone true:隐藏
|
||||
*/
|
||||
private void setSettingOption(boolean hasOption) {
|
||||
if (hasOption) {
|
||||
ivSetting.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
private void setSettingOption(boolean gone) {
|
||||
if (gone) {
|
||||
ivSetting.setVisibility(View.GONE);
|
||||
} else {
|
||||
ivSetting.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -4,11 +4,8 @@ import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.text.Editable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
|
||||
@@ -16,18 +13,20 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.UIHelper;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.common.EmptyViewHelper;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
import com.yizhuan.erban.module_hall.HallDataManager;
|
||||
import com.yizhuan.erban.module_hall.hall.adapter.GroupMemberListAdapter;
|
||||
import com.yizhuan.erban.module_hall.hall.presenter.GroupMemberPresenter;
|
||||
import com.yizhuan.erban.module_hall.hall.view.IGroupMemberView;
|
||||
import com.yizhuan.erban.module_hall.hall.presenter.RemoveMemberPresenter;
|
||||
import com.yizhuan.erban.module_hall.hall.view.IRemoveMemberView;
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate;
|
||||
import com.yizhuan.erban.ui.widget.TextWatcherSimple;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.AuthInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.MemberInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.income.event.UpdateMemberListEvent;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
@@ -45,9 +44,9 @@ import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
|
||||
@CreatePresenter(GroupMemberPresenter.class)
|
||||
public class RemoveMemberListActivity extends BaseMvpActivity<IGroupMemberView, GroupMemberPresenter>
|
||||
implements IGroupMemberView{
|
||||
@CreatePresenter(RemoveMemberPresenter.class)
|
||||
public class RemoveMemberListActivity extends BaseMvpActivity<IRemoveMemberView, RemoveMemberPresenter>
|
||||
implements IRemoveMemberView {
|
||||
|
||||
@BindView(R.id.srl_group)
|
||||
SwipeRefreshLayout srlGroup;
|
||||
@@ -55,32 +54,20 @@ public class RemoveMemberListActivity extends BaseMvpActivity<IGroupMemberView,
|
||||
RecyclerView recyclerView;
|
||||
@BindView(R.id.et_search)
|
||||
EditText etSearch;
|
||||
private static final int MSG_UPDATE_SEARCH_RESULT = 1001;
|
||||
|
||||
private GroupMemberListAdapter mGroupMemberListAdapter;
|
||||
private List<MemberInfo> searchList = new ArrayList<>();
|
||||
private List<MemberInfo> orignalList = new ArrayList<>();
|
||||
private List<AuthInfo> mAuthInfoList;
|
||||
private final List<MemberInfo> searchList = new ArrayList<>();
|
||||
private final List<MemberInfo> orignalList = new ArrayList<>();
|
||||
|
||||
private RVDelegate<MemberInfo> rvDelegate;
|
||||
|
||||
private int page = 1;
|
||||
|
||||
private int pageSize = 50;
|
||||
|
||||
private boolean isLoading, noMoreData;
|
||||
private final int pageSize = 20;
|
||||
|
||||
private CharSequence searchStr;
|
||||
|
||||
private Handler mHandler = new Handler(){
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
switch (msg.what){
|
||||
case MSG_UPDATE_SEARCH_RESULT:
|
||||
mGroupMemberListAdapter.setNewData(searchList);
|
||||
mGroupMemberListAdapter.notifyDataSetChanged();
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
private long mTargetUid;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context, RemoveMemberListActivity.class);
|
||||
@@ -94,61 +81,34 @@ public class RemoveMemberListActivity extends BaseMvpActivity<IGroupMemberView,
|
||||
|
||||
ButterKnife.bind(this);
|
||||
|
||||
etSearch.addTextChangedListener(new SearchListener());
|
||||
srlGroup.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
etSearch.addTextChangedListener(new TextWatcherSimple() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
if (isLoading) {
|
||||
return;
|
||||
}
|
||||
page = 1;
|
||||
loadMembers();
|
||||
public void afterTextChanged(Editable s) {
|
||||
searchStr = s;
|
||||
}
|
||||
});
|
||||
srlGroup.setOnRefreshListener(() -> loadMembers(true));
|
||||
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
mGroupMemberListAdapter = new GroupMemberListAdapter(this, null);
|
||||
mGroupMemberListAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
@Override
|
||||
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
List<MemberInfo> memberInfoList = mGroupMemberListAdapter.getData();
|
||||
if (memberInfoList.size() > 0) {
|
||||
MemberInfo memberInfo = memberInfoList.get(position);
|
||||
|
||||
int type = mGroupMemberListAdapter.getmType();
|
||||
if (type == GroupMemberListAdapter.TYPE_REMOVE) {
|
||||
if (view.getId() == R.id.iv_remove) {
|
||||
showRemoveDialog(memberInfo.getUid(), memberInfo.getRoleType(), memberInfo.getNick());
|
||||
}
|
||||
} else {
|
||||
UIHelper.showUserInfoAct(RemoveMemberListActivity.this, memberInfo.getUid());
|
||||
}
|
||||
}
|
||||
mGroupMemberListAdapter.setmType(GroupMemberListAdapter.TYPE_REMOVE);
|
||||
rvDelegate = new RVDelegate.Builder<MemberInfo>()
|
||||
.setAdapter(mGroupMemberListAdapter)
|
||||
.setLayoutManager(new LinearLayoutManager(this))
|
||||
.setPageSize(pageSize)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无内容"))
|
||||
.setRecyclerView(recyclerView)
|
||||
.build();
|
||||
mGroupMemberListAdapter.setOnLoadMoreListener(() -> loadMembers(false), recyclerView);
|
||||
mGroupMemberListAdapter.setOnItemChildClickListener((adapter, view, position) -> {
|
||||
MemberInfo memberInfo = mGroupMemberListAdapter.getItem(position);
|
||||
if (memberInfo == null) return;
|
||||
if (view.getId() == R.id.iv_remove) {
|
||||
showRemoveDialog(memberInfo.getUid(), memberInfo.getRoleType(), memberInfo.getNick());
|
||||
} else {
|
||||
UIHelper.showUserInfoAct(RemoveMemberListActivity.this, memberInfo.getUid());
|
||||
}
|
||||
});
|
||||
|
||||
recyclerView.setAdapter(mGroupMemberListAdapter);
|
||||
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
||||
super.onScrollStateChanged(recyclerView, newState);
|
||||
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
||||
if (isLoading || noMoreData) {
|
||||
return;
|
||||
}
|
||||
LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
|
||||
int lastfirst = manager.findLastVisibleItemPosition();
|
||||
int itemCount = mGroupMemberListAdapter.getItemCount();
|
||||
if (lastfirst >= itemCount - 2) {
|
||||
loadMembers();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
loadMembers();
|
||||
getMvpPresenter().getHallAuths();
|
||||
|
||||
|
||||
loadMembers(true);
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
@@ -165,67 +125,28 @@ public class RemoveMemberListActivity extends BaseMvpActivity<IGroupMemberView,
|
||||
|
||||
@Override
|
||||
public void onReloadDate() {
|
||||
page = 1;
|
||||
loadMembers();
|
||||
loadMembers(true);
|
||||
}
|
||||
|
||||
private void loadMembers() {
|
||||
isLoading = true;
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadMembers(boolean refresh) {
|
||||
page = refresh ? 1 : (page + 1);
|
||||
HallModel.get().getAllMembers(HallDataManager.get().getHallId(), page, pageSize)
|
||||
.compose(RxHelper.bindActivity(this))
|
||||
.subscribe((listMemberInfo, throwable) -> {
|
||||
srlGroup.setRefreshing(false);
|
||||
isLoading = false;
|
||||
if (throwable != null) {
|
||||
Logger.i("模厅成员加载失败...");
|
||||
if (page == 1) {
|
||||
showNetworkErr();
|
||||
}
|
||||
rvDelegate.loadErr(refresh);
|
||||
} else {
|
||||
List<MemberInfo> list = listMemberInfo.getMembers();
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
}
|
||||
if (list.size() == 0) {
|
||||
noMoreData = true;
|
||||
if (page == 1) {
|
||||
showNoData();
|
||||
}
|
||||
} else {
|
||||
noMoreData = false;
|
||||
hideStatus();
|
||||
if (page == 1) {
|
||||
mGroupMemberListAdapter.setNewData(list);
|
||||
} else {
|
||||
mGroupMemberListAdapter.addData(list);
|
||||
}
|
||||
page ++;
|
||||
}
|
||||
rvDelegate.loadData(listMemberInfo.getMembers(), refresh);
|
||||
orignalList.clear();
|
||||
orignalList.addAll(mGroupMemberListAdapter.getData());
|
||||
mGroupMemberListAdapter.setmType(GroupMemberListAdapter.TYPE_REMOVE);
|
||||
mGroupMemberListAdapter.notifyDataSetChanged();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void statusNone() {
|
||||
mGroupMemberListAdapter.setmType(GroupMemberListAdapter.TYPE_NONE);
|
||||
mGroupMemberListAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
|
||||
if (mGroupMemberListAdapter.getmType() == GroupMemberListAdapter.TYPE_REMOVE) {
|
||||
statusNone();
|
||||
} else
|
||||
super.onBackPressed();
|
||||
|
||||
}
|
||||
|
||||
private long mTargetUid;
|
||||
private void showRemoveDialog(long targetUid, int targetRoleType, String targetNick) {
|
||||
mTargetUid = targetUid;
|
||||
SpannableString spannableString = getMvpPresenter().getRemoveTips(this, targetRoleType, targetNick);
|
||||
@@ -234,7 +155,6 @@ public class RemoveMemberListActivity extends BaseMvpActivity<IGroupMemberView,
|
||||
@Override
|
||||
public void onCancel() {
|
||||
mTargetUid = -1;
|
||||
// statusNone();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -246,7 +166,7 @@ public class RemoveMemberListActivity extends BaseMvpActivity<IGroupMemberView,
|
||||
}
|
||||
|
||||
@SuppressLint("NonConstantResourceId")
|
||||
@OnClick({R.id.iv_back,R.id.tv_search})
|
||||
@OnClick({R.id.iv_back, R.id.tv_search})
|
||||
public void onViewClicked(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.iv_back:
|
||||
@@ -263,38 +183,6 @@ public class RemoveMemberListActivity extends BaseMvpActivity<IGroupMemberView,
|
||||
onBackPressed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getHallAuthsSuccess(List<AuthInfo> authInfoList) {
|
||||
mAuthInfoList = authInfoList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getHallAuthsFail(String message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void quitSuccess(String message) {
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void quitFail(String message) {
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAllMembersSuccess(List<MemberInfo> memberInfoList) {
|
||||
hideStatus();
|
||||
mGroupMemberListAdapter.setNewData(memberInfoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAllMembersFail(String message) {
|
||||
hideStatus();
|
||||
showNoData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeSuccess(String message) {
|
||||
if (mTargetUid == -1)
|
||||
@@ -302,15 +190,15 @@ public class RemoveMemberListActivity extends BaseMvpActivity<IGroupMemberView,
|
||||
|
||||
List<MemberInfo> memberInfoList = mGroupMemberListAdapter.getData();
|
||||
if (memberInfoList.size() > 0) {
|
||||
for (MemberInfo memberInfo : memberInfoList) {
|
||||
for (int i = 0; i < memberInfoList.size(); i++) {
|
||||
MemberInfo memberInfo = memberInfoList.get(i);
|
||||
if (memberInfo.getUid() == mTargetUid) {
|
||||
memberInfoList.remove(memberInfo);
|
||||
mGroupMemberListAdapter.remove(i);
|
||||
orignalList.remove(memberInfo);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
statusNone();
|
||||
mTargetUid = -1;
|
||||
}
|
||||
|
||||
@@ -320,56 +208,24 @@ public class RemoveMemberListActivity extends BaseMvpActivity<IGroupMemberView,
|
||||
toast(message);
|
||||
}
|
||||
|
||||
class SearchListener implements TextWatcher {
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {//表示最终内容
|
||||
// Log.d("afterTextChanged", s.toString());
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param s
|
||||
* @param start 开始的位置
|
||||
* @param count 被改变的旧内容数
|
||||
* @param after 改变后的内容数量
|
||||
*/
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
//这里的s表示改变之前的内容,通常start和count组合,可以在s中读取本次改变字段中被改变的内容。而after表示改变后新的内容的数量。
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param s
|
||||
* @param start 开始位置
|
||||
* @param before 改变前的内容数量
|
||||
* @param count 新增数
|
||||
*/
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
//这里的s表示改变之后的内容,通常start和count组合,可以在s中读取本次改变字段中新的内容。而before表示被改变的内容的数量。
|
||||
|
||||
// doSearch(s);
|
||||
searchStr = s;
|
||||
}
|
||||
}
|
||||
|
||||
private ArrayList<MemberInfo> mTempBeansList;
|
||||
|
||||
private void doSearch(CharSequence str) {
|
||||
mTempBeansList = new ArrayList<>();
|
||||
LogUtils.d(str.toString());
|
||||
ArrayList<MemberInfo> mTempBeansList = new ArrayList<>();
|
||||
// 如果需要排序考虑 Pair
|
||||
for(int i=0;i<orignalList.size();i++){
|
||||
if(orignalList.get(i).getNick().contains(str)
|
||||
||String.valueOf(orignalList.get(i).getErbanNo()).contains(str)){
|
||||
for (int i = 0; i < orignalList.size(); i++) {
|
||||
if (orignalList.get(i).getNick().contains(str)
|
||||
|| String.valueOf(orignalList.get(i).getErbanNo()).contains(str)) {
|
||||
mTempBeansList.add(orignalList.get(i));
|
||||
}
|
||||
}
|
||||
searchList.clear();
|
||||
if (!ListUtils.isListEmpty(mTempBeansList)){
|
||||
if (!ListUtils.isListEmpty(mTempBeansList)) {
|
||||
searchList.addAll(mTempBeansList);
|
||||
}else {
|
||||
} else {
|
||||
searchList.addAll(orignalList);
|
||||
}
|
||||
mHandler.sendEmptyMessage(MSG_UPDATE_SEARCH_RESULT);
|
||||
mGroupMemberListAdapter.setNewData(searchList);
|
||||
mTempBeansList.clear();
|
||||
}
|
||||
}
|
||||
|
@@ -74,8 +74,9 @@ public class GroupMemberListAdapter extends BaseQuickAdapter<MemberInfo, BaseVie
|
||||
} else if (item.getRoleType() == RoleType.CLAN_HALL_OWNER) {
|
||||
holder.setVisible(R.id.iv_type, true);
|
||||
holder.setImageResource(R.id.iv_type, R.drawable.bg_clan_and_hall_owner);
|
||||
} else
|
||||
} else {
|
||||
holder.setVisible(R.id.iv_type, false);
|
||||
}
|
||||
|
||||
holder.setText(R.id.erban_no, context.getString(R.string.label_id_format, item.getErbanNo()));
|
||||
if (item.getGender() == 1) {
|
||||
@@ -103,27 +104,23 @@ public class GroupMemberListAdapter extends BaseQuickAdapter<MemberInfo, BaseVie
|
||||
} else {
|
||||
holder.setVisible(R.id.iv_user_level, false);
|
||||
holder.setVisible(R.id.iv_user_charm_level, false);
|
||||
|
||||
}
|
||||
|
||||
holder.setVisible(R.id.iv_remove, mType == TYPE_REMOVE);
|
||||
holder.addOnClickListener(R.id.iv_remove);
|
||||
|
||||
if (mType == TYPE_REMOVE)
|
||||
if (mType == TYPE_REMOVE) {
|
||||
setRemove(holder, item.getRoleType() > HallDataManager.get().getRoleType());
|
||||
|
||||
else if (mType == TYPE_NEXT)
|
||||
holder.addOnClickListener(R.id.container);
|
||||
} else if (mType == TYPE_NEXT) {
|
||||
setNext(holder, true);
|
||||
|
||||
else if (mType == TYPE_CHECK)
|
||||
} else if (mType == TYPE_CHECK) {
|
||||
setCheck(holder, item.getRoleType() != 1, item.getRoleType() == 2);
|
||||
|
||||
else if (mType == TYPE_SEARCH) {
|
||||
} else if (mType == TYPE_SEARCH) {
|
||||
holder.addOnClickListener(R.id.container);
|
||||
setRemove(holder, false);
|
||||
setNext(holder, false);
|
||||
setCheck(holder, false, false);
|
||||
|
||||
} else {
|
||||
holder.addOnClickListener(R.id.container);
|
||||
setRemove(holder, false);
|
||||
|
@@ -1,152 +0,0 @@
|
||||
package com.yizhuan.erban.module_hall.hall.presenter;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.widget.MessageView;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.module_hall.HallDataManager;
|
||||
import com.yizhuan.erban.module_hall.hall.view.IGroupMemberView;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.AuthInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class GroupMemberPresenter extends BaseMvpPresenter<IGroupMemberView> {
|
||||
|
||||
public void getHallAuths() {
|
||||
|
||||
HallModel.get().getHallAuths(AuthModel.get().getCurrentUid(),
|
||||
HallDataManager.get().getRoleType())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new SingleObserver<List<AuthInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<AuthInfo> authInfos) {
|
||||
//对权限处理下
|
||||
List<AuthInfo> showList = new ArrayList<>();
|
||||
List<String> canHandle = AuthInfo.canHandleAuth();
|
||||
for(AuthInfo info : authInfos) {
|
||||
if (info == null) {
|
||||
continue;
|
||||
}
|
||||
if (canHandle.contains(info.getCode()) && info.isOwnAuth()) {
|
||||
showList.add(info);
|
||||
}
|
||||
}
|
||||
getMvpView().getHallAuthsSuccess(showList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (getMvpView() == null)
|
||||
return;
|
||||
getMvpView().getHallAuthsFail(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void quit() {
|
||||
HallModel.get().quit(AuthModel.get().getCurrentUid())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
getMvpView().quitSuccess(s);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
getMvpView().quitFail(e.getMessage());
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void remove(long targetUid) {
|
||||
HallModel.get().removeFromHall(targetUid)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
getMvpView().removeSuccess(s);
|
||||
SingleToastUtil.showToast("成员已移出公会");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (getMvpView() == null) {
|
||||
return;
|
||||
}
|
||||
getMvpView().removeFail(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public CharSequence getExitTips(Context context) {
|
||||
MessageView.SpannableBuilder builder = new MessageView.SpannableBuilder(null);
|
||||
builder.append("退出将解除关系并")
|
||||
.append("退出群聊", new ForegroundColorSpan(
|
||||
ContextCompat.getColor(context, R.color.appColor)))
|
||||
.append(", 此操作")
|
||||
.append("需要厅主审核", new ForegroundColorSpan(
|
||||
ContextCompat.getColor(context, R.color.appColor)))
|
||||
.append(", 你真的要退出吗?");
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
public SpannableString getRemoveTips(Context context, int targetRoleType, String targetNick) {
|
||||
String message;
|
||||
|
||||
if (targetRoleType == 2) {
|
||||
message = targetNick + "为高管,移除将清除数据和权限并退出群聊,确认移除吗?";
|
||||
} else if (targetRoleType == 3) {
|
||||
message = "移除" + targetNick + "将清除数据并退出群聊,\n确认移除吗?";
|
||||
} else {
|
||||
message = "";
|
||||
}
|
||||
|
||||
SpannableString spannableString = new SpannableString(message);
|
||||
|
||||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.color_333333));
|
||||
ForegroundColorSpan colorSpan1 = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.appColor));
|
||||
|
||||
if (targetRoleType == 2) {
|
||||
spannableString.setSpan(colorSpan1, 0, targetNick.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(colorSpan, targetNick.length(), message.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
} else if (targetRoleType == 3) {
|
||||
spannableString.setSpan(colorSpan, 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(colorSpan1, 2, 2 + targetNick.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(colorSpan, 2 + targetNick.length(), message.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
|
||||
return spannableString;
|
||||
}
|
||||
}
|
@@ -0,0 +1,76 @@
|
||||
package com.yizhuan.erban.module_hall.hall.presenter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.module_hall.hall.view.IRemoveMemberView;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class RemoveMemberPresenter extends BaseMvpPresenter<IRemoveMemberView> {
|
||||
|
||||
|
||||
public void remove(long targetUid) {
|
||||
HallModel.get().removeFromHall(targetUid)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
getMvpView().removeSuccess(s);
|
||||
SingleToastUtil.showToast("成员已移出公会");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (getMvpView() == null) {
|
||||
return;
|
||||
}
|
||||
getMvpView().removeFail(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public SpannableString getRemoveTips(Context context, int targetRoleType, String targetNick) {
|
||||
String message;
|
||||
|
||||
if (targetRoleType == 2) {
|
||||
message = targetNick + "为高管,移除将清除数据和权限并退出群聊,确认移除吗?";
|
||||
} else if (targetRoleType == 3) {
|
||||
message = "移除" + targetNick + "将清除数据并退出群聊,\n确认移除吗?";
|
||||
} else {
|
||||
message = "";
|
||||
}
|
||||
|
||||
SpannableString spannableString = new SpannableString(message);
|
||||
|
||||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.color_333333));
|
||||
ForegroundColorSpan colorSpan1 = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.appColor));
|
||||
|
||||
if (targetRoleType == 2) {
|
||||
spannableString.setSpan(colorSpan1, 0, targetNick.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(colorSpan, targetNick.length(), message.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
} else if (targetRoleType == 3) {
|
||||
spannableString.setSpan(colorSpan, 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(colorSpan1, 2, 2 + targetNick.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(colorSpan, 2 + targetNick.length(), message.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
|
||||
return spannableString;
|
||||
}
|
||||
}
|
@@ -1,21 +0,0 @@
|
||||
package com.yizhuan.erban.module_hall.hall.view;
|
||||
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.AuthInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.MemberInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IGroupMemberView extends IMvpBaseView {
|
||||
void getHallAuthsSuccess(List<AuthInfo> authInfoList);
|
||||
void getHallAuthsFail(String message);
|
||||
|
||||
void quitSuccess(String message);
|
||||
void quitFail(String message);
|
||||
|
||||
void getAllMembersSuccess(List<MemberInfo> memberInfoList);
|
||||
void getAllMembersFail(String message);
|
||||
|
||||
void removeSuccess(String message);
|
||||
void removeFail(String message);
|
||||
}
|
@@ -0,0 +1,8 @@
|
||||
package com.yizhuan.erban.module_hall.hall.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
public interface IRemoveMemberView extends IMvpBaseView {
|
||||
void removeSuccess(String message);
|
||||
void removeFail(String message);
|
||||
}
|
@@ -1,11 +1,10 @@
|
||||
package com.yizhuan.xchat_android_core.module_hall.hall.bean;
|
||||
|
||||
import com.yizhuan.xchat_android_core.level.UserLevelVo;
|
||||
import com.yizhuan.xchat_android_core.user.bean.SimpleUserInfo;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -25,4 +24,16 @@ public class MemberInfo extends SimpleUserInfo implements Serializable {
|
||||
|
||||
private String hallName;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
MemberInfo that = (MemberInfo) o;
|
||||
return erbanNo == that.erbanNo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(super.hashCode(), erbanNo);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user