BluetoothScanResult.fromMap constructor

BluetoothScanResult.fromMap(
  1. Map<String, dynamic> map
)

Implementation

factory BluetoothScanResult.fromMap(Map<String, dynamic> map) {
  // device 필드가 Map<Object?, Object?> 타입일 수 있으므로 안전하게 변환
  final deviceMap = map['device'];
  Map<String, dynamic> safeDeviceMap;

  if (deviceMap is Map<String, dynamic>) {
    safeDeviceMap = deviceMap;
  } else if (deviceMap is Map<Object?, Object?>) {
    safeDeviceMap = Map<String, dynamic>.from(deviceMap);
  } else {
    throw ArgumentError('Invalid device map type: ${deviceMap.runtimeType}');
  }

  return BluetoothScanResult(
    device: BluetoothDevice.fromMap(safeDeviceMap),
    timestamp: DateTime.fromMillisecondsSinceEpoch(
      map['timestamp'] as int? ?? 0,
    ),
    isFirstScan: map['isFirstScan'] as bool? ?? false,
  );
}