Search in sources :

Example 41 with Account

use of de.pixart.messenger.entities.Account in project Pix-Art-Messenger by kriztan.

the class ShareWithActivity method share.

private void share(final Conversation conversation) {
    if (share.uris.size() != 0 && !hasStoragePermission(REQUEST_STORAGE_PERMISSION)) {
        mPendingConversation = conversation;
        return;
    }
    final Account account = conversation.getAccount();
    final XmppConnection connection = account.getXmppConnection();
    final long max = connection == null ? -1 : connection.getFeatures().getMaxHttpUploadSize();
    mListView.setEnabled(false);
    if (conversation.getNextEncryption() == Message.ENCRYPTION_PGP && !hasPgp()) {
        if (share.uuid == null) {
            showInstallPgpDialog();
        } else {
            Toast.makeText(this, R.string.openkeychain_not_installed, Toast.LENGTH_SHORT).show();
            finish();
        }
        return;
    }
    if (share.uris.size() != 0) {
        PresenceSelector.OnPresenceSelected callback = () -> {
            attachmentCounter.set(share.uris.size());
            if (share.image) {
                Log.d(Config.LOGTAG, "ShareWithActivity share() image " + share.uris.size() + " uri(s) " + share.uris.toString());
                share.multiple = share.uris.size() > 1;
                replaceToast(getString(share.multiple ? R.string.preparing_images : R.string.preparing_image));
                for (Iterator<Uri> i = share.uris.iterator(); i.hasNext(); i.remove()) {
                    final Uri uri = i.next();
                    delegateUriPermissionsToService(uri);
                    xmppConnectionService.attachImageToConversation(conversation, uri, attachFileCallback);
                }
            } else {
                Log.d(Config.LOGTAG, "ShareWithActivity share() file " + share.uris.size() + " uri(s) " + share.uris.toString());
                replaceToast(getString(R.string.preparing_file));
                final Uri uri = share.uris.get(0);
                delegateUriPermissionsToService(uri);
                xmppConnectionService.attachFileToConversation(conversation, uri, share.type, attachFileCallback);
                finish();
            }
        };
        if (account.httpUploadAvailable() && ((share.image && !neverCompressPictures()) || conversation.getMode() == Conversation.MODE_MULTI || FileBackend.allFilesUnderSize(this, share.uris, max)) && conversation.getNextEncryption() != Message.ENCRYPTION_OTR) {
            callback.onPresenceSelected();
        } else {
            selectPresence(conversation, callback);
        }
    } else {
        if (mReturnToPrevious && this.share.text != null && !this.share.text.isEmpty()) {
            final PresenceSelector.OnPresenceSelected callback = new PresenceSelector.OnPresenceSelected() {

                private void finishAndSend(Message message) {
                    replaceToast(getString(R.string.shared_text_with_x, conversation.getName()));
                    finish();
                }

                private UiCallback<Message> messageEncryptionCallback = new UiCallback<Message>() {

                    @Override
                    public void success(final Message message) {
                        message.setEncryption(Message.ENCRYPTION_DECRYPTED);
                        runOnUiThread(() -> finishAndSend(message));
                    }

                    @Override
                    public void error(final int errorCode, Message object) {
                        runOnUiThread(() -> {
                            replaceToast(getString(errorCode));
                            finish();
                        });
                    }

                    @Override
                    public void userInputRequried(PendingIntent pi, Message object) {
                        finish();
                    }
                };

                @Override
                public void onPresenceSelected() {
                    final int encryption = conversation.getNextEncryption();
                    Message message = new Message(conversation, share.text, encryption);
                    Log.d(Config.LOGTAG, "on presence selected encrpytion=" + encryption);
                    if (encryption == Message.ENCRYPTION_PGP) {
                        replaceToast(getString(R.string.encrypting_message));
                        xmppConnectionService.getPgpEngine().encrypt(message, messageEncryptionCallback);
                        return;
                    }
                    if (encryption == Message.ENCRYPTION_OTR) {
                        message.setCounterpart(conversation.getNextCounterpart());
                    }
                    xmppConnectionService.sendMessage(message);
                    finishAndSend(message);
                }
            };
            if (conversation.getNextEncryption() == Message.ENCRYPTION_OTR) {
                selectPresence(conversation, callback);
            } else {
                callback.onPresenceSelected();
            }
        } else {
            final PresenceSelector.OnPresenceSelected callback = () -> {
                Message message = new Message(conversation, share.text, conversation.getNextEncryption());
                if (conversation.getNextEncryption() == Message.ENCRYPTION_OTR) {
                    message.setCounterpart(conversation.getNextCounterpart());
                }
                xmppConnectionService.sendMessage(message);
                replaceToast(getString(R.string.shared_text_with_x, conversation.getName()));
                switchToConversation(message.getConversation());
            };
            if (conversation.getNextEncryption() == Message.ENCRYPTION_OTR) {
                selectPresence(conversation, callback);
            } else {
                callback.onPresenceSelected();
            }
        }
    }
}
Also used : Account(de.pixart.messenger.entities.Account) Message(de.pixart.messenger.entities.Message) Uri(android.net.Uri) XmppConnection(de.pixart.messenger.xmpp.XmppConnection) PresenceSelector(de.pixart.messenger.ui.util.PresenceSelector) Iterator(java.util.Iterator) PendingIntent(android.app.PendingIntent)

Example 42 with Account

use of de.pixart.messenger.entities.Account in project Pix-Art-Messenger by kriztan.

the class StartConversationActivity method filterConferences.

protected void filterConferences(String needle) {
    this.conferences.clear();
    for (Account account : xmppConnectionService.getAccounts()) {
        if (account.getStatus() != Account.State.DISABLED) {
            for (Bookmark bookmark : account.getBookmarks()) {
                if (bookmark.match(this, needle)) {
                    this.conferences.add(bookmark);
                }
            }
        }
    }
    Collections.sort(this.conferences);
    mConferenceAdapter.notifyDataSetChanged();
}
Also used : Account(de.pixart.messenger.entities.Account) Bookmark(de.pixart.messenger.entities.Bookmark)

Example 43 with Account

use of de.pixart.messenger.entities.Account in project Pix-Art-Messenger by kriztan.

the class StartConversationActivity method showCreateConferenceDialog.

private void showCreateConferenceDialog() {
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(R.string.create_conference);
    final View dialogView = getLayoutInflater().inflate(R.layout.create_conference_dialog, null);
    final TextView yourAccount = dialogView.findViewById(R.id.your_account);
    final Spinner spinner = dialogView.findViewById(R.id.account);
    final EditText subject = dialogView.findViewById(R.id.subject);
    populateAccountSpinner(this, mActivatedAccounts, spinner);
    if (xmppConnectionService.multipleAccounts()) {
        yourAccount.setVisibility(View.VISIBLE);
        spinner.setVisibility(View.VISIBLE);
    } else {
        yourAccount.setVisibility(View.GONE);
        spinner.setVisibility(View.GONE);
    }
    builder.setView(dialogView);
    builder.setPositiveButton(R.string.choose_participants, (dialog, which) -> {
        if (!xmppConnectionServiceBound) {
            return;
        }
        final Account account = getSelectedAccount(spinner);
        if (account == null) {
            return;
        }
        Intent intent = new Intent(getApplicationContext(), ChooseContactActivity.class);
        intent.putExtra("multiple", true);
        intent.putExtra("show_enter_jid", true);
        intent.putExtra("subject", subject.getText().toString());
        intent.putExtra(EXTRA_ACCOUNT, account.getJid().toBareJid().toString());
        intent.putExtra(ChooseContactActivity.EXTRA_TITLE_RES_ID, R.string.choose_participants);
        startActivityForResult(intent, REQUEST_CREATE_CONFERENCE);
    });
    builder.setNegativeButton(R.string.cancel, null);
    mCurrentDialog = builder.create();
    mCurrentDialog.show();
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) EditText(android.widget.EditText) Account(de.pixart.messenger.entities.Account) Spinner(android.widget.Spinner) TextView(android.widget.TextView) AutoCompleteTextView(android.widget.AutoCompleteTextView) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) ListView(android.widget.ListView) AutoCompleteTextView(android.widget.AutoCompleteTextView)

Example 44 with Account

use of de.pixart.messenger.entities.Account in project Pix-Art-Messenger by kriztan.

the class MessageAdapter method getView.

@Override
public View getView(int position, View view, ViewGroup parent) {
    final Message message = getItem(position);
    final boolean omemoEncryption = message.getEncryption() == Message.ENCRYPTION_AXOLOTL;
    final boolean isInValidSession = message.isValidInSession() && (!omemoEncryption || message.isTrusted());
    final Conversation conversation = message.getConversation();
    final Account account = conversation.getAccount();
    final int type = getItemViewType(position);
    ViewHolder viewHolder;
    if (view == null) {
        viewHolder = new ViewHolder();
        switch(type) {
            case DATE_SEPARATOR:
                view = activity.getLayoutInflater().inflate(R.layout.message_date_bubble, parent, false);
                viewHolder.status_message = view.findViewById(R.id.status_message);
                break;
            case SENT:
                view = activity.getLayoutInflater().inflate(R.layout.message_sent, parent, false);
                viewHolder.message_box = view.findViewById(R.id.message_box);
                viewHolder.contact_picture = view.findViewById(R.id.message_photo);
                viewHolder.audioPlayer = view.findViewById(R.id.audio_player);
                viewHolder.download_button = view.findViewById(R.id.download_button);
                viewHolder.resend_button = view.findViewById(R.id.resend_button);
                viewHolder.indicator = view.findViewById(R.id.security_indicator);
                viewHolder.edit_indicator = view.findViewById(R.id.edit_indicator);
                viewHolder.image = view.findViewById(R.id.message_image);
                viewHolder.messageBody = view.findViewById(R.id.message_body);
                viewHolder.time = view.findViewById(R.id.message_time);
                viewHolder.indicatorReceived = view.findViewById(R.id.indicator_received);
                viewHolder.indicatorRead = view.findViewById(R.id.indicator_read);
                break;
            case RECEIVED:
                view = activity.getLayoutInflater().inflate(R.layout.message_received, parent, false);
                viewHolder.message_box = view.findViewById(R.id.message_box);
                viewHolder.contact_picture = view.findViewById(R.id.message_photo);
                viewHolder.audioPlayer = view.findViewById(R.id.audio_player);
                viewHolder.download_button = view.findViewById(R.id.download_button);
                viewHolder.indicator = view.findViewById(R.id.security_indicator);
                viewHolder.edit_indicator = view.findViewById(R.id.edit_indicator);
                viewHolder.image = view.findViewById(R.id.message_image);
                viewHolder.messageBody = view.findViewById(R.id.message_body);
                viewHolder.time = view.findViewById(R.id.message_time);
                viewHolder.indicatorReceived = view.findViewById(R.id.indicator_received);
                viewHolder.encryption = view.findViewById(R.id.message_encryption);
                break;
            case STATUS:
                view = activity.getLayoutInflater().inflate(R.layout.message_status, parent, false);
                viewHolder.contact_picture = view.findViewById(R.id.message_photo);
                viewHolder.status_message = view.findViewById(R.id.status_message);
                viewHolder.load_more_messages = view.findViewById(R.id.load_more_messages);
                break;
            default:
                throw new AssertionError("Unknown view type");
        }
        if (viewHolder.messageBody != null) {
            listSelectionManager.onCreate(viewHolder.messageBody, new MessageBodyActionModeCallback(viewHolder.messageBody));
            viewHolder.messageBody.setCopyHandler(this);
        }
        view.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) view.getTag();
        if (viewHolder == null) {
            return view;
        }
    }
    // default: (type == SENT && (!isInValidSession || !mUseWhiteBackground));
    boolean darkBackground = false;
    if (type == DATE_SEPARATOR) {
        if (UIHelper.today(message.getTimeSent())) {
            viewHolder.status_message.setText(R.string.today);
        } else if (UIHelper.yesterday(message.getTimeSent())) {
            viewHolder.status_message.setText(R.string.yesterday);
        } else {
            viewHolder.status_message.setText(DateUtils.formatDateTime(activity, message.getTimeSent(), DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR));
        }
        return view;
    } else if (type == STATUS) {
        if ("LOAD_MORE".equals(message.getBody())) {
            viewHolder.status_message.setVisibility(View.GONE);
            viewHolder.contact_picture.setVisibility(View.GONE);
            viewHolder.load_more_messages.setVisibility(View.VISIBLE);
            viewHolder.load_more_messages.setOnClickListener(v -> loadMoreMessages(message.getConversation()));
        } else {
            viewHolder.status_message.setVisibility(View.VISIBLE);
            viewHolder.load_more_messages.setVisibility(View.GONE);
            viewHolder.status_message.setText(message.getBody());
            boolean showAvatar;
            if (conversation.getMode() == Conversation.MODE_SINGLE) {
                showAvatar = true;
                loadAvatar(message, viewHolder.contact_picture, activity.getPixel(32));
            } else if (message.getCounterpart() != null || message.getTrueCounterpart() != null || (message.getCounterparts() != null && message.getCounterparts().size() > 0)) {
                showAvatar = true;
                loadAvatar(message, viewHolder.contact_picture, activity.getPixel(32));
            } else {
                showAvatar = false;
            }
            if (showAvatar) {
                viewHolder.contact_picture.setAlpha(0.5f);
                viewHolder.contact_picture.setVisibility(View.VISIBLE);
            } else {
                viewHolder.contact_picture.setVisibility(View.GONE);
            }
        }
        return view;
    } else {
        loadAvatar(message, viewHolder.contact_picture, activity.getPixel(48));
    }
    viewHolder.contact_picture.setOnClickListener(v -> {
        if (MessageAdapter.this.mOnContactPictureClickedListener != null) {
            MessageAdapter.this.mOnContactPictureClickedListener.onContactPictureClicked(message);
        }
    });
    viewHolder.contact_picture.setOnLongClickListener(v -> {
        if (MessageAdapter.this.mOnContactPictureLongClickedListener != null) {
            MessageAdapter.this.mOnContactPictureLongClickedListener.onContactPictureLongClicked(message);
            return true;
        } else {
            return false;
        }
    });
    final Transferable transferable = message.getTransferable();
    if (transferable != null && transferable.getStatus() != Transferable.STATUS_UPLOADING) {
        if (transferable.getStatus() == Transferable.STATUS_OFFER) {
            displayDownloadableMessage(viewHolder, message, activity.getString(R.string.download_x_file, UIHelper.getFileDescriptionString(activity, message)));
        } else if (transferable.getStatus() == Transferable.STATUS_OFFER_CHECK_FILESIZE) {
            displayDownloadableMessage(viewHolder, message, activity.getString(R.string.check_x_filesize, UIHelper.getFileDescriptionString(activity, message)));
        } else {
            displayInfoMessage(viewHolder, UIHelper.getMessagePreview(activity, message).first, darkBackground);
        }
    } else if (message.getType() == Message.TYPE_IMAGE && message.getEncryption() != Message.ENCRYPTION_PGP && message.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {
        displayImageMessage(viewHolder, message);
    } else if (message.getType() == Message.TYPE_FILE && message.getEncryption() != Message.ENCRYPTION_PGP && message.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {
        if (message.getFileParams().width > 0 && message.getFileParams().height > 0) {
            displayImageMessage(viewHolder, message);
        } else if (message.getFileParams().runtime > 0) {
            displayAudioMessage(viewHolder, message, darkBackground);
        } else {
            displayOpenableMessage(viewHolder, message);
        }
    } else if (message.getEncryption() == Message.ENCRYPTION_PGP) {
        if (account.isPgpDecryptionServiceConnected()) {
            if (!account.hasPendingPgpIntent(conversation)) {
                displayInfoMessage(viewHolder, activity.getString(R.string.message_decrypting), darkBackground);
            } else {
                displayInfoMessage(viewHolder, activity.getString(R.string.pgp_message), darkBackground);
            }
        } else {
            displayInfoMessage(viewHolder, activity.getString(R.string.install_openkeychain), darkBackground);
            viewHolder.message_box.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    activity.showInstallPgpDialog();
                }
            });
        }
    } else if (message.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED) {
        displayDecryptionFailed(viewHolder, darkBackground);
    } else {
        if (message.isGeoUri()) {
            displayLocationMessage(viewHolder, message);
        } else if (message.bodyIsOnlyEmojis() && message.getType() != Message.TYPE_PRIVATE) {
            displayEmojiMessage(viewHolder, message.getBody().trim());
        } else if (message.isXmppUri()) {
            displayXmppMessage(viewHolder, message.getBody().trim());
        } else if (message.treatAsDownloadable()) {
            try {
                URL url = new URL(message.getBody());
                displayDownloadableMessage(viewHolder, message, activity.getString(R.string.check_x_filesize_on_host, UIHelper.getFileDescriptionString(activity, message), url.getHost()));
            } catch (Exception e) {
                displayDownloadableMessage(viewHolder, message, activity.getString(R.string.check_x_filesize, UIHelper.getFileDescriptionString(activity, message)));
            }
        } else {
            displayTextMessage(viewHolder, message, darkBackground, type);
        }
    }
    if (type == RECEIVED) {
        if (isInValidSession) {
            viewHolder.message_box.setBackgroundResource(R.drawable.message_bubble_received_white);
            viewHolder.encryption.setVisibility(View.GONE);
        } else {
            viewHolder.message_box.setBackgroundResource(R.drawable.message_bubble_received_lightred);
            viewHolder.encryption.setVisibility(View.VISIBLE);
            viewHolder.encryption.setTextColor(activity.getWarningTextColor());
            if (omemoEncryption && !message.isTrusted()) {
                viewHolder.encryption.setText(R.string.not_trusted);
            } else {
                viewHolder.encryption.setText(CryptoHelper.encryptionTypeToText(message.getEncryption()));
            }
        }
    }
    if (type == SENT) {
        if (mUseWhiteBackground) {
            viewHolder.message_box.setBackgroundResource(R.drawable.message_bubble_sent_white);
        } else {
            viewHolder.message_box.setBackgroundResource(R.drawable.message_bubble_sent_lightblue);
        }
    }
    displayStatus(viewHolder, message, type, darkBackground);
    return view;
}
Also used : EmojiWrapper(de.pixart.messenger.utils.EmojiWrapper) ActionMode(android.view.ActionMode) LinearLayout(android.widget.LinearLayout) DateUtils(android.text.format.DateUtils) PackageManager(android.content.pm.PackageManager) URL(java.net.URL) GeoHelper(de.pixart.messenger.utils.GeoHelper) Spannable(android.text.Spannable) Uri(android.net.Uri) WindowManager(android.view.WindowManager) ImageView(android.widget.ImageView) Drawable(android.graphics.drawable.Drawable) Account(de.pixart.messenger.entities.Account) Emoticons(de.pixart.messenger.utils.Emoticons) Manifest(android.Manifest) Matcher(java.util.regex.Matcher) Locale(java.util.Locale) View(android.view.View) Button(android.widget.Button) PreferenceManager(android.preference.PreferenceManager) XmppUri(de.pixart.messenger.utils.XmppUri) ForegroundColorSpan(android.text.style.ForegroundColorSpan) Log(android.util.Log) AsyncTask(android.os.AsyncTask) ClickableMovementMethod(de.pixart.messenger.ui.widget.ClickableMovementMethod) ContextCompat(android.support.v4.content.ContextCompat) AudioPlayer(de.pixart.messenger.services.AudioPlayer) BitmapDrawable(android.graphics.drawable.BitmapDrawable) ActivityCompat(android.support.v4.app.ActivityCompat) DisplayMetrics(android.util.DisplayMetrics) ViewGroup(android.view.ViewGroup) ListSelectionManager(de.pixart.messenger.ui.widget.ListSelectionManager) List(java.util.List) TextView(android.widget.TextView) FileParams(de.pixart.messenger.entities.Message.FileParams) Transferable(de.pixart.messenger.entities.Transferable) ActivityNotFoundException(android.content.ActivityNotFoundException) RelativeLayout(android.widget.RelativeLayout) CryptoHelper(de.pixart.messenger.utils.CryptoHelper) Pattern(java.util.regex.Pattern) UnsupportedEncodingException(java.io.UnsupportedEncodingException) DividerSpan(de.pixart.messenger.ui.text.DividerSpan) Typeface(android.graphics.Typeface) UIHelper(de.pixart.messenger.utils.UIHelper) Spanned(android.text.Spanned) MamReference(de.pixart.messenger.xmpp.mam.MamReference) MessageArchiveService(de.pixart.messenger.services.MessageArchiveService) ConversationActivity(de.pixart.messenger.ui.ConversationActivity) Intent(android.content.Intent) Linkify(android.text.util.Linkify) MenuItem(android.view.MenuItem) SpannableStringBuilder(android.text.SpannableStringBuilder) RejectedExecutionException(java.util.concurrent.RejectedExecutionException) FileBackend(de.pixart.messenger.persistance.FileBackend) Conversation(de.pixart.messenger.entities.Conversation) Patterns(de.pixart.messenger.utils.Patterns) R(de.pixart.messenger.R) Toast(android.widget.Toast) DiskCacheStrategy(com.bumptech.glide.load.engine.DiskCacheStrategy) NotificationService(de.pixart.messenger.services.NotificationService) ShowFullscreenMessageActivity(de.pixart.messenger.ui.ShowFullscreenMessageActivity) Menu(android.view.Menu) WeakReference(java.lang.ref.WeakReference) Config(de.pixart.messenger.Config) Message(de.pixart.messenger.entities.Message) ConversationFragment(de.pixart.messenger.ui.ConversationFragment) SpannableString(android.text.SpannableString) FingerprintStatus(de.pixart.messenger.crypto.axolotl.FingerprintStatus) StyleSpan(android.text.style.StyleSpan) BackgroundColorSpan(android.text.style.BackgroundColorSpan) RelativeSizeSpan(android.text.style.RelativeSizeSpan) DownloadableFile(de.pixart.messenger.entities.DownloadableFile) ResolveInfo(android.content.pm.ResolveInfo) Color(android.graphics.Color) ColorInt(android.support.annotation.ColorInt) XmppActivity(de.pixart.messenger.ui.XmppActivity) ArrayAdapter(android.widget.ArrayAdapter) CopyTextView(de.pixart.messenger.ui.widget.CopyTextView) StylingHelper(de.pixart.messenger.utils.StylingHelper) Glide(com.bumptech.glide.Glide) SharedPreferences(android.content.SharedPreferences) Bitmap(android.graphics.Bitmap) FixedURLSpan(de.pixart.messenger.ui.text.FixedURLSpan) QuoteSpan(de.pixart.messenger.ui.text.QuoteSpan) Base64(android.util.Base64) Activity(android.app.Activity) Resources(android.content.res.Resources) OnClickListener(android.view.View.OnClickListener) Account(de.pixart.messenger.entities.Account) Message(de.pixart.messenger.entities.Message) Transferable(de.pixart.messenger.entities.Transferable) Conversation(de.pixart.messenger.entities.Conversation) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) CopyTextView(de.pixart.messenger.ui.widget.CopyTextView) URL(java.net.URL) ActivityNotFoundException(android.content.ActivityNotFoundException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) RejectedExecutionException(java.util.concurrent.RejectedExecutionException) OnClickListener(android.view.View.OnClickListener)

Example 45 with Account

use of de.pixart.messenger.entities.Account in project Pix-Art-Messenger by kriztan.

the class OmemoActivity method addFingerprintRow.

protected void addFingerprintRow(LinearLayout keys, final XmppAxolotlSession session, boolean highlight) {
    final Account account = session.getAccount();
    final String fingerprint = session.getFingerprint();
    addFingerprintRowWithListeners(keys, session.getAccount(), fingerprint, highlight, session.getTrust(), true, true, (buttonView, isChecked) -> account.getAxolotlService().setFingerprintTrust(fingerprint, FingerprintStatus.createActive(isChecked)));
}
Also used : Account(de.pixart.messenger.entities.Account)

Aggregations

Account (de.pixart.messenger.entities.Account)104 IqPacket (de.pixart.messenger.xmpp.stanzas.IqPacket)39 OnIqPacketReceived (de.pixart.messenger.xmpp.OnIqPacketReceived)31 Jid (de.pixart.messenger.xmpp.jid.Jid)26 Element (de.pixart.messenger.xml.Element)23 InvalidJidException (de.pixart.messenger.xmpp.jid.InvalidJidException)19 Conversation (de.pixart.messenger.entities.Conversation)18 ArrayList (java.util.ArrayList)14 Intent (android.content.Intent)12 Contact (de.pixart.messenger.entities.Contact)12 Bookmark (de.pixart.messenger.entities.Bookmark)10 PendingIntent (android.app.PendingIntent)9 Message (de.pixart.messenger.entities.Message)8 Bundle (android.os.Bundle)7 AlertDialog (android.support.v7.app.AlertDialog)7 MucOptions (de.pixart.messenger.entities.MucOptions)7 List (java.util.List)7 SuppressLint (android.annotation.SuppressLint)6 Bitmap (android.graphics.Bitmap)6 View (android.view.View)6