Re-jigging the list generation in preparation of sliding window rssi
calculation
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
package uk.co.alt236.btlescan.activities;
|
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.bluetoothlelib.device.BluetoothLeDevice;
|
||||||
import uk.co.alt236.btlescan.R;
|
import uk.co.alt236.btlescan.R;
|
||||||
import uk.co.alt236.btlescan.adapters.LeDeviceListAdapter;
|
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.tvBluetoothLe) TextView mTvBluetoothLeStatus;
|
||||||
@InjectView(R.id.tvBluetoothStatus) TextView mTvBluetoothStatus;
|
@InjectView(R.id.tvBluetoothStatus) TextView mTvBluetoothStatus;
|
||||||
@InjectView(R.id.radarView) RadarView mRadarView;
|
@InjectView(R.id.radarView) RadarView mRadarView;
|
||||||
|
|
||||||
private BluetoothUtils mBluetoothUtils;
|
private BluetoothUtils mBluetoothUtils;
|
||||||
private BluetoothLeScanner mScanner;
|
private BluetoothLeScanner mScanner;
|
||||||
private LeDeviceListAdapter mLeDeviceListAdapter;
|
private LeDeviceListAdapter mLeDeviceListAdapter;
|
||||||
|
private List<BluetoothLeDevice> mDeviceList;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {
|
private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
|
public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
|
||||||
@@ -62,6 +69,8 @@ public class MainActivity extends ListActivity {
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
ButterKnife.inject(this);
|
ButterKnife.inject(this);
|
||||||
|
mDeviceList = new ArrayList<BluetoothLeDevice>();
|
||||||
|
|
||||||
mBluetoothUtils = new BluetoothUtils(this);
|
mBluetoothUtils = new BluetoothUtils(this);
|
||||||
mScanner = new BluetoothLeScanner(mLeScanCallback, mBluetoothUtils);
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user