搜索成员优化,增加分页加载
This commit is contained in:
@@ -96,11 +96,9 @@ public class HallMemberListActivity extends BaseActivity {
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadData(boolean refresh) {
|
||||
if (refresh) {
|
||||
page = 1;
|
||||
} else {
|
||||
page++;
|
||||
}
|
||||
|
||||
page = refresh ? 1 : (page + 1);
|
||||
|
||||
HallModel.get().getAllMembers(hallId, page, pageSize)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnError(e -> rvDelegate.loadErr(refresh))
|
||||
|
@@ -1,25 +1,30 @@
|
||||
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 androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.UIHelper;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.base.BaseActivity;
|
||||
import com.yizhuan.erban.common.EmptyViewHelper;
|
||||
import com.yizhuan.erban.module_hall.hall.adapter.GroupMemberListAdapter;
|
||||
import com.yizhuan.erban.module_hall.hall.presenter.MemberSearchPresenter;
|
||||
import com.yizhuan.erban.module_hall.hall.view.IMemberSearchView;
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ListMemberInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.MemberInfo;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -27,9 +32,7 @@ import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
|
||||
@CreatePresenter(MemberSearchPresenter.class)
|
||||
public class MemberSearchActivity extends BaseMvpActivity<IMemberSearchView, MemberSearchPresenter>
|
||||
implements IMemberSearchView{
|
||||
public class MemberSearchActivity extends BaseActivity {
|
||||
|
||||
@BindView(R.id.recycler_view)
|
||||
RecyclerView recyclerView;
|
||||
@@ -39,6 +42,13 @@ public class MemberSearchActivity extends BaseMvpActivity<IMemberSearchView, Mem
|
||||
private GroupMemberListAdapter mGroupMemberListAdapter;
|
||||
private List<MemberInfo> mMemberInfoList = new ArrayList<>();
|
||||
|
||||
private RVDelegate<MemberInfo> rvDelegate;
|
||||
|
||||
private String queryString;
|
||||
|
||||
private int page = 1;
|
||||
private final int pageSize = 20;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context, MemberSearchActivity.class);
|
||||
context.startActivity(intent);
|
||||
@@ -50,30 +60,34 @@ public class MemberSearchActivity extends BaseMvpActivity<IMemberSearchView, Mem
|
||||
setContentView(R.layout.activity_add_member);
|
||||
|
||||
ButterKnife.bind(this);
|
||||
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
mGroupMemberListAdapter = new GroupMemberListAdapter(this, null);
|
||||
|
||||
rvDelegate = new RVDelegate.Builder<MemberInfo>()
|
||||
.setAdapter(mGroupMemberListAdapter)
|
||||
.setLayoutManager(new LinearLayoutManager(this))
|
||||
.setPageSize(pageSize)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(context, "没有搜到相关消息"))
|
||||
.setRecyclerView(recyclerView)
|
||||
.build();
|
||||
mGroupMemberListAdapter.setmType(GroupMemberListAdapter.TYPE_SEARCH);
|
||||
mGroupMemberListAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
@Override
|
||||
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
if (mMemberInfoList != null && mMemberInfoList.size() > 0) {
|
||||
MemberInfo memberInfo = mMemberInfoList.get(position);
|
||||
UIHelper.showUserInfoAct(MemberSearchActivity.this, memberInfo.getUid());
|
||||
}
|
||||
mGroupMemberListAdapter.setOnItemChildClickListener((adapter, view, position) -> {
|
||||
if (mMemberInfoList != null && mMemberInfoList.size() > 0) {
|
||||
MemberInfo memberInfo = mMemberInfoList.get(position);
|
||||
UIHelper.showUserInfoAct(MemberSearchActivity.this, memberInfo.getUid());
|
||||
}
|
||||
});
|
||||
|
||||
recyclerView.setAdapter(mGroupMemberListAdapter);
|
||||
mGroupMemberListAdapter.setOnLoadMoreListener(() -> loadData(queryString, false), recyclerView);
|
||||
|
||||
}
|
||||
|
||||
@OnClick({R.id.tv_search,R.id.iv_back})
|
||||
@OnClick({R.id.tv_search, R.id.iv_back})
|
||||
public void onViewClicked(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.tv_search:
|
||||
String key = etSearch.getText().toString().trim();
|
||||
if (!TextUtils.isEmpty(key))
|
||||
getMvpPresenter().queryMembers(key);
|
||||
queryString = etSearch.getText().toString().trim();
|
||||
if (!TextUtils.isEmpty(queryString))
|
||||
loadData(queryString, true);
|
||||
break;
|
||||
case R.id.iv_back:
|
||||
finish();
|
||||
@@ -81,19 +95,16 @@ public class MemberSearchActivity extends BaseMvpActivity<IMemberSearchView, Mem
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void queryMembersSuccess(List<MemberInfo> memberInfoList) {
|
||||
hideStatus();
|
||||
mMemberInfoList = memberInfoList;
|
||||
mGroupMemberListAdapter.setNewData(mMemberInfoList);
|
||||
mGroupMemberListAdapter.notifyDataSetChanged();
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadData(String queryString, boolean refresh) {
|
||||
page = refresh ? 1 : (page + 1);
|
||||
HallModel.get().queryMembers(queryString, page, pageSize)
|
||||
.compose(bindToLifecycle())
|
||||
.compose(bindToLifecycle())
|
||||
.doOnError(e -> rvDelegate.loadErr(refresh))
|
||||
.subscribe(listMemberInfo -> {
|
||||
rvDelegate.loadData(listMemberInfo.getMembers(), refresh);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void queryMembersFail(String message) {
|
||||
hideStatus();
|
||||
showNoData(R.drawable.icon_common_failure, getString(R.string.dearch_no_data));
|
||||
mGroupMemberListAdapter.setNewData(null);
|
||||
mGroupMemberListAdapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
@@ -1,33 +0,0 @@
|
||||
package com.yizhuan.erban.module_hall.hall.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.module_hall.HallDataManager;
|
||||
import com.yizhuan.erban.module_hall.hall.view.IMemberSearchView;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ListMemberInfo;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
public class MemberSearchPresenter extends BaseMvpPresenter<IMemberSearchView> {
|
||||
|
||||
public void queryMembers(String key) {
|
||||
HallModel.get().queryMembers(HallDataManager.get().getHallId(), key)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new BeanObserver<ListMemberInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (getMvpView() == null)
|
||||
return;
|
||||
getMvpView().queryMembersFail(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(ListMemberInfo listMemberInfo) {
|
||||
if (!ListUtils.isListEmpty(listMemberInfo.getMembers())) {
|
||||
getMvpView().queryMembersSuccess(listMemberInfo.getMembers());
|
||||
} else
|
||||
getMvpView().queryMembersFail("no data");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -166,8 +166,8 @@ public class HallModel extends BaseModel implements IHallModel {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<ListMemberInfo> queryMembers(long hallId, String key) {
|
||||
return api.queryMembers(hallId, key)
|
||||
public Single<ListMemberInfo> queryMembers(String queryString,int page,int pageSize) {
|
||||
return api.queryMembers(AuthModel.get().getCurrentUid(), queryString,page,pageSize)
|
||||
.compose(RxHelper.handleCommon(ListMemberInfo::new));
|
||||
}
|
||||
|
||||
@@ -346,8 +346,11 @@ public class HallModel extends BaseModel implements IHallModel {
|
||||
|
||||
|
||||
/** 按条件搜索成员 */
|
||||
@GET("/hall/queryMembers")
|
||||
Single<ServiceResult<ListMemberInfo>> queryMembers(@Query("hallId") long hallId, @Query("key") String key);
|
||||
@GET("/clan/listMember")
|
||||
Single<ServiceResult<ListMemberInfo>> queryMembers(@Query("uid") long uid,
|
||||
@Query("queryStr") String queryString,
|
||||
@Query("page") int page,
|
||||
@Query("pageSize") int pageSize);
|
||||
|
||||
/** 添加高管 */
|
||||
@POST("/hall/setManager")
|
||||
|
@@ -52,7 +52,7 @@ public interface IHallModel {
|
||||
Single<HallInfo> getHallInfo(long uid, long hallId);
|
||||
|
||||
|
||||
Single<ListMemberInfo> queryMembers(long hallId, String key);
|
||||
Single<ListMemberInfo> queryMembers(String queryString,int page,int pageSize);
|
||||
|
||||
Single<String> setManager(long targetUid, long hallId);
|
||||
Single<String> removeManager(long targetUid, long hallId);
|
||||
|
Reference in New Issue
Block a user