diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java index 7fcf8d30e..96ced88be 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java @@ -21,6 +21,9 @@ package com.nextcloud.talk.controllers; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; @@ -68,6 +71,7 @@ import com.otaliastudios.autocomplete.AutocompleteCallback; import com.otaliastudios.autocomplete.AutocompletePresenter; import com.otaliastudios.autocomplete.CharPolicy; import com.stfalcon.chatkit.commons.ImageLoader; +import com.stfalcon.chatkit.commons.models.IMessage; import com.stfalcon.chatkit.messages.MessageInput; import com.stfalcon.chatkit.messages.MessagesList; import com.stfalcon.chatkit.messages.MessagesListAdapter; @@ -93,7 +97,7 @@ import retrofit2.Response; @AutoInjector(NextcloudTalkApplication.class) public class ChatController extends BaseController implements MessagesListAdapter.OnLoadMoreListener, - MessagesListAdapter.Formatter { + MessagesListAdapter.Formatter, MessagesListAdapter.OnMessageLongClickListener { private static final String TAG = "ChatController"; @Inject @@ -122,7 +126,6 @@ public class ChatController extends BaseController implements MessagesListAdapte /* TODO: - - copy message - check push notifications - new conversation handling */ @@ -175,6 +178,8 @@ public class ChatController extends BaseController implements MessagesListAdapte adapter.setLoadMoreListener(this); adapter.setDateHeadersFormatter(this::format); + adapter.setOnMessageLongClickListener(this); + setupMentionAutocomplete(); messageInput.getInputEditText().setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); @@ -510,4 +515,18 @@ public class ChatController extends BaseController implements MessagesListAdapte return callIntent; } + + + @Override + public void onMessageLongClick(IMessage message) { + if (getActivity() != null) { + ClipboardManager clipboardManager = (android.content.ClipboardManager) + getActivity().getSystemService(Context.CLIPBOARD_SERVICE); + ClipData clipData = android.content.ClipData.newPlainText( + getResources().getString(R.string.nc_app_name), message.getText()); + if (clipboardManager != null) { + clipboardManager.setPrimaryClip(clipData); + } + } + } }