Skip to content

Commit

Permalink
feat: save photo and video messages
Browse files Browse the repository at this point in the history
Signed-off-by: Next Alone <12210746+NextAlone@users.noreply.github.com>
  • Loading branch information
NextAlone committed May 8, 2023
1 parent 648fdf7 commit bcbf095
Showing 1 changed file with 44 additions and 11 deletions.
55 changes: 44 additions & 11 deletions TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -26425,17 +26425,7 @@ private void processSelectedOption(int option) {
break;
}
case OPTION_SAVE_MESSAGE: {
ArrayList<MessageObject> messages = new ArrayList<>();
if (selectedObjectGroup != null) {
messages.addAll(selectedObjectGroup.messages);
} else {
messages.add(selectedObject);
}
forwardMessages(messages, false, false, true, 0, getUserConfig().getClientUserId());
createUndoView();
if (undoView != null) {
undoView.showWithAction(getUserConfig().getClientUserId(), UndoView.ACTION_FWD_MESSAGES, messages.size());
}
processSaveMessage();
break;
}
case OPTION_QR: {
Expand Down Expand Up @@ -26562,6 +26552,49 @@ private void processSelectedOption(int option) {
closeMenu(!preserveDim);
}

private void processSaveMessage() {
ArrayList<MessageObject> messages = new ArrayList<>();
boolean noforwards = getMessagesController().isChatNoForwards(currentChat) || selectedObject.messageOwner.noforwards;
if (selectedObjectGroup != null) {
messages.addAll(selectedObjectGroup.messages);
} else {
messages.add(selectedObject);
}
if (noforwards) {
// todo send message link along
for (MessageObject message : messages) {
String path = message.messageOwner.attachPath;
if (path != null && path.length() > 0) {
File temp = new File(path);
if (!temp.exists()) {
path = null;
}
}
if (path == null || path.length() == 0) {
path = getFileLoader().getPathToMessage(message.messageOwner).toString();
}
ArrayList<SendMessagesHelper.SendingMediaInfo> media = new ArrayList<>();
SendMessagesHelper.SendingMediaInfo info = new SendMessagesHelper.SendingMediaInfo();
media.add(info);
info.path = path;
info.thumbPath = null;
info.videoEditedInfo = null;
info.isVideo = false;
info.caption = null;
info.entities = null;
info.masks = null;
info.ttl = 0;
SendMessagesHelper.prepareSendingMedia(getAccountInstance(), media, getUserConfig().getClientUserId(), null, null, null, false, false, null, false, 0, false);
}
} else {
forwardMessages(messages, false, false, true, 0, getUserConfig().getClientUserId());
createUndoView();
if (undoView != null) {
undoView.showWithAction(getUserConfig().getClientUserId(), UndoView.ACTION_FWD_MESSAGES, messages.size());
}
}
}

private void processLongClickSelectedOption(int option) {
if (selectedObject == null || getParentActivity() == null) {
return;
Expand Down

0 comments on commit bcbf095

Please sign in to comment.