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 (!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 = S.toStr(S.item(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);
}