public ItemDetailPage() { InitializeComponent(); var item = new BLEDev(null); viewModel = new ItemDetailViewModel(item); BindingContext = viewModel; }
public NewItemPage() { InitializeComponent(); Item = new BLEDev { Name = "Item name", Description = "This is an item description." }; BindingContext = this; }
async private Task updateDev(BLEDev dev) { var old = Items.FirstOrDefault((x) => x.Id == dev.Id); if (old == null) { switch (Device.RuntimePlatform) { case Device.iOS: break; default: if (dev.iBeacon.valid) { if (dev.iBeacon.uuid == "{494E4743-4849-5053-4F46-46494345424A}") { await View.DisplayAlert("INGCHIPS", "Welcome to INGChips' Beijing Office!", "Got It"); } } break; } Items.Add(dev); } else { if (dev.BLEAdvSimpleInfos.Count < 1) { return; } var i = Items.IndexOf(old); Items[i] = dev; //Items.RemoveAt(i); // Items.Insert(i, dev); } }
public async Task ExecuteScan() { if (IsBusy) { return; } IsBusy = true; try { Items.Clear(); var adapter = CrossBluetoothLE.Current.Adapter; adapter.ScanTimeout = 0x7fffffff; switch (Device.RuntimePlatform) { case Device.UWP: adapter.ScanMode = Plugin.BLE.Abstractions.Contracts.ScanMode.Passive; break; } adapter.DeviceAdvertised += (s, a) => { var Item = new BLEDev(a.Device); MessagingCenter.Send(this, "ScanResult", Item); }; await adapter.StartScanningForDevicesAsync(); } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } }
public ItemDetailViewModel(BLEDev item = null) { Item = item; Title = item?.Name; }