From 1661d689aa698f5ff31a39fc1cbff70975a08bd3 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 2 Nov 2017 15:01:54 +0100 Subject: [PATCH] Create group chat room even if there are only two participants --- .../linphone/chat/ChatCreationFragment.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/android/org/linphone/chat/ChatCreationFragment.java b/src/android/org/linphone/chat/ChatCreationFragment.java index de6d1363e..2fad4501f 100644 --- a/src/android/org/linphone/chat/ChatCreationFragment.java +++ b/src/android/org/linphone/chat/ChatCreationFragment.java @@ -36,8 +36,13 @@ import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; +import org.linphone.LinphoneManager; import org.linphone.contacts.ContactAddress; import org.linphone.contacts.SearchContactsListAdapter; +import org.linphone.core.Address; +import org.linphone.core.ChatRoom; +import org.linphone.core.ChatRoomListenerStub; +import org.linphone.mediastream.Log; import org.linphone.ui.ContactSelectView; import org.linphone.receivers.ContactsUpdatedListener; import org.linphone.activities.LinphoneActivity; @@ -277,8 +282,26 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen } else if (id == R.id.next) { if (contactsSelected.size() == 1) { contactsSelectedLayout.removeAllViews(); - LinphoneActivity.instance().displayChat(contactsSelected.get(0).getAddress(), "", ""); + //LinphoneActivity.instance().displayChat(contactsSelected.get(0).getAddress(), "", ""); //TODO create group chat room with only two participants ? + //TODO what subject to set ? + ChatRoom chatRoom = LinphoneManager.getLc().createClientGroupChatRoom("Tata"); + chatRoom.setListener(new ChatRoomListenerStub() { + @Override + public void onStateChanged(ChatRoom cr, ChatRoom.State newState) { + if (newState == ChatRoom.State.Created) { + LinphoneActivity.instance().goToChat(cr.getConferenceAddress().asStringUriOnly()); + } else if (newState == ChatRoom.State.CreationFailed) { + //TODO display error + Log.e("Group chat room for address " + cr.getConferenceAddress() + " has failed !"); + } + } + }); + + Address addresses[] = new Address[1]; + String addr = contactsSelected.get(0).getAddress(); + addresses[0] = LinphoneManager.getLc().interpretUrl(addr); + chatRoom.addParticipants(addresses); } else { contactsSelectedLayout.removeAllViews(); LinphoneActivity.instance().goToChatGroupInfos(contactsSelected, null, false, true);