package com.shlb.comb.adapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.blakequ.bluetooth_manager_lib.device.BeaconType; import com.blakequ.bluetooth_manager_lib.device.BeaconUtils; import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice; import com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord; import com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDevice; import com.blakequ.bluetooth_manager_lib.util.ByteUtils; import com.shlb.comb.R; import com.shlb.comb.util.Constants; public class DeviceListAdapter extends BaseArrayListAdapter{ private int scrodKey; public DeviceListAdapter(Context context) { super(context); } public void updateConfig(int scrodKey){ this.scrodKey = scrodKey; } @Override public View getView(int position, View view, ViewGroup parent) { final ViewHolder viewHolder; // General ListView optimization code. if (view == null) { view = mInflater.inflate(R.layout.dialog_layout_bluetooth_item, null); viewHolder = new ViewHolder(); viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address); viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name); viewHolder.deviceIcon = (ImageView) view.findViewById(R.id.device_icon); view.setTag(viewHolder); } else { viewHolder = (ViewHolder) view.getTag(); } final BluetoothLeDevice device = (BluetoothLeDevice) getItem(position); final String deviceName = device.getName(); final double rssi = device.getRssi(); if (deviceName != null && deviceName.length() > 0) { viewHolder.deviceName.setText(deviceName); } else { viewHolder.deviceName.setText(R.string.unknown_device); } return view; } public double calculateAccuracy(final int txPower, final double rssi) { if (rssi == 0) { return 0; // if we cannot determine accuracy, return -1. } final double ratio = rssi * 1.0 / txPower; if (ratio < 1.0) { return Math.pow(ratio, 10); } else { return (0.89976) * Math.pow(ratio, 7.7095) + 0.111; } } static class ViewHolder { TextView deviceName; TextView deviceAddress; ImageView deviceIcon; } }