package tmay.bluetoothbacon.blescanner.adapters; import android.bluetooth.BluetoothDevice; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import org.androidannotations.annotations.EBean; import java.util.ArrayList; import tmay.bluetoothbacon.blescanner.models.BleScannerObject; import tmay.bluetoothbacon.blescanner.views.BleScannerItemView; import tmay.bluetoothbacon.blescanner.views.BleScannerItemView_; /** * Created by Terry on 10/4/14. */ @EBean public class BleScannerAdapter extends BaseAdapter { private ArrayList<BleScannerObject> items; private Context context; public BleScannerAdapter(Context context) { this.context = context; clear(); } @Override public int getCount() { return items.size(); } @Override public BluetoothDevice getItem(int i) { return items.get(i).device; } @Override public long getItemId(int i) { return items.get(i).device.hashCode(); } @Override public View getView(int i, View view, ViewGroup viewGroup) { BleScannerItemView itemView; if (view == null) { itemView = BleScannerItemView_.build(context); } else { itemView = (BleScannerItemView) view; } itemView.bind(items.get(i)); return itemView; } public void clear() { items = new ArrayList<BleScannerObject>(); notifyDataSetChanged(); } public void addDevice(BluetoothDevice device, int rssi) { if (!BleScannerObject.isDuplicateDevice(device, items)) { items.add(new BleScannerObject(device, rssi)); notifyDataSetChanged(); } else { // int index = BleScannerObject.findDeviceIndex(device, items); // BleScannerObject target = items.get(index); // if (rssi != target.rssi) { // target.rssi = rssi; // notifyDataSetChanged(); // } } } }