PrinterInfo.fromString constructor

PrinterInfo.fromString(
  1. String info
)

Creates PrinterInfo from raw string response Parses the string format returned from Android: "Model: ZD421\nSeri No: XXXX\nFirmware: V84.20.11Z\nDil: ZPL\n"

Implementation

factory PrinterInfo.fromString(String info) {
  final lines = info.split('\n');

  String model = 'Unknown';
  String serialNumber = 'Unknown';
  String firmware = 'Unknown';
  String languageStr = 'Unknown';

  for (var line in lines) {
    if (line.contains('Model:')) {
      model = line.split(':').last.trim();
    } else if (line.contains('Seri No:')) {
      serialNumber = line.split(':').last.trim();
    } else if (line.contains('Firmware:')) {
      firmware = line.split(':').last.trim();
    } else if (line.contains('Dil:')) {
      languageStr = line.split(':').last.trim();
    }
  }

  return PrinterInfo(
    model: model,
    serialNumber: serialNumber,
    firmware: firmware,
    language: PrinterLanguage.fromString(languageStr),
    rawInfo: info,
  );
}