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 = Factory.instance().createAddress(sipUri);
|
||||
|
||||
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address);
|
||||
LinphoneContact contact = null;
|
||||
String message = "";
|
||||
Long time;
|
||||
|
||||
|
@ -435,7 +435,8 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
|
|||
|
||||
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) {
|
||||
holder.displayName.setText(contact.getFullName());
|
||||
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.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 {
|
||||
holder.displayName.setText(chatRoom.getSubject());
|
||||
holder.contactPicture.setImageResource(R.drawable.chat_group_avatar);
|
||||
|
|
|
@ -89,7 +89,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
private Uri mImageToUploadUri;
|
||||
private ChatEventsAdapter mEventsAdapter;
|
||||
private String mRemoteSipUri;
|
||||
private Address mRemoteSipAddress;
|
||||
private Address mRemoteSipAddress, mRemoteParticipantAddress;
|
||||
private ChatRoom mChatRoom;
|
||||
private ArrayList<LinphoneContact> mParticipants;
|
||||
|
||||
|
@ -122,7 +122,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
mCallButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
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() {
|
||||
mParticipants = new ArrayList<>();
|
||||
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) {
|
||||
mParticipants.add(c);
|
||||
}
|
||||
|
@ -450,6 +450,11 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
mChatRoom.markAsRead();
|
||||
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();
|
||||
}
|
||||
|
||||
|
@ -470,7 +475,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
|
||||
if (mParticipants.size() == 0) {
|
||||
// Contact not found
|
||||
String displayName = LinphoneUtils.getAddressDisplayName(mRemoteSipAddress);
|
||||
String displayName = LinphoneUtils.getAddressDisplayName(mRemoteParticipantAddress);
|
||||
mRoomLabel.setText(displayName);
|
||||
} else {
|
||||
mRoomLabel.setText(mParticipants.get(0).getFullName());
|
||||
|
|
Loading…
Reference in a new issue