MyContactAdapter.java 5.2 KB
package com.chudiangameplay.android.adapter;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.text.Html;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.ContactInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.interface_.OkHttpCallBack;
import com.chudiangameplay.android.manager.API_IMManager;
import com.chudiangameplay.android.module_im.ui.activity.IMChartDetailAcitivty;
import com.chudiangameplay.android.responce.BaseResponce;
import com.chudiangameplay.android.tool.CommToast;
import com.chudiangameplay.android.ui.activity.UserDetailActivity;
import com.chudiangameplay.android.util.GlideUtil;

import java.util.List;

/**
 * Created by Administrator on 2018/8/22.
 */

public class MyContactAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    Context mContext;
    List<ContactInfo> list;
    CommCallBack callBack;
    String keyWords;

    public MyContactAdapter(Context mContext, CommCallBack callBack) {
        this.mContext = mContext;
        this.callBack = callBack;
    }

    public void setData(List<ContactInfo> list, String keyWords) {
        this.list = list;
        this.keyWords = keyWords;
        notifyDataSetChanged();
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater mInflater = LayoutInflater.from(mContext);
        ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_contact, null, false);
        ContentViewHolder holder = new ContentViewHolder(viewGroup);
        return holder;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
        final ContactInfo contactInfo = list.get(position);
        GlideUtil.displayImage(mContext, contactInfo.headPortraitsUrl, contentViewHolder.iv_head, R.drawable.ico_im_default_head);

        String str = "";
        if (TextUtils.isEmpty(keyWords)) {
            str = contactInfo.nickname;
        } else {
            String tempName = contactInfo.nickname;
            while (tempName.contains(keyWords)) {
                int index = tempName.indexOf(keyWords);
                str += tempName.substring(0, index);   //关键字前的文字
                str += "<font color='#FC203F'>" + keyWords + "</font>";   //关键字
                tempName = tempName.substring(index + keyWords.length(), tempName.length());
            }
            str += tempName;
        }
        if (TextUtils.isEmpty(str)) {
            contentViewHolder.tv_nickname.setText(contactInfo.nickname);
        } else {
            contentViewHolder.tv_nickname.setText(Html.fromHtml(str));
        }

        contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(mContext, UserDetailActivity.class);
                if (!TextUtils.isEmpty(contactInfo.userId)) {
                    intent.putExtra("uid", contactInfo.userId);
                } else {
                    intent.putExtra("uid", contactInfo.id);
                }
                mContext.startActivity(intent);
            }
        });

        contentViewHolder.tv_sendmsg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(mContext, IMChartDetailAcitivty.class);
                intent.putExtra("toChatUsername", contactInfo.imId);
                mContext.startActivity(intent);
            }
        });
        contentViewHolder.tv_guanzhu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                API_IMManager.save_attention(mContext, contactInfo.userId, "1", new OkHttpCallBack() {
                    @Override
                    public void onSuccess(BaseResponce baseResponce) {
                        if ("200".equals(baseResponce.status)) {
                            CommToast.showToast(mContext, "关注成功");
                        }
                    }

                    @Override
                    public void onFailure(BaseResponce baseResponce) {

                    }
                });
            }
        });
    }

    @Override
    public int getItemCount() {
        return list == null ? 0 : list.size();
    }


    class ContentViewHolder extends RecyclerView.ViewHolder {
        ImageView iv_head;
        TextView tv_nickname, tv_guanzhu, tv_sendmsg;

        public ContentViewHolder(View itemView) {
            super(itemView);
            iv_head = (ImageView) itemView.findViewById(R.id.iv_head);
            tv_nickname = (TextView) itemView.findViewById(R.id.tv_nickname);
            tv_guanzhu = (TextView) itemView.findViewById(R.id.tv_guanzhu);
            tv_sendmsg = (TextView) itemView.findViewById(R.id.tv_sendmsg);
        }
    }
}