From 8c14f5db251c63a46acbf0b846e499614d64e2e2 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 11 Apr 2018 13:22:34 +0200 Subject: [PATCH] Added copy text and delete code for chat message's context menu --- src/android/org/linphone/chat/ChatEventsAdapter.java | 5 +++++ src/android/org/linphone/chat/GroupChatFragment.java | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/android/org/linphone/chat/ChatEventsAdapter.java b/src/android/org/linphone/chat/ChatEventsAdapter.java index bd1a58662..d563108cf 100644 --- a/src/android/org/linphone/chat/ChatEventsAdapter.java +++ b/src/android/org/linphone/chat/ChatEventsAdapter.java @@ -159,6 +159,11 @@ public class ChatEventsAdapter extends ListSelectionAdapter { return i; } + public void removeItem(int i) { + mHistory.remove(i); + notifyDataSetChanged(); + } + @Override public View getView(int i, View view, ViewGroup viewGroup) { ChatBubbleViewHolder holder; diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index 20d950d23..d8acb4c0f 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -22,6 +22,9 @@ package org.linphone.chat; import android.app.Activity; import android.app.Dialog; import android.app.Fragment; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -350,8 +353,15 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con LinphoneActivity.instance().goToChatMessageImdnInfos(getRemoteSipUri(), messageId); return true; case R.id.copy_text: + if (message.hasTextContent()) { + ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("Message", message.getTextContent()); + clipboard.setPrimaryClip(clip); + } return true; case R.id.delete_message: + mChatRoom.deleteMessage(message); + mEventsAdapter.removeItem(info.position); return true; default: return super.onContextItemSelected(item);