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);
}
}
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) {
}
}
}
}
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;
});
}
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);
}
}
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());
}
Aggregations