Added add to contact option in chat message context menu

This commit is contained in:
Sylvain Berfini 2018-10-24 15:26:06 +02:00
parent 386ed3f368
commit c1ba03a138
4 changed files with 24 additions and 0 deletions

View file

@ -11,4 +11,7 @@
<item android:id="@+id/delete_message"
android:title="@string/delete" />
<item android:id="@+id/add_to_contacts"
android:title="@string/add_to_contacts" />
</menu>

View file

@ -14,4 +14,7 @@
<item android:id="@+id/delete_message"
android:title="@string/delete" />
<item android:id="@+id/add_to_contacts"
android:title="@string/add_to_contacts" />
</menu>

View file

@ -223,6 +223,7 @@
<string name="imdn_info">Delivery status</string>
<string name="chat_room_devices">%s\'s devices</string>
<string name="group_chat_room_devices">Conversation\'s devices</string>
<string name="add_to_contacts">Add to contacts</string>
<!-- Status Bar -->
<string name="status_connected">Registered</string>

View file

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