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);
}