diff --git a/src/android/org/linphone/chat/ChatCreationFragment.java b/src/android/org/linphone/chat/ChatCreationFragment.java index 6b09a0c31..94d1e33ef 100644 --- a/src/android/org/linphone/chat/ChatCreationFragment.java +++ b/src/android/org/linphone/chat/ChatCreationFragment.java @@ -219,8 +219,13 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen csv.setListener(this); csv.setContactName(ca); contactsSelected.add(ca); + View viewContact = LayoutInflater.from(LinphoneActivity.instance()).inflate(R.layout.contact_selected, null); - ((TextView)viewContact.findViewById(R.id.sipUri)).setText(ca.getContact().getFullName()); + if (ca.getContact() != null) { + ((TextView) viewContact.findViewById(R.id.sipUri)).setText(ca.getContact().getFullName()); + } else { + ((TextView) viewContact.findViewById(R.id.sipUri)).setText(ca.getAddress()); + } View removeContact = viewContact.findViewById(R.id.contactChatDelete); removeContact.setTag(ca); removeContact.setOnClickListener(this); diff --git a/src/android/org/linphone/chat/ChatEventsAdapter.java b/src/android/org/linphone/chat/ChatEventsAdapter.java index aac734da2..9a64edbe0 100644 --- a/src/android/org/linphone/chat/ChatEventsAdapter.java +++ b/src/android/org/linphone/chat/ChatEventsAdapter.java @@ -35,6 +35,7 @@ public class ChatEventsAdapter extends BaseAdapter { public ChatEventsAdapter(LayoutInflater inflater) { mLayoutInflater = inflater; + mHistory = new ArrayList<>(); //TODO } @Override diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index 0dbb8c82c..e96bf9a4f 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -303,7 +303,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con private void displayChatRoomHistory() { mMessagesAdapter = new ChatEventsAdapter(mInflater); - //TODO + mChatEventsList.setAdapter(mMessagesAdapter); } private void sendMessage() { diff --git a/src/android/org/linphone/contacts/SearchContactsListAdapter.java b/src/android/org/linphone/contacts/SearchContactsListAdapter.java index ad2ef93c7..1f635cf79 100644 --- a/src/android/org/linphone/contacts/SearchContactsListAdapter.java +++ b/src/android/org/linphone/contacts/SearchContactsListAdapter.java @@ -162,12 +162,14 @@ public class SearchContactsListAdapter extends BaseAdapter { return; } - List result = new ArrayList(); - if(search != null) { + List result = new ArrayList<>(); + String searchAddress = "sip:" + search + "@" + LinphoneManager.getLc().getDefaultProxyConfig().getDomain(); + result.add(new ContactAddress(null, searchAddress, false)); + if (search != null) { for (ContactAddress c : (search.length() < oldSize) ? getContactsList() : getContacts()) { String address = c.getAddress(); if (address.startsWith("sip:")) address = address.substring(4); - if (c.getContact().getFullName() != null + if (c.getContact() != null && c.getContact().getFullName() != null && c.getContact().getFullName().toLowerCase(Locale.getDefault()).startsWith(search.toLowerCase(Locale.getDefault())) || address.toLowerCase(Locale.getDefault()).startsWith(search.toLowerCase(Locale.getDefault()))) { result.add(c); @@ -202,13 +204,18 @@ public class SearchContactsListAdapter extends BaseAdapter { final String a = contact.getAddress(); LinphoneContact c = contact.getContact(); - if (c.hasPhoto()) { + if (c != null && c.hasPhoto()) { LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.avatar, c.getThumbnailUri()); } else { holder.avatar.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); } - holder.name.setText(c.getFullName()); + if (c != null) { + holder.name.setVisibility(View.VISIBLE); + holder.name.setText(c.getFullName()); + } else { + holder.name.setVisibility(View.GONE); + } holder.address.setText(a); if (holder.linphoneContact != null) { if (contact.isLinphoneContact()) {