diff --git a/res/menu/chat_bubble_menu.xml b/res/menu/chat_bubble_menu.xml index 01b5a55a3..3dd9a22bd 100644 --- a/res/menu/chat_bubble_menu.xml +++ b/res/menu/chat_bubble_menu.xml @@ -11,4 +11,7 @@ + + \ No newline at end of file diff --git a/res/menu/chat_bubble_menu_with_resend.xml b/res/menu/chat_bubble_menu_with_resend.xml index 4ca08409b..eae7a9a5d 100644 --- a/res/menu/chat_bubble_menu_with_resend.xml +++ b/res/menu/chat_bubble_menu_with_resend.xml @@ -14,4 +14,7 @@ + + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index c127519c1..7a2adf53a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -223,6 +223,7 @@ Delivery status %s\'s devices Conversation\'s devices + Add to contacts Registered diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index 19908d83f..8b0ab03a5 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -410,6 +410,14 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con // Do not show copy text option if message doesn't have any text menu.removeItem(R.id.copy_text); } + + if (!message.isOutgoing()) { + Address address = message.getFromAddress(); + LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); + if (contact != null) { + menu.removeItem(R.id.add_to_contacts); + } + } } @Override @@ -446,6 +454,15 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con mEventsAdapter.removeItem(mContextMenuMessagePosition); return true; } + if (item.getItemId() == R.id.add_to_contacts) { + Address address = message.getFromAddress(); + String uri = address.asStringUriOnly(); + if (address != null && address.getDisplayName() != null) + LinphoneActivity.instance().displayContactsForEdition(address.asStringUriOnly(), address.getDisplayName()); + else + LinphoneActivity.instance().displayContactsForEdition(uri); + return true; + } return super.onContextItemSelected(item); }