From c5440e10686b084ddbd578d00394ca617eeab04b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 23 Oct 2017 15:26:37 +0200 Subject: [PATCH] Allow group chat rooms with only 2 participants --- .../org/linphone/chat/GroupChatFragment.java | 20 ++++++++++++++++++- .../org/linphone/chat/GroupInfoFragment.java | 4 ++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index c3bc5c4c7..085c61991 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -38,6 +38,7 @@ import org.linphone.LinphoneManager; import org.linphone.LinphoneUtils; import org.linphone.R; import org.linphone.activities.LinphoneActivity; +import org.linphone.contacts.ContactAddress; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; import org.linphone.core.Address; @@ -111,7 +112,24 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener { mGroupInfosButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - + if (mChatRoom == null) return; + ArrayList participants = new ArrayList(); + for (Participant p : mChatRoom.getParticipants()) { + Address a = p.getAddress(); + LinphoneContact c = ContactsManager.getInstance().findContactFromAddress(a); + if (c == null) { + c = new LinphoneContact(); + String displayName = a.getDisplayName(); + if (displayName == null || displayName.isEmpty()) { + c.setFullName(a.getUsername()); + } else { + c.setFullName(displayName); + } + } + ContactAddress ca = new ContactAddress(c, a.asString(), c.isFriend()); + participants.add(ca); + } + LinphoneActivity.instance().displayChatGroupInfos(participants, true); } }); diff --git a/src/android/org/linphone/chat/GroupInfoFragment.java b/src/android/org/linphone/chat/GroupInfoFragment.java index 3fa86d54c..8888dc718 100644 --- a/src/android/org/linphone/chat/GroupInfoFragment.java +++ b/src/android/org/linphone/chat/GroupInfoFragment.java @@ -66,7 +66,7 @@ public class GroupInfoFragment extends Fragment { mParticipants.remove(ca); mAdapter.updateDataSet(mParticipants); mParticipantsList.setAdapter(mAdapter); - mConfirmButton.setEnabled(mSubjectField.getText().length() > 0 && mParticipants.size() > 1); + mConfirmButton.setEnabled(mSubjectField.getText().length() > 0 && mParticipants.size() > 0); } }); mParticipantsList.setAdapter(mAdapter); @@ -104,7 +104,7 @@ public class GroupInfoFragment extends Fragment { //TODO } }); - mConfirmButton.setEnabled(mSubjectField.getText().length() > 0 && mParticipants.size() > 1); + mConfirmButton.setEnabled(mSubjectField.getText().length() > 0 && mParticipants.size() > 0); mLeaveGroupButton = view.findViewById(R.id.leaveGroupLayout); mLeaveGroupButton.setOnClickListener(new View.OnClickListener() {