don’t check for inRoster when doing jingle with oneself. fixes #3947

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/XmppActivity.java | 11 +++++---
1 file changed, 7 insertions(+), 4 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/XmppActivity.java 🔗

@@ -368,12 +368,13 @@ public abstract class XmppActivity extends ActionBarActivity {
 
     public void selectPresence(final Conversation conversation, final PresenceSelector.OnPresenceSelected listener) {
         final Contact contact = conversation.getContact();
-        if (!contact.showInRoster()) {
-            showAddToRosterDialog(conversation.getContact());
-        } else {
+        if (contact.showInRoster() || contact.isSelf()) {
             final Presences presences = contact.getPresences();
             if (presences.size() == 0) {
-                if (!contact.getOption(Contact.Options.TO)
+                if (contact.isSelf()) {
+                    conversation.setNextCounterpart(null);
+                    listener.onPresenceSelected();
+                } else if (!contact.getOption(Contact.Options.TO)
                         && !contact.getOption(Contact.Options.ASKING)
                         && contact.getAccount().getStatus() == Account.State.ONLINE) {
                     showAskForPresenceDialog(contact);
@@ -391,6 +392,8 @@ public abstract class XmppActivity extends ActionBarActivity {
             } else {
                 PresenceSelector.showPresenceSelectionDialog(this, conversation, listener);
             }
+        } else {
+            showAddToRosterDialog(conversation.getContact());
         }
     }