From 7b0c5d7ee6d6440b9caba597efd575e6380dbc23 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 30 Jan 2018 10:56:32 +0100 Subject: [PATCH] Use OneToOne capability instead of participants count and dummy chatroom subject --- src/android/org/linphone/LinphoneManager.java | 3 ++- src/android/org/linphone/chat/ChatRoomsAdapter.java | 5 +++-- src/android/org/linphone/chat/GroupChatFragment.java | 7 ++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/android/org/linphone/LinphoneManager.java b/src/android/org/linphone/LinphoneManager.java index e6381ab5b..8159f7619 100644 --- a/src/android/org/linphone/LinphoneManager.java +++ b/src/android/org/linphone/LinphoneManager.java @@ -90,6 +90,7 @@ import org.linphone.core.CallParams; import org.linphone.core.CallStats; import org.linphone.core.ChatMessage; import org.linphone.core.ChatRoom; +import org.linphone.core.ChatRoomCapabilities; import org.linphone.core.Content; import org.linphone.core.Core; import org.linphone.core.Core.AuthMethod; @@ -1066,7 +1067,7 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou String textMessage = (message.getFileTransferInformation() != null) ? getString(R.string.content_description_incoming_file) : message.getText(); if (!mServiceContext.getResources().getBoolean(R.bool.disable_chat_message_notification)) { - if (!cr.canHandleParticipants() || (cr.getNbParticipants() == 1 && getString(R.string.dummy_group_chat_subject).equals(cr.getSubject()))) { + if ((cr.getCapabilities() & ChatRoomCapabilities.OneToOne.toInt()) == ChatRoomCapabilities.OneToOne.toInt()) { if (contact != null) { LinphoneService.instance().displayMessageNotification(cr.getPeerAddress().asStringUriOnly(), contact.getFullName(), contact.getThumbnailUri(), textMessage); } else { diff --git a/src/android/org/linphone/chat/ChatRoomsAdapter.java b/src/android/org/linphone/chat/ChatRoomsAdapter.java index 875ec10f7..da5a86c08 100644 --- a/src/android/org/linphone/chat/ChatRoomsAdapter.java +++ b/src/android/org/linphone/chat/ChatRoomsAdapter.java @@ -39,6 +39,7 @@ import org.linphone.contacts.LinphoneContact; import org.linphone.core.Address; import org.linphone.core.ChatMessage; import org.linphone.core.ChatRoom; +import org.linphone.core.ChatRoomCapabilities; import org.linphone.core.EventLog; import org.linphone.mediastream.Log; import org.linphone.ui.ListSelectionAdapter; @@ -137,7 +138,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { ChatRoom chatRoom = mRooms.get(position); Address remoteAddress = chatRoom.getPeerAddress(); Address contactAddress = remoteAddress; - if (chatRoom.getNbParticipants() == 1 && mContext.getString(R.string.dummy_group_chat_subject).equals(chatRoom.getSubject())) { + if ((chatRoom.getCapabilities() & ChatRoomCapabilities.OneToOne.toInt()) == ChatRoomCapabilities.OneToOne.toInt()) { contactAddress = chatRoom.getParticipants()[0].getAddress(); } @@ -175,7 +176,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { } else { holder.displayName.setText(LinphoneUtils.getAddressDisplayName(contactAddress)); } - } else if (chatRoom.getNbParticipants() == 1 && mContext.getString(R.string.dummy_group_chat_subject).equals(chatRoom.getSubject())) { + } else if ((chatRoom.getCapabilities() & ChatRoomCapabilities.OneToOne.toInt()) == ChatRoomCapabilities.OneToOne.toInt()) { contact = ContactsManager.getInstance().findContactFromAddress(chatRoom.getParticipants()[0].getAddress()); if (contact != null) { holder.displayName.setText(contact.getFullName()); diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index e688fe66f..4bcdac319 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -57,6 +57,7 @@ import org.linphone.contacts.LinphoneContact; import org.linphone.core.Address; import org.linphone.core.ChatMessage; import org.linphone.core.ChatRoom; +import org.linphone.core.ChatRoomCapabilities; import org.linphone.core.ChatRoomListener; import org.linphone.core.Content; import org.linphone.core.Core; @@ -330,7 +331,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()))) { + if ((mChatRoom.getCapabilities() & ChatRoomCapabilities.OneToOne.toInt()) == ChatRoomCapabilities.OneToOne.toInt()) { LinphoneContact c = ContactsManager.getInstance().findContactFromAddress(mRemoteParticipantAddress); if (c != null) { mParticipants.add(c); @@ -376,7 +377,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con LinphoneActivity.instance().updateMissedChatCount(); mRemoteParticipantAddress = mRemoteSipAddress; - if (mChatRoom.getNbParticipants() == 1 && getString(R.string.dummy_group_chat_subject).equals(mChatRoom.getSubject())) { + if ((mChatRoom.getCapabilities() & ChatRoomCapabilities.OneToOne.toInt()) == ChatRoomCapabilities.OneToOne.toInt()) { mRemoteParticipantAddress = mChatRoom.getParticipants()[0].getAddress(); } @@ -393,7 +394,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con mBackToCallButton.setVisibility(View.VISIBLE); } else { mBackToCallButton.setVisibility(View.GONE); - if (!mChatRoom.canHandleParticipants() || (mChatRoom.getNbParticipants() == 1 && getString(R.string.dummy_group_chat_subject).equals(mChatRoom.getSubject()))) { + if ((mChatRoom.getCapabilities() & ChatRoomCapabilities.OneToOne.toInt()) == ChatRoomCapabilities.OneToOne.toInt()) { mCallButton.setVisibility(View.VISIBLE); mGroupInfosButton.setVisibility(View.GONE); mParticipantsLabel.setVisibility(View.GONE);