execute method

  1. @override
Future<bool?> execute(
  1. String caller,
  2. String propertyOrFunction,
  3. List arguments
)
override

Implementation

@override
Future<bool?> execute(
    String caller, String propertyOrFunction, List<dynamic> arguments) async {
  /// setter
  if (scope == null) return null;

  if (!FmlEngine.isMobile) {
    System.toast("NFC is only available on mobile devices", duration: 4);
    statusmessage = "NFC is only available on mobile devices";
    return false;
  }

  String function = propertyOrFunction.toLowerCase().trim();
  if (function == "write") {
    statusmessage = "Approach an NFC tag to Write";
    String? message = toStr(elementAt(arguments, 0));
    return await _write(message, restart: true);
  } else if (method?.toLowerCase().trim() == "read") {
    switch (function) {
      case "read":
      case "start":
        statusmessage = "Approach an NFC tag to read";
        Reader().registerListener(this);
        return true;
      case "stop":
        statusmessage = "Please Start NFC Reader";
        return await stop();
    }
  } else if (method?.toLowerCase().trim() == "write") {
    switch (function) {
      case "start":
      case "write":
        statusmessage = "Approach an NFC tag to write";
        String? message = body;
        return await _write(message);
      case "stop":
        statusmessage = "Please Start NFC Reader";
        return await stop();
    }
  }
  return super.execute(caller, propertyOrFunction, arguments);
}