1
wxr
2023-04-23 2cd55265ccff3b0a267d7953b2dd9e5dca437aa6
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/* 
 * @ProjectName ezviz-openapi-android-demo
 * @Copyright null
 * 
 * @FileName DeviceDiscoverAdapter.java
 * @Description 这里对文件进行描述
 * 
 * @author chenxingyf1
 * @data 2015-5-13
 * 
 * @note 这里写本文件的详细功能描述和注释
 * @note 历史记录
 * 
 * @warning 这里写本文件的相关警告
 */
package com.videogo.ui.devicelist;
 
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
 
import java.util.ArrayList;
import java.util.List;
 
import ezviz.ezopensdk.R;
 
public class DeviceDiscoverAdapter extends BaseAdapter {
    private Context mContext = null;
    private List<DeviceDiscoverInfo> mDeviceDiscoverInfoList = null;
    private OnClickListener mOnClickListener;
    
    public static class ViewHolder {
        public TextView serialTv;
        public TextView wifiTv;
        public TextView platTv;
        public TextView ipTv;
        public Button addBtn;
        public Button localRealPlayBtn;
    }
    
    public DeviceDiscoverAdapter(Context context) {
        mContext = context;
        mDeviceDiscoverInfoList = new ArrayList<DeviceDiscoverInfo>();
    }
    
    public void setOnClickListener(OnClickListener l) {
        mOnClickListener = l;
    }
    
    public void addItem(DeviceDiscoverInfo item) {
        mDeviceDiscoverInfoList.add(item);
    }
 
    public void removeItem(DeviceDiscoverInfo item) {
        mDeviceDiscoverInfoList.remove(item);
    }
    
    public void clearItem() {
        mDeviceDiscoverInfoList.clear();
    }
    
    /* (non-Javadoc)
     * @see android.widget.Adapter#getCount()
     */
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return mDeviceDiscoverInfoList.size();
    }
 
    /* (non-Javadoc)
     * @see android.widget.Adapter#getItem(int)
     */
    @Override
    public DeviceDiscoverInfo getItem(int position) {
        DeviceDiscoverInfo item = null;
        if (position >= 0 && getCount() > position) {
            item = mDeviceDiscoverInfoList.get(position);
        }
        return item;
    }
 
    /* (non-Javadoc)
     * @see android.widget.Adapter#getItemId(int)
     */
    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }
 
    /* (non-Javadoc)
     * @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup)
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder = null;
        if (convertView == null) {
            viewHolder = new ViewHolder();
 
            // 获取list_item布局文件的视图
            convertView = LayoutInflater.from(mContext).inflate(R.layout.device_discover_item, null);
 
            // 获取控件对象
            viewHolder.serialTv = (TextView) convertView.findViewById(R.id.serial_tv);
            viewHolder.wifiTv = (TextView) convertView.findViewById(R.id.wifi_tv);
            viewHolder.platTv = (TextView) convertView.findViewById(R.id.plat_tv);
            viewHolder.ipTv = (TextView) convertView.findViewById(R.id.ip_tv);
            viewHolder.addBtn = (Button) convertView.findViewById(R.id.add_btn);
            viewHolder.localRealPlayBtn = (Button) convertView.findViewById(R.id.local_realplay_btn);
            viewHolder.addBtn.setOnClickListener(mOnClickListener);
            viewHolder.localRealPlayBtn.setOnClickListener(mOnClickListener);
            
            // 设置控件集到convertView
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        
        DeviceDiscoverInfo deviceDiscoverInfo = getItem(position);
        if(deviceDiscoverInfo != null) {
            viewHolder.serialTv.setText(deviceDiscoverInfo.deviceSerial);
            viewHolder.addBtn.setTag(deviceDiscoverInfo.deviceSerial);
            if(deviceDiscoverInfo.isAdded) {
                viewHolder.addBtn.setText(deviceDiscoverInfo.mEZProbeDeviceInfo!=null?R.string.added_by_me:R.string.added_by_other);
            } else {
                viewHolder.addBtn.setText(R.string.add_device);
            }
            viewHolder.addBtn.setEnabled(!deviceDiscoverInfo.isAdded);
            viewHolder.wifiTv.setVisibility(deviceDiscoverInfo.isWifiConnected?View.VISIBLE:View.GONE);
            viewHolder.platTv.setVisibility(deviceDiscoverInfo.isPlatConnected?View.VISIBLE:View.GONE);
            viewHolder.ipTv.setText(deviceDiscoverInfo.localIP);
            viewHolder.localRealPlayBtn.setEnabled(!TextUtils.isEmpty(deviceDiscoverInfo.localIP));
            viewHolder.localRealPlayBtn.setTag(deviceDiscoverInfo);
        }
        
        return convertView;
    }
 
}