package com.lqr.wechat.ui.presenter;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.lqr.adapter.LQRAdapterForRecyclerView;
import com.lqr.adapter.LQRViewHolderForRecyclerView;
import com.lqr.ninegridimageview.LQRNineGridImageView;
import com.lqr.ninegridimageview.LQRNineGridImageViewAdapter;
import com.lqr.wechat.R;
import com.lqr.wechat.db.DBManager;
import com.lqr.wechat.db.model.GroupMember;
import com.lqr.wechat.db.model.Groups;
import com.lqr.wechat.ui.activity.SessionActivity;
import com.lqr.wechat.ui.base.BaseActivity;
import com.lqr.wechat.ui.base.BasePresenter;
import com.lqr.wechat.ui.view.IGroupListAtView;
import java.util.ArrayList;
import java.util.List;
public class GroupListAtPresenter extends BasePresenter<IGroupListAtView> {
private List<Groups> mData = new ArrayList<>();
private LQRAdapterForRecyclerView<Groups> mAdapter;
private LQRNineGridImageViewAdapter mNgivAdapter = new LQRNineGridImageViewAdapter<GroupMember>() {
@Override
protected void onDisplayImage(Context context, ImageView imageView, GroupMember groupMember) {
Glide.with(context).load(groupMember.getPortraitUri()).centerCrop().into(imageView);
}
};
public GroupListAtPresenter(BaseActivity context) {
super(context);
}
public void loadGroups() {
loadData();
setAdapter();
}
private void loadData() {
List<Groups> groups = DBManager.getInstance().getGroups();
if (groups != null && groups.size() > 0) {
mData.clear();
mData.addAll(groups);
setAdapter();
getView().getLlGroups().setVisibility(View.VISIBLE);
} else {
getView().getLlGroups().setVisibility(View.GONE);
}
}
private void setAdapter() {
if (mAdapter == null) {
mAdapter = new LQRAdapterForRecyclerView<Groups>(mContext, mData, R.layout.item_contact) {
@Override
public void convert(LQRViewHolderForRecyclerView helper, Groups item, int position) {
LQRNineGridImageView ngvi = helper.setViewVisibility(R.id.ngiv, View.VISIBLE)
.setViewVisibility(R.id.ivHeader, View.GONE)
.setText(R.id.tvName, item.getName())
.getView(R.id.ngiv);
ngvi.setAdapter(mNgivAdapter);
List<GroupMember> groupMembers = DBManager.getInstance().getGroupMembers(item.getGroupId());
ngvi.setImagesData(groupMembers);
}
};
mAdapter.setOnItemClickListener((lqrViewHolder, viewGroup, view, i) -> {
Intent intent = new Intent(mContext, SessionActivity.class);
intent.putExtra("sessionId", mData.get(i).getGroupId());
intent.putExtra("sessionType", SessionActivity.SESSION_TYPE_GROUP);
mContext.jumpToActivity(intent);
mContext.finish();
});
getView().getRvGroupList().setAdapter(mAdapter);
} else {
mAdapter.notifyDataSetChangedWrapper();
}
}
}