Re-jigging the list generation in preparation of sliding window rssi

calculation
This commit is contained in:
Alexandros Schillings
2014-03-17 18:56:19 +00:00
parent ad25dfc57c
commit 30fa8eaaee
2 changed files with 54 additions and 2 deletions
@@ -1,5 +1,8 @@
package uk.co.alt236.btlescan.activities;
import java.util.ArrayList;
import java.util.List;
import uk.co.alt236.bluetoothlelib.device.BluetoothLeDevice;
import uk.co.alt236.btlescan.R;
import uk.co.alt236.btlescan.adapters.LeDeviceListAdapter;
@@ -23,11 +26,15 @@ public class MainActivity extends ListActivity {
@InjectView(R.id.tvBluetoothLe) TextView mTvBluetoothLeStatus;
@InjectView(R.id.tvBluetoothStatus) TextView mTvBluetoothStatus;
@InjectView(R.id.radarView) RadarView mRadarView;
private BluetoothUtils mBluetoothUtils;
private BluetoothLeScanner mScanner;
private LeDeviceListAdapter mLeDeviceListAdapter;
private List<BluetoothLeDevice> mDeviceList;
private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
@@ -62,6 +69,8 @@ public class MainActivity extends ListActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
mDeviceList = new ArrayList<BluetoothLeDevice>();
mBluetoothUtils = new BluetoothUtils(this);
mScanner = new BluetoothLeScanner(mLeScanCallback, mBluetoothUtils);
}
@@ -0,0 +1,43 @@
package uk.co.alt236.btlescan.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import uk.co.alt236.bluetoothlelib.device.BluetoothLeDevice;
public class BluetoothLeDeviceStore {
private final Map<String, BluetoothLeDevice> mDeviceMap;
public BluetoothLeDeviceStore(){
mDeviceMap = new HashMap<String, BluetoothLeDevice>();
}
public void addDevice(BluetoothLeDevice device){
if(mDeviceMap.containsKey(device.getAddress())){
} else {
mDeviceMap.put(device.getAddress(), device);
}
}
public List<BluetoothLeDevice> getDeviceList(){
final List<BluetoothLeDevice> methodResult = new ArrayList<BluetoothLeDevice>(mDeviceMap.values());
Collections.sort(methodResult, new Comparator<BluetoothLeDevice>() {
@Override
public int compare(BluetoothLeDevice arg0, BluetoothLeDevice arg1) {
return arg0.getAddress().compareToIgnoreCase(arg1.getAddress());
}
});
return methodResult;
}
}