printer_model.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import 'package:flutter_hbb/common.dart';
  2. import 'package:flutter_hbb/consts.dart';
  3. import 'package:flutter_hbb/models/platform_model.dart';
  4. class PrinterOptions {
  5. String action;
  6. List<String> printerNames;
  7. String printerName;
  8. PrinterOptions(
  9. {required this.action,
  10. required this.printerNames,
  11. required this.printerName});
  12. static PrinterOptions load() {
  13. var action = bind.mainGetLocalOption(key: kKeyPrinterIncomingJobAction);
  14. if (![
  15. kValuePrinterIncomingJobDismiss,
  16. kValuePrinterIncomingJobDefault,
  17. kValuePrinterIncomingJobSelected
  18. ].contains(action)) {
  19. action = kValuePrinterIncomingJobDefault;
  20. }
  21. final printerNames = getPrinterNames();
  22. var selectedPrinterName = bind.mainGetLocalOption(key: kKeyPrinterSelected);
  23. if (!printerNames.contains(selectedPrinterName)) {
  24. if (action == kValuePrinterIncomingJobSelected) {
  25. action = kValuePrinterIncomingJobDefault;
  26. bind.mainSetLocalOption(
  27. key: kKeyPrinterIncomingJobAction,
  28. value: kValuePrinterIncomingJobDefault);
  29. if (printerNames.isEmpty) {
  30. selectedPrinterName = '';
  31. } else {
  32. selectedPrinterName = printerNames.first;
  33. }
  34. bind.mainSetLocalOption(
  35. key: kKeyPrinterSelected, value: selectedPrinterName);
  36. }
  37. }
  38. return PrinterOptions(
  39. action: action,
  40. printerNames: printerNames,
  41. printerName: selectedPrinterName);
  42. }
  43. }