Change summary
src/main/java/eu/siacs/conversations/parser/AbstractParser.java | 14
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 4
2 files changed, 16 insertions(+), 2 deletions(-)
Detailed changes
@@ -141,6 +141,20 @@ public abstract class AbstractParser {
return null;
}
+ public static String errorMessage(Element packet) {
+ final Element error = packet.findChild("error");
+ if (error != null && error.getChildren().size() > 0) {
+ final List<String> errorNames = orderedElementNames(error.getChildren());
+ final String text = error.findChildContent("text");
+ if (text != null && !text.trim().isEmpty()) {
+ return text;
+ } else if (errorNames.size() > 0){
+ return errorNames.get(0).replace("-"," ");
+ }
+ }
+ return null;
+ }
+
private static String prefixError(List<String> errorNames) {
if (errorNames.size() > 0) {
return errorNames.get(0)+'\u001f';
@@ -1630,7 +1630,7 @@ public class XmppConnectionService extends Service {
final IqPacket request = new IqPacket(IqPacket.TYPE.SET);
request.setTo(jid);
final Element command = request.addChild("command", Namespace.COMMANDS);
- command.setAttribute("node", Namespace.COMMANDS);
+ command.setAttribute("node", Namespace.EASY_ONBOARDING_INVITE);
command.setAttribute("action", "execute");
sendIqPacket(account, request, (a, response) -> {
if (response.getType() == IqPacket.TYPE.RESULT) {
@@ -1649,7 +1649,7 @@ public class XmppConnectionService extends Service {
callback.inviteRequestFailed(getString(R.string.unable_to_parse_invite));
Log.d(Config.LOGTAG, response.toString());
} else if (response.getType() == IqPacket.TYPE.ERROR) {
- callback.inviteRequestFailed(IqParser.extractErrorMessage(response));
+ callback.inviteRequestFailed(IqParser.errorMessage(response));
} else {
callback.inviteRequestFailed(getString(R.string.remote_server_timeout));
}