Fixes for UI when creating a 1 vs 1 group chat room
This commit is contained in:
parent
5816c533c2
commit
4e1ac4fe18
2 changed files with 21 additions and 6 deletions
|
@ -409,7 +409,7 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
|
||||||
Address address;
|
Address address;
|
||||||
address = Factory.instance().createAddress(sipUri);
|
address = Factory.instance().createAddress(sipUri);
|
||||||
|
|
||||||
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address);
|
LinphoneContact contact = null;
|
||||||
String message = "";
|
String message = "";
|
||||||
Long time;
|
Long time;
|
||||||
|
|
||||||
|
@ -435,7 +435,8 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
|
||||||
|
|
||||||
holder.displayName.setSelected(true); // For animation
|
holder.displayName.setSelected(true); // For animation
|
||||||
|
|
||||||
if (!chatRoom.canHandleParticipants() || (chatRoom.getNbParticipants() == 1 && getString(R.string.dummy_group_chat_subject).equals(chatRoom.getSubject()))) {
|
if (!chatRoom.canHandleParticipants()) {
|
||||||
|
contact = ContactsManager.getInstance().findContactFromAddress(address);
|
||||||
if (contact != null) {
|
if (contact != null) {
|
||||||
holder.displayName.setText(contact.getFullName());
|
holder.displayName.setText(contact.getFullName());
|
||||||
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
|
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
|
||||||
|
@ -443,6 +444,15 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
|
||||||
holder.displayName.setText(LinphoneUtils.getAddressDisplayName(address));
|
holder.displayName.setText(LinphoneUtils.getAddressDisplayName(address));
|
||||||
holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
|
holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
|
||||||
}
|
}
|
||||||
|
} else if (chatRoom.getNbParticipants() == 1 && getString(R.string.dummy_group_chat_subject).equals(chatRoom.getSubject())) {
|
||||||
|
contact = ContactsManager.getInstance().findContactFromAddress(chatRoom.getParticipants()[0].getAddress());
|
||||||
|
if (contact != null) {
|
||||||
|
holder.displayName.setText(contact.getFullName());
|
||||||
|
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
|
||||||
|
} else {
|
||||||
|
holder.displayName.setText(LinphoneUtils.getAddressDisplayName(chatRoom.getParticipants()[0].getAddress()));
|
||||||
|
holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
holder.displayName.setText(chatRoom.getSubject());
|
holder.displayName.setText(chatRoom.getSubject());
|
||||||
holder.contactPicture.setImageResource(R.drawable.chat_group_avatar);
|
holder.contactPicture.setImageResource(R.drawable.chat_group_avatar);
|
||||||
|
|
|
@ -89,7 +89,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
private Uri mImageToUploadUri;
|
private Uri mImageToUploadUri;
|
||||||
private ChatEventsAdapter mEventsAdapter;
|
private ChatEventsAdapter mEventsAdapter;
|
||||||
private String mRemoteSipUri;
|
private String mRemoteSipUri;
|
||||||
private Address mRemoteSipAddress;
|
private Address mRemoteSipAddress, mRemoteParticipantAddress;
|
||||||
private ChatRoom mChatRoom;
|
private ChatRoom mChatRoom;
|
||||||
private ArrayList<LinphoneContact> mParticipants;
|
private ArrayList<LinphoneContact> mParticipants;
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
mCallButton.setOnClickListener(new View.OnClickListener() {
|
mCallButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
LinphoneActivity.instance().setAddresGoToDialerAndCall(mRemoteSipUri, null, null);
|
LinphoneActivity.instance().setAddresGoToDialerAndCall(mRemoteParticipantAddress.asString(), null, null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -411,7 +411,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
private void getContactsForParticipants() {
|
private void getContactsForParticipants() {
|
||||||
mParticipants = new ArrayList<>();
|
mParticipants = new ArrayList<>();
|
||||||
if (!mChatRoom.canHandleParticipants() || (mChatRoom.getNbParticipants() == 1 && getString(R.string.dummy_group_chat_subject).equals(mChatRoom.getSubject()))) {
|
if (!mChatRoom.canHandleParticipants() || (mChatRoom.getNbParticipants() == 1 && getString(R.string.dummy_group_chat_subject).equals(mChatRoom.getSubject()))) {
|
||||||
LinphoneContact c = ContactsManager.getInstance().findContactFromAddress(mRemoteSipAddress);
|
LinphoneContact c = ContactsManager.getInstance().findContactFromAddress(mRemoteParticipantAddress);
|
||||||
if (c != null) {
|
if (c != null) {
|
||||||
mParticipants.add(c);
|
mParticipants.add(c);
|
||||||
}
|
}
|
||||||
|
@ -450,6 +450,11 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
mChatRoom.markAsRead();
|
mChatRoom.markAsRead();
|
||||||
LinphoneActivity.instance().updateMissedChatCount();
|
LinphoneActivity.instance().updateMissedChatCount();
|
||||||
|
|
||||||
|
mRemoteParticipantAddress = mRemoteSipAddress;
|
||||||
|
if (mChatRoom.getNbParticipants() == 1 && getString(R.string.dummy_group_chat_subject).equals(mChatRoom.getSubject())) {
|
||||||
|
mRemoteParticipantAddress = mChatRoom.getParticipants()[0].getAddress();
|
||||||
|
}
|
||||||
|
|
||||||
getContactsForParticipants();
|
getContactsForParticipants();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -470,7 +475,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
|
|
||||||
if (mParticipants.size() == 0) {
|
if (mParticipants.size() == 0) {
|
||||||
// Contact not found
|
// Contact not found
|
||||||
String displayName = LinphoneUtils.getAddressDisplayName(mRemoteSipAddress);
|
String displayName = LinphoneUtils.getAddressDisplayName(mRemoteParticipantAddress);
|
||||||
mRoomLabel.setText(displayName);
|
mRoomLabel.setText(displayName);
|
||||||
} else {
|
} else {
|
||||||
mRoomLabel.setText(mParticipants.get(0).getFullName());
|
mRoomLabel.setText(mParticipants.get(0).getFullName());
|
||||||
|
|
Loading…
Reference in a new issue