Fixed me contact resolution

This commit is contained in:
Sylvain Berfini 2018-02-15 11:24:02 +01:00
parent 5910a468e4
commit f604d05b4f
3 changed files with 22 additions and 22 deletions

View file

@ -89,7 +89,7 @@
style="@style/font18" style="@style/font18"
android:gravity="center" android:gravity="center"
android:maxLines="1" android:maxLines="1"
android:layout_above="@+id/lastMessage" android:layout_above="@+id/lastMessageLayout"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"/> android:layout_alignParentEnd="true"/>

View file

@ -90,7 +90,7 @@
style="@style/font18" style="@style/font18"
android:gravity="center" android:gravity="center"
android:maxLines="1" android:maxLines="1"
android:layout_above="@+id/lastMessage" android:layout_above="@+id/lastMessageLayout"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"/> android:layout_alignParentEnd="true"/>

View file

@ -167,9 +167,9 @@ public class ChatEventsAdapter extends ListSelectionAdapter implements ChatMessa
Address remoteSender = message.getFromAddress(); Address remoteSender = message.getFromAddress();
String displayName; String displayName;
LinphoneContact contact = null;
if (message.isOutgoing()) { if (message.isOutgoing()) {
message.setListener(ChatEventsAdapter.this); message.setListener(ChatEventsAdapter.this);
displayName = LinphoneUtils.getAddressDisplayName(remoteSender);
if (status == ChatMessage.State.InProgress) { if (status == ChatMessage.State.InProgress) {
holder.messageSendingInProgress.setVisibility(View.VISIBLE); holder.messageSendingInProgress.setVisibility(View.VISIBLE);
@ -227,31 +227,12 @@ public class ChatEventsAdapter extends ListSelectionAdapter implements ChatMessa
holder.fileTransferAction.setBackgroundResource(R.drawable.resizable_confirm_delete_button); holder.fileTransferAction.setBackgroundResource(R.drawable.resizable_confirm_delete_button);
holder.contactPictureMask.setImageResource(R.drawable.avatar_chat_mask_outgoing); holder.contactPictureMask.setImageResource(R.drawable.avatar_chat_mask_outgoing);
} else { } else {
LinphoneContact contact = null;
for (LinphoneContact c : mParticipants) { for (LinphoneContact c : mParticipants) {
if (c != null && c.hasAddress(remoteSender.asStringUriOnly())) { if (c != null && c.hasAddress(remoteSender.asStringUriOnly())) {
contact = c; contact = c;
break; break;
} }
} }
if (contact == null) {
contact = ContactsManager.getInstance().findContactFromAddress(remoteSender);
}
if (contact != null) {
if (contact.getFullName() != null) {
displayName = contact.getFullName();
} else {
displayName = LinphoneUtils.getAddressDisplayName(remoteSender);
}
holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
if (contact.hasPhoto()) {
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
}
} else {
displayName = LinphoneUtils.getAddressDisplayName(remoteSender);
holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
}
if (isEditionEnabled()) { if (isEditionEnabled()) {
layoutParams.addRule(RelativeLayout.LEFT_OF, holder.delete.getId()); layoutParams.addRule(RelativeLayout.LEFT_OF, holder.delete.getId());
@ -267,6 +248,25 @@ public class ChatEventsAdapter extends ListSelectionAdapter implements ChatMessa
holder.fileTransferAction.setBackgroundResource(R.drawable.resizable_assistant_button); holder.fileTransferAction.setBackgroundResource(R.drawable.resizable_assistant_button);
holder.contactPictureMask.setImageResource(R.drawable.avatar_chat_mask); holder.contactPictureMask.setImageResource(R.drawable.avatar_chat_mask);
} }
if (contact == null) {
contact = ContactsManager.getInstance().findContactFromAddress(remoteSender);
}
if (contact != null) {
if (contact.getFullName() != null) {
displayName = contact.getFullName();
} else {
displayName = LinphoneUtils.getAddressDisplayName(remoteSender);
}
holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
if (contact.hasPhoto()) {
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
}
} else {
displayName = LinphoneUtils.getAddressDisplayName(remoteSender);
holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
}
holder.contactName.setText(LinphoneUtils.timestampToHumanDate(mContext, message.getTime(), R.string.messages_date_format) + " - " + displayName); holder.contactName.setText(LinphoneUtils.timestampToHumanDate(mContext, message.getTime(), R.string.messages_date_format) + " - " + displayName);
if (message.hasTextContent()) { if (message.hasTextContent()) {