diff --git a/res/layout/chat_bubble.xml b/res/layout/chat_bubble.xml
index 5323345db..1c750b0b3 100644
--- a/res/layout/chat_bubble.xml
+++ b/res/layout/chat_bubble.xml
@@ -77,29 +77,13 @@
android:layout_below="@id/separator"
android:orientation="horizontal">
-
+ android:layout_height="wrap_content"
+ android:paddingLeft="10dp"
+ android:paddingTop="10dp">
-
-
-
+
diff --git a/res/layout/chat_imdn_cell.xml b/res/layout/chat_imdn_cell.xml
index 89ad40a54..2537e5d7d 100644
--- a/res/layout/chat_imdn_cell.xml
+++ b/res/layout/chat_imdn_cell.xml
@@ -27,7 +27,7 @@
android:gravity="center_vertical">
@@ -52,7 +52,7 @@
android:maxLines="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_toRightOf="@id/avatar_layout"
+ android:layout_toRightOf="@id/avatar"
android:layout_toLeftOf="@id/time"
android:layout_marginLeft="10dp"
android:layout_marginRight="5dp"
diff --git a/res/layout/chat_infos_cell.xml b/res/layout/chat_infos_cell.xml
index 27f8406b1..afab9e900 100644
--- a/res/layout/chat_infos_cell.xml
+++ b/res/layout/chat_infos_cell.xml
@@ -14,7 +14,7 @@
android:gravity="center_vertical">
@@ -94,7 +94,7 @@
diff --git a/res/layout/contact_avatar.xml b/res/layout/contact_avatar.xml
index 1aa9b9c83..234417d60 100644
--- a/res/layout/contact_avatar.xml
+++ b/res/layout/contact_avatar.xml
@@ -2,8 +2,8 @@
@@ -30,4 +30,13 @@
android:gravity="center"
android:maxLines="1"/>
+
+
\ No newline at end of file
diff --git a/res/layout/contact_cell.xml b/res/layout/contact_cell.xml
index 87f104e29..d9692f7f6 100644
--- a/res/layout/contact_cell.xml
+++ b/res/layout/contact_cell.xml
@@ -34,7 +34,7 @@
android:gravity="center_vertical">
@@ -83,7 +83,7 @@
diff --git a/res/layout/history_cell.xml b/res/layout/history_cell.xml
index 1caddbd88..9081e91ca 100644
--- a/res/layout/history_cell.xml
+++ b/res/layout/history_cell.xml
@@ -65,7 +65,7 @@
android:gravity="center_vertical">
@@ -79,7 +79,7 @@
android:src="@drawable/call_status_incoming"
android:contentDescription="@string/content_description_call_direction"
android:padding="7dp"
- android:layout_toRightOf="@id/avatar_layout"
+ android:layout_toRightOf="@id/avatar"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
diff --git a/res/layout/search_contact_cell.xml b/res/layout/search_contact_cell.xml
index 4ea557e04..81921cc01 100644
--- a/res/layout/search_contact_cell.xml
+++ b/res/layout/search_contact_cell.xml
@@ -8,7 +8,7 @@
android:orientation="vertical">
@@ -25,7 +25,7 @@
android:gravity="center_vertical"
android:orientation="vertical"
android:layout_marginRight="70dp"
- android:layout_toRightOf="@id/avatar_layout"
+ android:layout_toRightOf="@id/avatar"
android:layout_marginLeft="5dp"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true">
diff --git a/src/android/org/linphone/call/CallHistoryAdapter.java b/src/android/org/linphone/call/CallHistoryAdapter.java
index f8c0e3285..f9b611092 100644
--- a/src/android/org/linphone/call/CallHistoryAdapter.java
+++ b/src/android/org/linphone/call/CallHistoryAdapter.java
@@ -55,8 +55,7 @@ public class CallHistoryAdapter extends SelectableAdapter {
holder.messageStatus.setVisibility(View.INVISIBLE);
holder.messageSendingInProgress.setVisibility(View.GONE);
holder.imdmLayout.setVisibility(View.INVISIBLE);
- holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
if (isEditionEnabled()) {
holder.delete.setOnCheckedChangeListener(null);
@@ -249,7 +249,7 @@ public class ChatEventsAdapter extends SelectableAdapter {
Compatibility.setTextAppearance(holder.contactName, mContext, R.style.font3);
Compatibility.setTextAppearance(holder.fileTransferAction, mContext, R.style.font15);
holder.fileTransferAction.setBackgroundResource(R.drawable.resizable_confirm_delete_button);
- holder.contactPictureMask.setImageResource(R.drawable.avatar_chat_mask_outgoing);
+ ContactAvatar.setAvatarMask(holder.avatarLayout, R.drawable.avatar_chat_mask_outgoing);
} else {
for (LinphoneContact c : mParticipants) {
if (c != null && c.hasAddress(remoteSender.asStringUriOnly())) {
@@ -270,7 +270,7 @@ public class ChatEventsAdapter extends SelectableAdapter {
Compatibility.setTextAppearance(holder.contactName, mContext, R.style.font9);
Compatibility.setTextAppearance(holder.fileTransferAction, mContext, R.style.font8);
holder.fileTransferAction.setBackgroundResource(R.drawable.resizable_assistant_button);
- holder.contactPictureMask.setImageResource(R.drawable.avatar_chat_mask);
+ ContactAvatar.setAvatarMask(holder.avatarLayout, R.drawable.avatar_chat_mask);
}
if (contact == null) {
@@ -282,14 +282,10 @@ public class ChatEventsAdapter extends SelectableAdapter {
} else {
displayName = LinphoneUtils.getAddressDisplayName(remoteSender);
}
-
- holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
- if (contact.hasPhoto()) {
- LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
- }
+ ContactAvatar.displayAvatar(contact, holder.avatarLayout);
} else {
displayName = LinphoneUtils.getAddressDisplayName(remoteSender);
- holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
+ ContactAvatar.displayAvatar(displayName, holder.avatarLayout);
}
holder.contactName.setText(LinphoneUtils.timestampToHumanDate(mContext, message.getTime(), R.string.messages_date_format) + " - " + displayName);
diff --git a/src/android/org/linphone/chat/ChatRoomViewHolder.java b/src/android/org/linphone/chat/ChatRoomViewHolder.java
index 6902fad56..9273781fa 100644
--- a/src/android/org/linphone/chat/ChatRoomViewHolder.java
+++ b/src/android/org/linphone/chat/ChatRoomViewHolder.java
@@ -26,6 +26,7 @@ import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.CheckBox;
import android.widget.ImageView;
+import android.widget.RelativeLayout;
import android.widget.TextView;
import org.linphone.LinphoneManager;
@@ -51,8 +52,7 @@ public class ChatRoomViewHolder extends RecyclerView.ViewHolder implements View.
public TextView displayName;
public TextView unreadMessages;
public CheckBox delete;
- public ImageView contactPicture;
- public TextView generatedAvatar;
+ public RelativeLayout avatarLayout;
public ImageView lastMessageFileTransfer;
public Context mContext;
public ChatRoom mRoom;
@@ -71,8 +71,7 @@ public class ChatRoomViewHolder extends RecyclerView.ViewHolder implements View.
displayName = itemView.findViewById(R.id.sipUri);
unreadMessages = itemView.findViewById(R.id.unreadMessages);
delete = itemView.findViewById(R.id.delete_chatroom);
- contactPicture = itemView.findViewById(R.id.contact_picture);
- generatedAvatar = itemView.findViewById(R.id.generated_avatar);
+ avatarLayout = itemView.findViewById(R.id.avatar_layout);
lastMessageFileTransfer = itemView.findViewById(R.id.lastMessageFileTransfer);
mListener = listener;
@@ -159,17 +158,17 @@ public class ChatRoomViewHolder extends RecyclerView.ViewHolder implements View.
if (mRoom.hasCapability(ChatRoomCapabilities.OneToOne.toInt())) {
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(mRoom.getPeerAddress());
if (contact != null) {
- ContactAvatar.displayAvatar(contact, contactPicture, generatedAvatar);
+ ContactAvatar.displayAvatar(contact, avatarLayout);
} else {
String username = mRoom.getPeerAddress().getDisplayName();
if (username == null) {
username = mRoom.getPeerAddress().getUsername();
}
- ContactAvatar.displayAvatar(username, generatedAvatar);
+ ContactAvatar.displayAvatar(username, avatarLayout);
}
} else {
- contactPicture.setImageBitmap(mDefaultGroupBitmap);
- generatedAvatar.setVisibility(View.GONE);
+ ((ImageView)avatarLayout.findViewById(R.id.contact_picture)).setImageBitmap(mDefaultGroupBitmap);
+ avatarLayout.findViewById(R.id.generated_avatar).setVisibility(View.GONE);
}
}
diff --git a/src/android/org/linphone/chat/GroupInfoAdapter.java b/src/android/org/linphone/chat/GroupInfoAdapter.java
index 90643fa77..3c7f582e5 100644
--- a/src/android/org/linphone/chat/GroupInfoAdapter.java
+++ b/src/android/org/linphone/chat/GroupInfoAdapter.java
@@ -26,6 +26,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
import android.widget.TextView;
import org.linphone.LinphoneUtils;
@@ -44,8 +45,7 @@ public class GroupInfoAdapter extends RecyclerView.Adapter