mirror of
https://github.com/oxen-io/session-android.git
synced 2025-12-03 13:13:44 +00:00
Implement copy public key action for group chats
This commit is contained in:
@@ -410,13 +410,15 @@ public class ConversationFragment extends Fragment
|
||||
if (isGroupChat) {
|
||||
boolean isLokiPublicChat = recipient.getName() != null && recipient.getName().equals("Loki Public Chat");
|
||||
int selectedMessageCount = messageRecords.size();
|
||||
boolean isSentByUser = ((MessageRecord)messageRecords.toArray()[0]).isOutgoing();
|
||||
menu.findItem(R.id.menu_context_copy_public_key).setVisible(isLokiPublicChat && selectedMessageCount == 1 && !isSentByUser);
|
||||
menu.findItem(R.id.menu_context_reply).setVisible(isLokiPublicChat && selectedMessageCount == 1);
|
||||
LokiAPIDatabase lokiAPIDatabase = DatabaseFactory.getLokiAPIDatabase(getContext());
|
||||
boolean isSentByUser = ((MessageRecord)messageRecords.toArray()[0]).isOutgoing();
|
||||
boolean userCanModerate = lokiAPIDatabase.isModerator(LokiGroupChatAPI.getPublicChatServerID(), LokiGroupChatAPI.getPublicChatServer());
|
||||
boolean isDeleteOptionVisible = isLokiPublicChat && selectedMessageCount == 1 && (isSentByUser || userCanModerate);
|
||||
menu.findItem(R.id.menu_context_delete_message).setVisible(isDeleteOptionVisible);
|
||||
} else {
|
||||
menu.findItem(R.id.menu_context_copy_public_key).setVisible(false);
|
||||
menu.findItem(R.id.menu_context_delete_message).setVisible(true);
|
||||
}
|
||||
}
|
||||
@@ -493,6 +495,11 @@ public class ConversationFragment extends Fragment
|
||||
clipboard.setText(result);
|
||||
}
|
||||
|
||||
private void handleCopyPublicKey(MessageRecord messageRecord) {
|
||||
ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
clipboard.setText(messageRecord.getRecipient().getAddress().toString());
|
||||
}
|
||||
|
||||
private void handleDeleteMessages(final Set<MessageRecord> messageRecords) {
|
||||
int messagesCount = messageRecords.size();
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
@@ -1121,6 +1128,10 @@ public class ConversationFragment extends Fragment
|
||||
handleCopyMessage(getListAdapter().getSelectedItems());
|
||||
actionMode.finish();
|
||||
return true;
|
||||
case R.id.menu_context_copy_public_key:
|
||||
handleCopyPublicKey((MessageRecord) getListAdapter().getSelectedItems().toArray()[0]);
|
||||
actionMode.finish();
|
||||
return true;
|
||||
case R.id.menu_context_delete_message:
|
||||
handleDeleteMessages(getListAdapter().getSelectedItems());
|
||||
actionMode.finish();
|
||||
|
||||
Reference in New Issue
Block a user