wxr
2022-11-24 2af932533ef851bf983385244e9912976dbd4daa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.lechange.demo.adapter;
 
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
 
import com.common.openapi.ClassInstanceManager;
import com.common.openapi.DeviceLocalCacheService;
import com.common.openapi.IGetDeviceInfoCallBack;
import com.common.openapi.entity.DeviceDetailListData;
import com.common.openapi.entity.DeviceLocalCacheData;
import com.lechange.demo.R;
import com.lechange.demo.tools.MediaPlayHelper;
 
import java.util.List;
 
 
public class ChannelListAdapter extends RecyclerView.Adapter<ChannelListAdapter.ChannelHolder> {
    private Context mContext;
    private List<DeviceDetailListData.ResponseData.DeviceListBean.ChannelsBean> datas;
 
    public ChannelListAdapter(Context mContext, List<DeviceDetailListData.ResponseData.DeviceListBean.ChannelsBean> datas) {
        this.mContext = mContext;
        this.datas = datas;
    }
 
    @NonNull
    @Override
    public ChannelHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(mContext).inflate(R.layout.item_channel_list, parent, false);
        return new ChannelListAdapter.ChannelHolder(view);
    }
 
    @Override
    public void onBindViewHolder(@NonNull final ChannelHolder holder, @SuppressLint("RecyclerView") final int position) {
        if ("online".equals(datas.get(position).status)) {
            holder.ivPlay.setVisibility(View.VISIBLE);
            holder.rlOffline.setVisibility(View.GONE);
        } else {
            holder.ivPlay.setVisibility(View.GONE);
            holder.rlOffline.setVisibility(View.VISIBLE);
        }
        holder.tvName.setText(datas.get(position).channelName);
        //获取设备缓存信息
        DeviceLocalCacheData deviceLocalCacheData = new DeviceLocalCacheData();
        deviceLocalCacheData.setDeviceId(datas.get(position).deviceId);
        deviceLocalCacheData.setChannelId(datas.get(position).channelId);
        DeviceLocalCacheService deviceLocalCacheService = ClassInstanceManager.newInstance().getDeviceLocalCacheService();
        deviceLocalCacheService.findLocalCache(deviceLocalCacheData, new IGetDeviceInfoCallBack.IDeviceCacheCallBack() {
            @Override
            public void deviceCache(DeviceLocalCacheData deviceLocalCacheData) {
                BitmapDrawable bitmapDrawable = MediaPlayHelper.picDrawable(deviceLocalCacheData.getPicPath());
                if (bitmapDrawable != null) {
                    holder.ivBg.setImageDrawable(bitmapDrawable);
                } else {
                    holder.ivBg.setImageDrawable(mContext.getDrawable(R.mipmap.lc_demo_default_bg));
                }
            }
 
            @Override
            public void onError(Throwable throwable) {
                holder.ivBg.setImageDrawable(mContext.getDrawable(R.mipmap.lc_demo_default_bg));
            }
        });
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (onChannelClickListener != null) {
                    onChannelClickListener.onChannelClick(position);
                }
            }
        });
    }
 
    @Override
    public int getItemCount() {
        return datas == null ? 0 : datas.size();
    }
 
    static class ChannelHolder extends RecyclerView.ViewHolder {
        ImageView ivBg;
        RelativeLayout rlOffline;
        TextView tvOffline;
        ImageView ivPlay;
        RelativeLayout rlDetail;
        TextView tvName;
 
        public ChannelHolder(View itemView) {
            super(itemView);
            ivBg = itemView.findViewById(R.id.iv_bg);
            rlOffline = itemView.findViewById(R.id.rl_offline);
            tvOffline = itemView.findViewById(R.id.tv_offline);
            ivPlay = itemView.findViewById(R.id.iv_play);
            rlDetail = itemView.findViewById(R.id.rl_detail);
            tvName = itemView.findViewById(R.id.tv_name);
        }
    }
 
    private OnChannelClickListener onChannelClickListener;
 
    public interface OnChannelClickListener {
        void onChannelClick(int position);
    }
 
    public void setOnItemClickListener(OnChannelClickListener onChannelClickListener) {
        this.onChannelClickListener = onChannelClickListener;
    }
 
}