MsgViewHolderBusinessCard.java 4.93 KB
Newer Older
1 2
package com.yidianling.im.session.viewholder;

YKai committed
3 4
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
5 6 7 8 9 10
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

霍志良 committed
11 12
import com.ydl.webview.H5Params;
import com.ydl.webview.NewH5Activity;
13
import com.ydl.ydl_image.module.GlideApp;
霍志良 committed
14
import com.yidianling.common.tools.LogUtil;
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
import com.yidianling.im.R;
import com.yidianling.im.session.extension.CustomAttachmentBusinessCard;
import com.yidianling.im.session.viewholder.adapter.AdapterBusinessCard;
import com.yidianling.nimbase.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter;
import com.yidianling.uikit.business.session.viewholder.MsgViewHolderBase;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @author huozhiliang
 * @描述:
 * @Copyright Copyright (c) 2018
 * @Company 壹点灵
 * @date 2020/9/7
 */
public class MsgViewHolderBusinessCard extends MsgViewHolderBase {

    private ImageView expertImg;
    private TextView expertSecondTitle;
    private TextView expertName;
    private TextView scoreExpert;
    private TextView commentCount;
    private TextView cerfiticateYear;
    private TextView serviceCount;
    private TextView serviceTime;
    private RecyclerView recy;
    private AdapterBusinessCard businessCard;

    private LinearLayout m_im_ll_feedbackRate;
霍志良 committed
46 47
    private String urlJump = "";//跳转URL字段

48 49 50 51 52 53 54 55 56 57 58
    public MsgViewHolderBusinessCard(BaseMultiItemFetchLoadAdapter adapter) {
        super(adapter);
    }

    @Override
    protected int getContentResId() {
        return R.layout.im_ui_message_custom_business_card;
    }

    @Override
    protected void inflateContentView() {
霍志良 committed
59 60 61 62 63 64 65 66 67
        expertImg = findViewById(R.id.expert_Img);
        expertSecondTitle = findViewById(R.id.expertSecondTitle);
        expertName = findViewById(R.id.expertName);
        scoreExpert = findViewById(R.id.scoreExpert);
        commentCount = findViewById(R.id.commentCount);
        cerfiticateYear = findViewById(R.id.cerfiticateYear);
        serviceCount = findViewById(R.id.serviceCount);
        serviceTime = findViewById(R.id.serviceTime);
        recy = findViewById(R.id.expertTagRV);
YKai committed
68
        m_im_ll_feedbackRate = findViewById(R.id.m_ll_feedbackRate);
69 70 71 72
    }

    @Override
    protected void bindContentView() {
霍志良 committed
73 74
        CustomAttachmentBusinessCard customBusinessCard = (CustomAttachmentBusinessCard) message.getAttachment();
        businessCard = new AdapterBusinessCard();
75
        businessCard.setTagData(new ArrayList<String>());
霍志良 committed
76
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
77 78 79 80
        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
        recy.setLayoutManager(linearLayoutManager);
        recy.setAdapter(businessCard);
        GlideApp.with(context).load(customBusinessCard.expertImg)
霍志良 committed
81 82 83 84
                .into(expertImg);
        String tags = customBusinessCard.tagList;
        List<String> tagsList = Arrays.asList(tags.split("\\|"));
        businessCard.setTagData(tagsList);
85 86
        expertName.setText(customBusinessCard.name);
        expertSecondTitle.setText(customBusinessCard.secondTitle);
87
        scoreExpert.setText(customBusinessCard.feedbackRate.toString().substring(0,3));
霍志良 committed
88
        scoreExpert.invalidate();
霍志良 committed
89
        commentCount.setText(customBusinessCard.commentNum + "人评价");
90 91 92
        cerfiticateYear.setText(customBusinessCard.workYears);
        serviceCount.setText(customBusinessCard.orderNum);
        serviceTime.setText(customBusinessCard.helpLong);
霍志良 committed
93
        urlJump = customBusinessCard.doctorCardUrl;
94 95


霍志良 committed
96
        m_im_ll_feedbackRate.removeAllViews();
97
        for (int j = 1; j <= 5; j++) {
98 99 100 101 102 103
            View view = LayoutInflater.from(context).inflate(
                    R.layout.m_im_feedbackrate,
                    m_im_ll_feedbackRate,
                    false
            );

霍志良 committed
104
            ImageView startIMG = view.findViewById(R.id.feedBackRate);
105
            if (customBusinessCard.feedbackRate >= j) {
106 107 108 109
                startIMG.setBackground(context.getResources().getDrawable(R.drawable.m_im_full_star));
            } else if (customBusinessCard.feedbackRate < j && customBusinessCard.feedbackRate > j - 1) {
                startIMG.setBackground(context.getResources().getDrawable(R.drawable.m_im_half_star));
            } else {
霍志良 committed
110
                //UI没切这个emptyStar的图,所以只能用之前的星星,墨刀很难用
111 112 113 114 115 116 117 118 119
                startIMG.setBackground(context.getResources().getDrawable(R.drawable.m_im_nothing_star));
            }
            m_im_ll_feedbackRate.addView(view);
        }
    }

    @Override
    protected void onItemClick() {
        super.onItemClick();
霍志良 committed
120 121 122 123 124
        if (null != urlJump && !urlJump.isEmpty()) {
            NewH5Activity.start(context, new H5Params(urlJump, "专家名片"));
        } else {
            LogUtil.e("doctorCardUrl:" + urlJump);
        }
125 126
    }
}