handleMethodCall method

  1. @override
Future<DBusMethodResponse> handleMethodCall(
  1. DBusMethodCall methodCall
)

Called when a method call is received on this object.

Implementation

@override
Future<DBusMethodResponse> handleMethodCall(DBusMethodCall methodCall) async {
  if (methodCall.interface != 'org.unifiedpush.Connector2') {
    return DBusMethodErrorResponse.unknownInterface();
  }
  if (methodCall.signature != DBusSignature('a{sv}')) {
    return DBusMethodErrorResponse.invalidArgs();
  }

  var args = methodCall.values[0].asStringVariantDict();
  var token = args["token"]?.asString();
  if (token == null) {
    return DBusMethodErrorResponse.invalidArgs();
  }
  var instance = (await storage.registrations.getFromToken(token))?.instance;
  if (instance == null) {
    return DBusMethodErrorResponse.invalidArgs();
  }
  switch (methodCall.name) {
    case "Message":
      return doOnMessage(instance, args);
    case "NewEndpoint":
      return doOnNewEndpoint(instance, args);
    case "Unregistered":
      return doOnUnregistered(instance);
    default:
      return DBusMethodErrorResponse.unknownMethod();
  }
}