Search in sources :

Example 1 with XmppActivity

use of eu.siacs.conversations.ui.XmppActivity in project Conversations by siacs.

the class UserAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
    final MucOptions.User user = getItem(position);
    AvatarWorkerTask.loadAvatar(user, viewHolder.binding.contactPhoto, R.dimen.avatar);
    viewHolder.binding.getRoot().setOnClickListener(v -> {
        final XmppActivity activity = XmppActivity.find(v);
        if (activity != null) {
            activity.highlightInMuc(user.getConversation(), user.getName());
        }
    });
    viewHolder.binding.getRoot().setTag(user);
    viewHolder.binding.getRoot().setOnCreateContextMenuListener(this);
    viewHolder.binding.getRoot().setOnLongClickListener(v -> {
        selectedUser = user;
        return false;
    });
    final String name = user.getName();
    final Contact contact = user.getContact();
    if (contact != null) {
        final String displayName = contact.getDisplayName();
        viewHolder.binding.contactDisplayName.setText(displayName);
        if (name != null && !name.equals(displayName)) {
            viewHolder.binding.contactJid.setText(String.format("%s \u2022 %s", name, ConferenceDetailsActivity.getStatus(viewHolder.binding.getRoot().getContext(), user, advancedMode)));
        } else {
            viewHolder.binding.contactJid.setText(ConferenceDetailsActivity.getStatus(viewHolder.binding.getRoot().getContext(), user, advancedMode));
        }
    } else {
        viewHolder.binding.contactDisplayName.setText(name == null ? "" : name);
        viewHolder.binding.contactJid.setText(ConferenceDetailsActivity.getStatus(viewHolder.binding.getRoot().getContext(), user, advancedMode));
    }
    if (advancedMode && user.getPgpKeyId() != 0) {
        viewHolder.binding.key.setVisibility(View.VISIBLE);
        viewHolder.binding.key.setOnClickListener(v -> {
            final XmppActivity activity = XmppActivity.find(v);
            final XmppConnectionService service = activity == null ? null : activity.xmppConnectionService;
            final PgpEngine pgpEngine = service == null ? null : service.getPgpEngine();
            if (pgpEngine != null) {
                PendingIntent intent = pgpEngine.getIntentForKey(user.getPgpKeyId());
                if (intent != null) {
                    try {
                        activity.startIntentSenderForResult(intent.getIntentSender(), 0, null, 0, 0, 0);
                    } catch (IntentSender.SendIntentException ignored) {
                    }
                }
            }
        });
        viewHolder.binding.key.setText(OpenPgpUtils.convertKeyIdToHex(user.getPgpKeyId()));
    } else {
        viewHolder.binding.key.setVisibility(View.GONE);
    }
}
Also used : MucOptions(eu.siacs.conversations.entities.MucOptions) XmppConnectionService(eu.siacs.conversations.services.XmppConnectionService) PgpEngine(eu.siacs.conversations.crypto.PgpEngine) PendingIntent(android.app.PendingIntent) IntentSender(android.content.IntentSender) XmppActivity(eu.siacs.conversations.ui.XmppActivity) Contact(eu.siacs.conversations.entities.Contact)

Example 2 with XmppActivity

use of eu.siacs.conversations.ui.XmppActivity in project Conversations by siacs.

the class MediaPreviewAdapter method loadPreview.

private void loadPreview(Attachment attachment, ImageView imageView) {
    if (cancelPotentialWork(attachment, imageView)) {
        XmppActivity activity = (XmppActivity) conversationFragment.getActivity();
        final Bitmap bm = activity.xmppConnectionService.getFileBackend().getPreviewForUri(attachment, Math.round(activity.getResources().getDimension(R.dimen.media_preview_size)), true);
        if (bm != null) {
            cancelPotentialWork(attachment, imageView);
            imageView.setImageBitmap(bm);
            imageView.setBackgroundColor(0x00000000);
        } else {
            imageView.setBackgroundColor(0xff333333);
            imageView.setImageDrawable(null);
            final BitmapWorkerTask task = new BitmapWorkerTask(imageView);
            final AsyncDrawable asyncDrawable = new AsyncDrawable(conversationFragment.getActivity().getResources(), null, task);
            imageView.setImageDrawable(asyncDrawable);
            try {
                task.execute(attachment);
            } catch (final RejectedExecutionException ignored) {
            }
        }
    }
}
Also used : Bitmap(android.graphics.Bitmap) XmppActivity(eu.siacs.conversations.ui.XmppActivity) RejectedExecutionException(java.util.concurrent.RejectedExecutionException)

Example 3 with XmppActivity

use of eu.siacs.conversations.ui.XmppActivity in project Conversations by siacs.

the class UserPreviewAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
    final MucOptions.User user = getItem(position);
    AvatarWorkerTask.loadAvatar(user, viewHolder.binding.avatar, R.dimen.media_size);
    viewHolder.binding.getRoot().setOnClickListener(v -> {
        final XmppActivity activity = XmppActivity.find(v);
        if (activity != null) {
            activity.highlightInMuc(user.getConversation(), user.getName());
        }
    });
    viewHolder.binding.getRoot().setOnCreateContextMenuListener(this);
    viewHolder.binding.getRoot().setTag(user);
    viewHolder.binding.getRoot().setOnLongClickListener(v -> {
        selectedUser = user;
        return false;
    });
}
Also used : MucOptions(eu.siacs.conversations.entities.MucOptions) XmppActivity(eu.siacs.conversations.ui.XmppActivity)

Example 4 with XmppActivity

use of eu.siacs.conversations.ui.XmppActivity in project Conversations by siacs.

the class MucDetailsContextMenuHelper method onCreateContextMenu.

public static void onCreateContextMenu(ContextMenu menu, View v) {
    final XmppActivity activity = XmppActivity.find(v);
    final Object tag = v.getTag();
    if (tag instanceof MucOptions.User && activity != null) {
        activity.getMenuInflater().inflate(R.menu.muc_details_context, menu);
        final MucOptions.User user = (MucOptions.User) tag;
        String name;
        final Contact contact = user.getContact();
        if (contact != null && contact.showInContactList()) {
            name = contact.getDisplayName();
        } else if (user.getRealJid() != null) {
            name = user.getRealJid().asBareJid().toString();
        } else {
            name = user.getName();
        }
        menu.setHeaderTitle(name);
        MucDetailsContextMenuHelper.configureMucDetailsContextMenu(activity, menu, user.getConversation(), user);
    }
}
Also used : MucOptions(eu.siacs.conversations.entities.MucOptions) User(eu.siacs.conversations.entities.MucOptions.User) User(eu.siacs.conversations.entities.MucOptions.User) SpannableString(android.text.SpannableString) XmppActivity(eu.siacs.conversations.ui.XmppActivity) Contact(eu.siacs.conversations.entities.Contact)

Example 5 with XmppActivity

use of eu.siacs.conversations.ui.XmppActivity in project Conversations by siacs.

the class AvatarWorkerTask method doInBackground.

@Override
protected Bitmap doInBackground(AvatarService.Avatarable... params) {
    this.avatarable = params[0];
    final XmppActivity activity = XmppActivity.find(imageViewReference);
    if (activity == null) {
        return null;
    }
    return activity.avatarService().get(avatarable, (int) activity.getResources().getDimension(size), isCancelled());
}
Also used : XmppActivity(eu.siacs.conversations.ui.XmppActivity)

Aggregations

XmppActivity (eu.siacs.conversations.ui.XmppActivity)6 MucOptions (eu.siacs.conversations.entities.MucOptions)3 Bitmap (android.graphics.Bitmap)2 Contact (eu.siacs.conversations.entities.Contact)2 RejectedExecutionException (java.util.concurrent.RejectedExecutionException)2 PendingIntent (android.app.PendingIntent)1 IntentSender (android.content.IntentSender)1 SpannableString (android.text.SpannableString)1 PgpEngine (eu.siacs.conversations.crypto.PgpEngine)1 User (eu.siacs.conversations.entities.MucOptions.User)1 XmppConnectionService (eu.siacs.conversations.services.XmppConnectionService)1