From 30fa8eaaee34d95bcf91b4c7db817390589c5892 Mon Sep 17 00:00:00 2001 From: Alexandros Schillings Date: Mon, 17 Mar 2014 18:56:19 +0000 Subject: [PATCH] Re-jigging the list generation in preparation of sliding window rssi calculation --- .../btlescan/activities/MainActivity.java | 13 +++++- .../btlescan/util/BluetoothLeDeviceStore.java | 43 +++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 sample_app/src/uk/co/alt236/btlescan/util/BluetoothLeDeviceStore.java diff --git a/sample_app/src/uk/co/alt236/btlescan/activities/MainActivity.java b/sample_app/src/uk/co/alt236/btlescan/activities/MainActivity.java index a1c722c..6e293ce 100644 --- a/sample_app/src/uk/co/alt236/btlescan/activities/MainActivity.java +++ b/sample_app/src/uk/co/alt236/btlescan/activities/MainActivity.java @@ -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 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(); + mBluetoothUtils = new BluetoothUtils(this); mScanner = new BluetoothLeScanner(mLeScanCallback, mBluetoothUtils); } diff --git a/sample_app/src/uk/co/alt236/btlescan/util/BluetoothLeDeviceStore.java b/sample_app/src/uk/co/alt236/btlescan/util/BluetoothLeDeviceStore.java new file mode 100644 index 0000000..4d09fc0 --- /dev/null +++ b/sample_app/src/uk/co/alt236/btlescan/util/BluetoothLeDeviceStore.java @@ -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 mDeviceMap; + + public BluetoothLeDeviceStore(){ + mDeviceMap = new HashMap(); + } + + public void addDevice(BluetoothLeDevice device){ + if(mDeviceMap.containsKey(device.getAddress())){ + + } else { + mDeviceMap.put(device.getAddress(), device); + } + } + + + public List getDeviceList(){ + final List methodResult = new ArrayList(mDeviceMap.values()); + + + Collections.sort(methodResult, new Comparator() { + + @Override + public int compare(BluetoothLeDevice arg0, BluetoothLeDevice arg1) { + return arg0.getAddress().compareToIgnoreCase(arg1.getAddress()); + } + }); + + + return methodResult; + } +}