Search in sources :

Example 16 with Jid

use of de.pixart.messenger.xmpp.jid.Jid in project Pix-Art-Messenger by kriztan.

the class AvatarService method get.

public Bitmap get(Message message, int size, boolean cachedOnly) {
    final Conversation conversation = message.getConversation();
    if (message.getType() == Message.TYPE_STATUS && message.getCounterparts() != null && message.getCounterparts().size() > 1) {
        return get(message.getCounterparts(), size, cachedOnly);
    } else if (message.getStatus() == Message.STATUS_RECEIVED) {
        Contact c = message.getContact();
        if (c != null && (c.getProfilePhoto() != null || c.getAvatar() != null)) {
            return get(c, size, cachedOnly);
        } else if (message.getConversation().getMode() == Conversation.MODE_MULTI) {
            final Jid trueCounterpart = message.getTrueCounterpart();
            MucOptions.User user;
            if (trueCounterpart != null) {
                user = conversation.getMucOptions().findUserByRealJid(trueCounterpart);
            } else {
                user = conversation.getMucOptions().findUserByFullJid(message.getCounterpart());
            }
            if (user != null) {
                return getImpl(user, size, cachedOnly);
            }
        } else if (c != null) {
            return get(c, size, cachedOnly);
        }
        Jid tcp = message.getTrueCounterpart();
        String seed = tcp != null ? tcp.toBareJid().toString() : null;
        return get(UIHelper.getMessageDisplayName(message), seed, size, cachedOnly);
    } else {
        return get(conversation.getAccount(), size, cachedOnly);
    }
}
Also used : MucOptions(de.pixart.messenger.entities.MucOptions) Jid(de.pixart.messenger.xmpp.jid.Jid) Conversation(de.pixart.messenger.entities.Conversation) Contact(de.pixart.messenger.entities.Contact)

Example 17 with Jid

use of de.pixart.messenger.xmpp.jid.Jid in project Pix-Art-Messenger by kriztan.

the class Message method fromCursor.

public static Message fromCursor(Cursor cursor, Conversation conversation) {
    Jid jid;
    try {
        String value = cursor.getString(cursor.getColumnIndex(COUNTERPART));
        if (value != null) {
            jid = Jid.fromString(value, true);
        } else {
            jid = null;
        }
    } catch (InvalidJidException e) {
        jid = null;
    } catch (IllegalStateException e) {
        // message too long?
        return null;
    }
    Jid trueCounterpart;
    try {
        String value = cursor.getString(cursor.getColumnIndex(TRUE_COUNTERPART));
        if (value != null) {
            trueCounterpart = Jid.fromString(value, true);
        } else {
            trueCounterpart = null;
        }
    } catch (InvalidJidException e) {
        trueCounterpart = null;
    }
    return new Message(conversation, cursor.getString(cursor.getColumnIndex(UUID)), cursor.getString(cursor.getColumnIndex(CONVERSATION)), jid, trueCounterpart, cursor.getString(cursor.getColumnIndex(BODY)), cursor.getLong(cursor.getColumnIndex(TIME_SENT)), cursor.getInt(cursor.getColumnIndex(ENCRYPTION)), cursor.getInt(cursor.getColumnIndex(STATUS)), cursor.getInt(cursor.getColumnIndex(TYPE)), cursor.getInt(cursor.getColumnIndex(CARBON)) > 0, cursor.getString(cursor.getColumnIndex(REMOTE_MSG_ID)), cursor.getString(cursor.getColumnIndex(RELATIVE_FILE_PATH)), cursor.getString(cursor.getColumnIndex(SERVER_MSG_ID)), cursor.getString(cursor.getColumnIndex(FINGERPRINT)), cursor.getInt(cursor.getColumnIndex(READ)) > 0, cursor.getString(cursor.getColumnIndex(EDITED)), cursor.getInt(cursor.getColumnIndex(OOB)) > 0, cursor.getString(cursor.getColumnIndex(ERROR_MESSAGE)), ReadByMarker.fromJsonString(cursor.getString(cursor.getColumnIndex(READ_BY_MARKERS))), cursor.getInt(cursor.getColumnIndex(MARKABLE)) > 0);
}
Also used : Jid(de.pixart.messenger.xmpp.jid.Jid) InvalidJidException(de.pixart.messenger.xmpp.jid.InvalidJidException)

Example 18 with Jid

use of de.pixart.messenger.xmpp.jid.Jid in project Pix-Art-Messenger by kriztan.

the class Account method setJid.

public boolean setJid(final Jid next) {
    final Jid previousFull = this.jid;
    final Jid prev = this.jid != null ? this.jid.toBareJid() : null;
    final boolean changed = prev == null || (next != null && !prev.equals(next.toBareJid()));
    if (changed) {
        final AxolotlService oldAxolotlService = this.axolotlService;
        if (oldAxolotlService != null) {
            oldAxolotlService.destroy();
            this.jid = next;
            this.axolotlService = oldAxolotlService.makeNew();
        }
    }
    this.jid = next;
    return next != null && next.equals(previousFull);
}
Also used : AxolotlService(de.pixart.messenger.crypto.axolotl.AxolotlService) Jid(de.pixart.messenger.xmpp.jid.Jid)

Example 19 with Jid

use of de.pixart.messenger.xmpp.jid.Jid in project Pix-Art-Messenger by kriztan.

the class ConversationFragment method showBlockSubmenu.

private boolean showBlockSubmenu(View view) {
    final Jid jid = conversation.getJid();
    if (jid.isDomainJid()) {
        BlockContactDialog.show(activity, conversation);
    } else {
        PopupMenu popupMenu = new PopupMenu(getActivity(), view);
        popupMenu.inflate(R.menu.block);
        popupMenu.setOnMenuItemClickListener(menuItem -> {
            Blockable blockable;
            switch(menuItem.getItemId()) {
                case R.id.block_domain:
                    blockable = conversation.getAccount().getRoster().getContact(jid.toDomainJid());
                    break;
                default:
                    blockable = conversation;
            }
            BlockContactDialog.show(activity, blockable);
            return true;
        });
        popupMenu.show();
    }
    return true;
}
Also used : Jid(de.pixart.messenger.xmpp.jid.Jid) PopupMenu(android.widget.PopupMenu) Blockable(de.pixart.messenger.entities.Blockable)

Example 20 with Jid

use of de.pixart.messenger.xmpp.jid.Jid in project Pix-Art-Messenger by kriztan.

the class ConversationFragment method trustKeysIfNeeded.

protected boolean trustKeysIfNeeded(int requestCode, int attachmentChoice) {
    AxolotlService axolotlService = conversation.getAccount().getAxolotlService();
    final List<Jid> targets = axolotlService.getCryptoTargets(conversation);
    boolean hasUnaccepted = !conversation.getAcceptedCryptoTargets().containsAll(targets);
    boolean hasUndecidedOwn = !axolotlService.getKeysWithTrust(FingerprintStatus.createActiveUndecided()).isEmpty();
    boolean hasUndecidedContacts = !axolotlService.getKeysWithTrust(FingerprintStatus.createActiveUndecided(), targets).isEmpty();
    boolean hasPendingKeys = !axolotlService.findDevicesWithoutSession(conversation).isEmpty();
    boolean hasNoTrustedKeys = axolotlService.anyTargetHasNoTrustedKeys(targets);
    if (hasUndecidedOwn || hasUndecidedContacts || hasPendingKeys || hasNoTrustedKeys || hasUnaccepted) {
        axolotlService.createSessionsIfNeeded(conversation);
        Intent intent = new Intent(getActivity(), TrustKeysActivity.class);
        String[] contacts = new String[targets.size()];
        for (int i = 0; i < contacts.length; ++i) {
            contacts[i] = targets.get(i).toString();
        }
        intent.putExtra("contacts", contacts);
        intent.putExtra(EXTRA_ACCOUNT, conversation.getAccount().getJid().toBareJid().toString());
        intent.putExtra("choice", attachmentChoice);
        intent.putExtra("conversation", conversation.getUuid());
        startActivityForResult(intent, requestCode);
        return true;
    } else {
        return false;
    }
}
Also used : AxolotlService(de.pixart.messenger.crypto.axolotl.AxolotlService) Jid(de.pixart.messenger.xmpp.jid.Jid) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) SuppressLint(android.annotation.SuppressLint)

Aggregations

Jid (de.pixart.messenger.xmpp.jid.Jid)75 InvalidJidException (de.pixart.messenger.xmpp.jid.InvalidJidException)26 Account (de.pixart.messenger.entities.Account)24 Element (de.pixart.messenger.xml.Element)19 Conversation (de.pixart.messenger.entities.Conversation)18 IqPacket (de.pixart.messenger.xmpp.stanzas.IqPacket)15 Contact (de.pixart.messenger.entities.Contact)14 MucOptions (de.pixart.messenger.entities.MucOptions)11 ArrayList (java.util.ArrayList)11 OnIqPacketReceived (de.pixart.messenger.xmpp.OnIqPacketReceived)8 Message (de.pixart.messenger.entities.Message)7 Intent (android.content.Intent)6 AxolotlService (de.pixart.messenger.crypto.axolotl.AxolotlService)6 Bookmark (de.pixart.messenger.entities.Bookmark)6 MessagePacket (de.pixart.messenger.xmpp.stanzas.MessagePacket)4 Map (java.util.Map)4 SuppressLint (android.annotation.SuppressLint)3 AlertDialog (android.support.v7.app.AlertDialog)3 XmppAxolotlMessage (de.pixart.messenger.crypto.axolotl.XmppAxolotlMessage)3 HashMap (java.util.HashMap)3