handleMethodCall method
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();
}
}