Use OneToOne capability instead of participants count and dummy chatroom subject
This commit is contained in:
parent
00721dc10d
commit
40e614b36a
3 changed files with 26 additions and 20 deletions
|
@ -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.hasCapability(ChatRoomCapabilities.OneToOne.toInt())) {
|
||||
if (contact != null) {
|
||||
LinphoneService.instance().displayMessageNotification(cr.getPeerAddress().asStringUriOnly(), contact.getFullName(), contact.getThumbnailUri(), textMessage);
|
||||
} else {
|
||||
|
|
|
@ -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,8 @@ 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.hasCapability(ChatRoomCapabilities.OneToOne.toInt()) && chatRoom.getParticipants().length > 0) {
|
||||
contactAddress = chatRoom.getParticipants()[0].getAddress();
|
||||
}
|
||||
|
||||
|
@ -165,23 +167,25 @@ public class ChatRoomsAdapter extends ListSelectionAdapter {
|
|||
}
|
||||
|
||||
holder.displayName.setSelected(true); // For animation
|
||||
|
||||
holder.contactPicture.setImageBitmap(mDefaultBitmap);
|
||||
if (!chatRoom.canHandleParticipants()) {
|
||||
contact = ContactsManager.getInstance().findContactFromAddress(contactAddress);
|
||||
if (contact != null) {
|
||||
holder.displayName.setText(contact.getFullName());
|
||||
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
|
||||
|
||||
if (chatRoom.hasCapability(ChatRoomCapabilities.OneToOne.toInt())) {
|
||||
if (chatRoom.getParticipants().length > 0) {
|
||||
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()));
|
||||
}
|
||||
} else {
|
||||
holder.displayName.setText(LinphoneUtils.getAddressDisplayName(contactAddress));
|
||||
}
|
||||
} else if (chatRoom.getNbParticipants() == 1 && mContext.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()));
|
||||
contact = ContactsManager.getInstance().findContactFromAddress(contactAddress);
|
||||
if (contact != null) {
|
||||
holder.displayName.setText(contact.getFullName());
|
||||
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
|
||||
} else {
|
||||
holder.displayName.setText(LinphoneUtils.getAddressDisplayName(contactAddress));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
holder.displayName.setText(chatRoom.getSubject());
|
||||
|
|
|
@ -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.hasCapability(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.hasCapability(ChatRoomCapabilities.OneToOne.toInt()) && mChatRoom.getParticipants().length > 0) {
|
||||
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.hasCapability(ChatRoomCapabilities.OneToOne.toInt())) {
|
||||
mCallButton.setVisibility(View.VISIBLE);
|
||||
mGroupInfosButton.setVisibility(View.GONE);
|
||||
mParticipantsLabel.setVisibility(View.GONE);
|
||||
|
|
Loading…
Reference in a new issue