static void FB_AMRestorableDeviceListenerCallback()

in FBDeviceControl/Management/FBAMRestorableDeviceManager.m [38:64]


static void FB_AMRestorableDeviceListenerCallback(AMRestorableDeviceRef device, AMRestorableDeviceNotificationType status, void *context)
{
  FBAMRestorableDeviceManager *manager = (__bridge FBAMRestorableDeviceManager *)context;
  id<FBControlCoreLogger> logger = manager.logger;
  AMRestorableDeviceState deviceState = manager.calls.RestorableDeviceGetState(device);
  FBiOSTargetState targetState = [FBAMRestorableDevice targetStateForDeviceState:deviceState];
  NSString *identifier = [@(manager.calls.RestorableDeviceGetECID(device)) stringValue];
  [logger logFormat:@"%@ %@ in state %@", device, NotificationTypeToString(status), FBiOSTargetStateStringFromState(targetState)];
  if (manager.ecidFilter && ![identifier isEqualToString:manager.ecidFilter]) {
    [logger logFormat:@"Ignoring %@ as it does not match filter of %@", device, manager.ecidFilter];
    return;
  }
  switch (status) {
    case AMRestorableDeviceNotificationTypeConnected: {
      NSDictionary<NSString *, id> *info = [manager infoForRestorableDevice:device];
      [logger logFormat:@"Caching restorable device values %@", info];
      [manager deviceConnected:device identifier:identifier info:info];
      return;
    }
    case AMRestorableDeviceNotificationTypeDisconnected:
      [manager deviceDisconnected:device identifier:identifier];
      return;
    default:
      [logger logFormat:@"Unknown Restorable Notification %d", status];
      return;
  }
}