public void Scan() { if (IsScanning == true) { scan?.Dispose(); IsScanning = false; } else { ScanedDevices.Clear(); IsScanning = true; scan = CrossBleAdapter.Current.Scan().Subscribe(result => { Device.BeginInvokeOnMainThread(() => { this.AddDevice(result); }); }); } }
private void AddDevice(IScanResult result) { bool isExited = false; int index = 0; foreach (var device in ScanedDevices) { if (device.Uuid.Equals(result.Device.Uuid.ToString())) { isExited = true; device.Update(result); break; } index++; } if (isExited == false) { if (IsFavorite) { return; } if (IsFiltering == false) { var d = new DeviceViewModel(result); ScanedDevices.Add(d); } else { var d = new DeviceViewModel(result); if (this.IsMeetFilteringCondition(d, filteringParam)) { ScanedDevices.Add(d); } } } }
public void EnableFavorite() { if (IsFavorite) { int index = 0; var deleteIndex = new List <int>(); foreach (var device in ScanedDevices) { if (!device.IsFavorite) { deleteIndex.Add(index); } index++; } deleteIndex.Reverse(); foreach (var i in deleteIndex) { ScanedDevices.RemoveAt(i); } } }
public void EnableFiltering() { if (IsFiltering) { int index = 0; var deleteIndex = new List <int>(); foreach (var device in ScanedDevices) { if (!this.IsMeetFilteringCondition(device, filteringParam)) { deleteIndex.Add(index); } index++; } deleteIndex.Reverse(); foreach (var i in deleteIndex) { ScanedDevices.RemoveAt(i); } } }