Search in sources :

Example 21 with Jid

use of eu.siacs.conversations.xmpp.Jid in project Conversations by siacs.

the class Account method fromCursor.

public static Account fromCursor(final Cursor cursor) {
    final Jid jid;
    try {
        String resource = cursor.getString(cursor.getColumnIndex(RESOURCE));
        jid = Jid.of(cursor.getString(cursor.getColumnIndex(USERNAME)), cursor.getString(cursor.getColumnIndex(SERVER)), resource == null || resource.trim().isEmpty() ? null : resource);
    } catch (final IllegalArgumentException ignored) {
        Log.d(Config.LOGTAG, cursor.getString(cursor.getColumnIndex(USERNAME)) + "@" + cursor.getString(cursor.getColumnIndex(SERVER)));
        throw new AssertionError(ignored);
    }
    return new Account(cursor.getString(cursor.getColumnIndex(UUID)), jid, cursor.getString(cursor.getColumnIndex(PASSWORD)), cursor.getInt(cursor.getColumnIndex(OPTIONS)), cursor.getString(cursor.getColumnIndex(ROSTERVERSION)), cursor.getString(cursor.getColumnIndex(KEYS)), cursor.getString(cursor.getColumnIndex(AVATAR)), cursor.getString(cursor.getColumnIndex(DISPLAY_NAME)), cursor.getString(cursor.getColumnIndex(HOSTNAME)), cursor.getInt(cursor.getColumnIndex(PORT)), Presence.Status.fromShowString(cursor.getString(cursor.getColumnIndex(STATUS))), cursor.getString(cursor.getColumnIndex(STATUS_MESSAGE)));
}
Also used : Jid(eu.siacs.conversations.xmpp.Jid)

Example 22 with Jid

use of eu.siacs.conversations.xmpp.Jid in project Conversations by siacs.

the class Conversation method findMessageWithRemoteIdAndCounterpart.

public Message findMessageWithRemoteIdAndCounterpart(String id, Jid counterpart, boolean received, boolean carbon) {
    synchronized (this.messages) {
        for (int i = this.messages.size() - 1; i >= 0; --i) {
            final Message message = messages.get(i);
            final Jid mcp = message.getCounterpart();
            if (mcp == null) {
                continue;
            }
            if (mcp.equals(counterpart) && ((message.getStatus() == Message.STATUS_RECEIVED) == received) && (carbon == message.isCarbon() || received)) {
                final boolean idMatch = id.equals(message.getRemoteMsgId()) || message.remoteMsgIdMatchInEdit(id);
                if (idMatch && !message.isFileOrImage() && !message.treatAsDownloadable()) {
                    return message;
                } else {
                    return null;
                }
            }
        }
    }
    return null;
}
Also used : Jid(eu.siacs.conversations.xmpp.Jid)

Example 23 with Jid

use of eu.siacs.conversations.xmpp.Jid in project Conversations by siacs.

the class WelcomeActivity method processXmppUri.

private void processXmppUri(final XmppUri xmppUri) {
    if (!xmppUri.isValidJid()) {
        return;
    }
    final String preAuth = xmppUri.getParameter(XmppUri.PARAMETER_PRE_AUTH);
    final Jid jid = xmppUri.getJid();
    final Intent intent;
    if (xmppUri.isAction(XmppUri.ACTION_REGISTER)) {
        intent = SignupUtils.getTokenRegistrationIntent(this, jid, preAuth);
    } else if (xmppUri.isAction(XmppUri.ACTION_ROSTER) && "y".equals(xmppUri.getParameter(XmppUri.PARAMETER_IBR))) {
        intent = SignupUtils.getTokenRegistrationIntent(this, jid.getDomain(), preAuth);
        intent.putExtra(StartConversationActivity.EXTRA_INVITE_URI, xmppUri.toString());
    } else {
        intent = null;
    }
    if (intent != null) {
        startActivity(intent);
        finish();
        return;
    }
    this.inviteUri = xmppUri;
}
Also used : Jid(eu.siacs.conversations.xmpp.Jid) Intent(android.content.Intent)

Example 24 with Jid

use of eu.siacs.conversations.xmpp.Jid in project Conversations by siacs.

the class MucOptions method updateConfiguration.

public boolean updateConfiguration(ServiceDiscoveryResult serviceDiscoveryResult) {
    this.serviceDiscoveryResult = serviceDiscoveryResult;
    String name;
    Field roomConfigName = getRoomInfoForm().getFieldByName("muc#roomconfig_roomname");
    if (roomConfigName != null) {
        name = roomConfigName.getValue();
    } else {
        List<ServiceDiscoveryResult.Identity> identities = serviceDiscoveryResult.getIdentities();
        String identityName = identities.size() > 0 ? identities.get(0).getName() : null;
        final Jid jid = conversation.getJid();
        if (identityName != null && !identityName.equals(jid == null ? null : jid.getEscapedLocal())) {
            name = identityName;
        } else {
            name = null;
        }
    }
    boolean changed = conversation.setAttribute("muc_name", name);
    changed |= conversation.setAttribute(Conversation.ATTRIBUTE_MEMBERS_ONLY, this.hasFeature("muc_membersonly"));
    changed |= conversation.setAttribute(Conversation.ATTRIBUTE_MODERATED, this.hasFeature("muc_moderated"));
    changed |= conversation.setAttribute(Conversation.ATTRIBUTE_NON_ANONYMOUS, this.hasFeature("muc_nonanonymous"));
    return changed;
}
Also used : Field(eu.siacs.conversations.xmpp.forms.Field) Jid(eu.siacs.conversations.xmpp.Jid)

Example 25 with Jid

use of eu.siacs.conversations.xmpp.Jid in project Conversations by siacs.

the class StartConversationActivity method onJoinDialogPositiveClick.

@Override
public void onJoinDialogPositiveClick(Dialog dialog, Spinner spinner, TextInputLayout layout, AutoCompleteTextView jid, boolean isBookmarkChecked) {
    if (!xmppConnectionServiceBound) {
        return;
    }
    final Account account = getSelectedAccount(this, spinner);
    if (account == null) {
        return;
    }
    final String input = jid.getText().toString();
    Jid conferenceJid;
    try {
        conferenceJid = Jid.ofEscaped(input);
    } catch (final IllegalArgumentException e) {
        final XmppUri xmppUri = new XmppUri(input);
        if (xmppUri.isValidJid() && xmppUri.isAction(XmppUri.ACTION_JOIN)) {
            final Editable editable = jid.getEditableText();
            editable.clear();
            editable.append(xmppUri.getJid().toEscapedString());
            conferenceJid = xmppUri.getJid();
        } else {
            layout.setError(getString(R.string.invalid_jid));
            return;
        }
    }
    if (isBookmarkChecked) {
        Bookmark bookmark = account.getBookmark(conferenceJid);
        if (bookmark != null) {
            dialog.dismiss();
            openConversationsForBookmark(bookmark);
        } else {
            bookmark = new Bookmark(account, conferenceJid.asBareJid());
            bookmark.setAutojoin(getBooleanPreference("autojoin", R.bool.autojoin));
            final String nick = conferenceJid.getResource();
            if (nick != null && !nick.isEmpty() && !nick.equals(MucOptions.defaultNick(account))) {
                bookmark.setNick(nick);
            }
            xmppConnectionService.createBookmark(account, bookmark);
            final Conversation conversation = xmppConnectionService.findOrCreateConversation(account, conferenceJid, true, true, true);
            bookmark.setConversation(conversation);
            dialog.dismiss();
            switchToConversation(conversation);
        }
    } else {
        final Conversation conversation = xmppConnectionService.findOrCreateConversation(account, conferenceJid, true, true, true);
        dialog.dismiss();
        switchToConversation(conversation);
    }
}
Also used : Account(eu.siacs.conversations.entities.Account) Jid(eu.siacs.conversations.xmpp.Jid) XmppUri(eu.siacs.conversations.utils.XmppUri) Bookmark(eu.siacs.conversations.entities.Bookmark) Editable(android.text.Editable) Conversation(eu.siacs.conversations.entities.Conversation)

Aggregations

Jid (eu.siacs.conversations.xmpp.Jid)106 Account (eu.siacs.conversations.entities.Account)35 Element (eu.siacs.conversations.xml.Element)24 Conversation (eu.siacs.conversations.entities.Conversation)22 Contact (eu.siacs.conversations.entities.Contact)17 InvalidJid (eu.siacs.conversations.xmpp.InvalidJid)16 IqPacket (eu.siacs.conversations.xmpp.stanzas.IqPacket)16 Intent (android.content.Intent)15 ArrayList (java.util.ArrayList)13 MucOptions (eu.siacs.conversations.entities.MucOptions)12 Bookmark (eu.siacs.conversations.entities.Bookmark)10 AxolotlService (eu.siacs.conversations.crypto.axolotl.AxolotlService)7 Message (eu.siacs.conversations.entities.Message)7 OnIqPacketReceived (eu.siacs.conversations.xmpp.OnIqPacketReceived)6 MessagePacket (eu.siacs.conversations.xmpp.stanzas.MessagePacket)6 Map (java.util.Map)6 XmppUri (eu.siacs.conversations.utils.XmppUri)5 XmppConnectionService (eu.siacs.conversations.services.XmppConnectionService)4 Avatar (eu.siacs.conversations.xmpp.pep.Avatar)4 HashMap (java.util.HashMap)4