If a command response indicates an XMPP URI, jump to that

Stephen Paul Weber created

If this is part of completed or canceled then the existing logic will close out
the command run since we do not set responseElement to anything here.

Change summary

src/main/java/eu/siacs/conversations/entities/Conversation.java | 9 +++
1 file changed, 9 insertions(+)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Conversation.java 🔗

@@ -3,6 +3,7 @@ package eu.siacs.conversations.entities;
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.database.Cursor;
 import android.database.DataSetObserver;
 import android.graphics.drawable.BitmapDrawable;
@@ -102,6 +103,7 @@ import eu.siacs.conversations.persistance.DatabaseBackend;
 import eu.siacs.conversations.services.AvatarService;
 import eu.siacs.conversations.services.QuickConversationsService;
 import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.ui.UriHandlerActivity;
 import eu.siacs.conversations.ui.text.FixedURLSpan;
 import eu.siacs.conversations.ui.util.ShareUtil;
 import eu.siacs.conversations.ui.util.SoftKeyboardUtils;
@@ -2480,6 +2482,13 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
                                     this.responseElement = el;
                                     break;
                                 }
+                                if (scheme.equals("xmpp")) {
+                                    final Intent intent = new Intent(getView().getContext(), UriHandlerActivity.class);
+                                    intent.setAction(Intent.ACTION_VIEW);
+                                    intent.setData(Uri.parse(url));
+                                    getView().getContext().startActivity(intent);
+                                    break;
+                                }
                             }
                         }
                         if (el.getName().equals("note") && el.getNamespace().equals("http://jabber.org/protocol/commands")) {