Пример #1
0
 /// <summary>
 /// New devices found.
 /// </summary>
 private void CallBack(List <AndroidDevice> list)
 {
     lock (devicesLock)
     {
         // Look for removed devices
         var removed = devices.Where(x => list.All(y => y.Serial != x.Serial)).ToList();
         foreach (var device in removed)
         {
             devices.Remove(device);
             DeviceRemoved.Fire(this, new EventArgs <AndroidDevice>(device));
         }
         // Look for added or changed devices
         foreach (var device in list)
         {
             var serial   = device.Serial;
             var existing = devices.FirstOrDefault(x => x.Serial == serial);
             if (existing == null)
             {
                 // Device added
                 devices.Add(device);
                 DeviceAdded.Fire(this, new EventArgs <AndroidDevice>(device));
             }
             else if (existing.DeviceState != device.DeviceState)
             {
                 // State changed
                 devices.Remove(existing);
                 devices.Add(device);
                 DeviceStateChanged.Fire(this, new EventArgs <AndroidDevice>(device));
             }
         }
         receivedInitialUpdate = true;
         Monitor.PulseAll(devicesLock);
     }
 }
Пример #2
0
 /// <summary>
 /// A device has been removed.
 /// </summary>
 void OnDeviceRemoved(object sender, EventArgs <AndroidDevice> e)
 {
     if (InvokeRequired)
     {
         Invoke(new EventHandler <EventArgs <AndroidDevice> >(OnDeviceRemoved), sender, e);
     }
     else
     {
         RemoveItemsBySerial(e.Data.Serial);
         ReloadList();
         UpdateNoDevicesItem();
         DeviceRemoved.Fire(this, e);
     }
 }