mirror of https://github.com/NekoX-Dev/NekoX.git
Fix no quote forward breaks album
This commit is contained in:
parent
e7deda98a5
commit
39e6a4a6bb
|
@ -1005,11 +1005,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
|
|||
}
|
||||
}
|
||||
|
||||
public void processForwardFromMyName(MessageObject messageObject, long did, boolean nullReply) {
|
||||
processForwardFromMyName(messageObject, did, nullReply, true, 0);
|
||||
}
|
||||
|
||||
public void processForwardFromMyName(MessageObject messageObject, long did, boolean nullReply, boolean notify, int scheduleDate) {
|
||||
public void processForwardFromMyName(MessageObject messageObject, long did) {
|
||||
if (messageObject == null) {
|
||||
return;
|
||||
}
|
||||
|
@ -1020,9 +1016,9 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
|
|||
params.put("parentObject", "sent_" + messageObject.messageOwner.peer_id.channel_id + "_" + messageObject.getId());
|
||||
}
|
||||
if (messageObject.messageOwner.media.photo instanceof TLRPC.TL_photo) {
|
||||
sendMessage((TLRPC.TL_photo) messageObject.messageOwner.media.photo, null, did, nullReply ? null : messageObject.replyMessageObject, null, messageObject.messageOwner.message, messageObject.messageOwner.entities, null, params, notify, scheduleDate, messageObject.messageOwner.media.ttl_seconds, messageObject);
|
||||
sendMessage((TLRPC.TL_photo) messageObject.messageOwner.media.photo, null, did, messageObject.replyMessageObject, null, messageObject.messageOwner.message, messageObject.messageOwner.entities, null, params, true, 0, messageObject.messageOwner.media.ttl_seconds, messageObject);
|
||||
} else if (messageObject.messageOwner.media.document instanceof TLRPC.TL_document) {
|
||||
sendMessage((TLRPC.TL_document) messageObject.messageOwner.media.document, null, messageObject.messageOwner.attachPath, did, nullReply ? null : messageObject.replyMessageObject, null, messageObject.messageOwner.message, messageObject.messageOwner.entities, null, params, notify, scheduleDate, messageObject.messageOwner.media.ttl_seconds, messageObject);
|
||||
sendMessage((TLRPC.TL_document) messageObject.messageOwner.media.document, null, messageObject.messageOwner.attachPath, did, messageObject.replyMessageObject, null, messageObject.messageOwner.message, messageObject.messageOwner.entities, null, params, true, 0, messageObject.messageOwner.media.ttl_seconds, messageObject);
|
||||
} else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaVenue || messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGeo) {
|
||||
sendMessage(messageObject.messageOwner.media, did, messageObject.replyMessageObject, null, null, null, true, 0);
|
||||
} else if (messageObject.messageOwner.media.phone_number != null) {
|
||||
|
@ -1035,7 +1031,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
|
|||
} else if ((int) did != 0) {
|
||||
ArrayList<MessageObject> arrayList = new ArrayList<>();
|
||||
arrayList.add(messageObject);
|
||||
sendMessage(arrayList, did, notify, scheduleDate);
|
||||
sendMessage(arrayList, did, true, 0);
|
||||
}
|
||||
} else if (messageObject.messageOwner.message != null) {
|
||||
TLRPC.WebPage webPage = null;
|
||||
|
@ -1058,11 +1054,11 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
|
|||
} else {
|
||||
entities = null;
|
||||
}
|
||||
sendMessage(messageObject.messageOwner.message, did, nullReply ? null : messageObject.replyMessageObject, null, webPage, true, entities, null, null, notify, scheduleDate);
|
||||
sendMessage(messageObject.messageOwner.message, did, messageObject.replyMessageObject, null, webPage, true, entities, null, null, true, 0);
|
||||
} else if ((int) did != 0) {
|
||||
ArrayList<MessageObject> arrayList = new ArrayList<>();
|
||||
arrayList.add(messageObject);
|
||||
sendMessage(arrayList, did, notify, scheduleDate);
|
||||
sendMessage(arrayList, did, true, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1681,7 +1677,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
|
|||
}
|
||||
} else {
|
||||
for (int a = 0; a < messages.size(); a++) {
|
||||
processForwardFromMyName(messages.get(a), peer, false);
|
||||
processForwardFromMyName(messages.get(a), peer);
|
||||
}
|
||||
}
|
||||
return sendResult;
|
||||
|
|
|
@ -47,6 +47,7 @@ import java.util.ArrayList;
|
|||
|
||||
import tw.nekomimi.nekogram.NekoConfig;
|
||||
import tw.nekomimi.nekogram.utils.VibrateUtil;
|
||||
import tw.nekomimi.nekogram.MessageHelper;
|
||||
|
||||
public class BaseFragment {
|
||||
|
||||
|
@ -588,4 +589,8 @@ public class BaseFragment {
|
|||
parentLayout.setFragmentPanTranslationOffset(offset);
|
||||
}
|
||||
}
|
||||
|
||||
public MessageHelper getMessageHelper() {
|
||||
return MessageHelper.getInstance(currentAccount);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1720,7 +1720,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
|||
if (ChatObject.canUserDoAction(currentChat, ChatObject.ACTION_DELETE_MESSAGES)) {
|
||||
getMessagesController().deleteUserChannelHistory(currentChat, UserConfig.getInstance(currentAccount).getCurrentUser(), 0);
|
||||
} else {
|
||||
MessageHelper.getInstance(currentAccount).deleteUserChannelHistoryWithSearch(dialog_id, UserConfig.getInstance(currentAccount).getCurrentUser());
|
||||
getMessageHelper().deleteUserChannelHistoryWithSearch(dialog_id, UserConfig.getInstance(currentAccount).getCurrentUser());
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
|
||||
|
@ -8635,9 +8635,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
|||
if (!fromMyName) {
|
||||
AlertsCreator.showSendMediaAlert(getSendMessagesHelper().sendMessage(arrayList, did == 0 ? dialog_id : did, notify, scheduleDate), this);
|
||||
} else {
|
||||
for (MessageObject object : arrayList) {
|
||||
getSendMessagesHelper().processForwardFromMyName(object, did == 0 ? dialog_id : did, true, notify, scheduleDate);
|
||||
}
|
||||
getMessageHelper().processForwardFromMyName(arrayList, did, notify, scheduleDate);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1589,9 +1589,7 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter
|
|||
profileActivity.getSendMessagesHelper().sendMessage(message.toString(), did, null, null, null, true, null, null, null, true, 0);
|
||||
}
|
||||
if (id == forward_noquote) {
|
||||
for (MessageObject object : fmessages) {
|
||||
profileActivity.getSendMessagesHelper().processForwardFromMyName(object, did, true, true, 0);
|
||||
}
|
||||
profileActivity.getMessageHelper().processForwardFromMyName(fmessages, did, true, 0);
|
||||
} else {
|
||||
profileActivity.getSendMessagesHelper().sendMessage(fmessages, did, true, 0);
|
||||
}
|
||||
|
|
|
@ -454,9 +454,7 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
|
|||
SendMessagesHelper.getInstance(currentAccount).sendMessage(message.toString(), did, null, null, null, true, null, null, null, true, 0);
|
||||
}
|
||||
if (id == forward_noquote) {
|
||||
for (MessageObject object : fmessages) {
|
||||
SendMessagesHelper.getInstance(currentAccount).processForwardFromMyName(object, did, true, true, 0);
|
||||
}
|
||||
getMessageHelper().processForwardFromMyName(fmessages, did, true, 0);
|
||||
} else {
|
||||
SendMessagesHelper.getInstance(currentAccount).sendMessage(fmessages, did, true, 0);
|
||||
}
|
||||
|
|
|
@ -238,6 +238,8 @@ import tw.nekomimi.nekogram.transtale.TranslatorKt;
|
|||
import tw.nekomimi.nekogram.utils.AlertUtil;
|
||||
import tw.nekomimi.nekogram.utils.ProxyUtil;
|
||||
|
||||
import tw.nekomimi.nekogram.MessageHelper;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public class PhotoViewer implements NotificationCenter.NotificationCenterDelegate, GestureDetector2.OnGestureListener, GestureDetector2.OnDoubleTapListener {
|
||||
|
||||
|
@ -3472,9 +3474,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
|||
SendMessagesHelper.getInstance(currentAccount).sendMessage(message.toString(), did, null, null, null, true, null, null, null, true, 0);
|
||||
}
|
||||
if (id == gallery_menu_send_noquote) {
|
||||
for (MessageObject object : fmessages) {
|
||||
SendMessagesHelper.getInstance(currentAccount).processForwardFromMyName(object, did, true, true, 0);
|
||||
}
|
||||
MessageHelper.getInstance(currentAccount).processForwardFromMyName(fmessages, did, true, 0);
|
||||
} else {
|
||||
SendMessagesHelper.getInstance(currentAccount).sendMessage(fmessages, did, true, 0);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import org.telegram.messenger.AndroidUtilities;
|
|||
import org.telegram.messenger.BaseController;
|
||||
import org.telegram.messenger.MessageObject;
|
||||
import org.telegram.messenger.UserConfig;
|
||||
import org.telegram.messenger.Utilities;
|
||||
import org.telegram.tgnet.ConnectionsManager;
|
||||
import org.telegram.tgnet.TLRPC;
|
||||
import org.telegram.ui.Cells.ChatMessageCell;
|
||||
|
@ -12,6 +13,7 @@ import java.util.ArrayList;
|
|||
import java.util.HashSet;
|
||||
|
||||
import tw.nekomimi.nekogram.utils.AlertUtil;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class MessageHelper extends BaseController {
|
||||
|
||||
|
@ -51,6 +53,73 @@ public class MessageHelper extends BaseController {
|
|||
return localInstance;
|
||||
}
|
||||
|
||||
public void processForwardFromMyName(ArrayList<MessageObject> messages, long did, boolean notify, int scheduleDate) {
|
||||
Long groupId = Utilities.random.nextLong();
|
||||
for (int i = 0; i < messages.size(); i++) {
|
||||
MessageObject messageObject = messages.get(i);
|
||||
if (messageObject.messageOwner.media != null && !(messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaEmpty) && !(messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaWebPage) && !(messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGame) && !(messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaInvoice)) {
|
||||
HashMap<String, String> params = null;
|
||||
if ((int) did == 0 && messageObject.messageOwner.to_id != null && (messageObject.messageOwner.media.photo instanceof TLRPC.TL_photo || messageObject.messageOwner.media.document instanceof TLRPC.TL_document)) {
|
||||
params = new HashMap<>();
|
||||
params.put("parentObject", "sent_" + messageObject.messageOwner.to_id.channel_id + "_" + messageObject.getId());
|
||||
}
|
||||
if (messageObject.messageOwner.grouped_id != 0) {
|
||||
if (params == null) {
|
||||
params = new HashMap<>();
|
||||
}
|
||||
params.put("groupId", groupId + "");
|
||||
if (i == messages.size() - 1) {
|
||||
params.put("final", "true");
|
||||
}
|
||||
}
|
||||
if (messageObject.messageOwner.media.photo instanceof TLRPC.TL_photo) {
|
||||
getSendMessagesHelper().sendMessage((TLRPC.TL_photo) messageObject.messageOwner.media.photo, null, did, null, messageObject.messageOwner.message, messageObject.messageOwner.entities, null, params, notify, scheduleDate, messageObject.messageOwner.media.ttl_seconds, messageObject);
|
||||
} else if (messageObject.messageOwner.media.document instanceof TLRPC.TL_document) {
|
||||
getSendMessagesHelper().sendMessage((TLRPC.TL_document) messageObject.messageOwner.media.document, null, messageObject.messageOwner.attachPath, did, null, messageObject.messageOwner.message, messageObject.messageOwner.entities, null, params, notify, scheduleDate, messageObject.messageOwner.media.ttl_seconds, messageObject);
|
||||
} else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaVenue || messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGeo) {
|
||||
getSendMessagesHelper().sendMessage(messageObject.messageOwner.media, did, null, null, null, notify, scheduleDate);
|
||||
} else if (messageObject.messageOwner.media.phone_number != null) {
|
||||
TLRPC.User user = new TLRPC.TL_userContact_old2();
|
||||
user.phone = messageObject.messageOwner.media.phone_number;
|
||||
user.first_name = messageObject.messageOwner.media.first_name;
|
||||
user.last_name = messageObject.messageOwner.media.last_name;
|
||||
user.id = messageObject.messageOwner.media.user_id;
|
||||
getSendMessagesHelper().sendMessage(user, did, null, null, null, notify, scheduleDate);
|
||||
} else if ((int) did != 0) {
|
||||
ArrayList<MessageObject> arrayList = new ArrayList<>();
|
||||
arrayList.add(messageObject);
|
||||
getSendMessagesHelper().sendMessage(arrayList, did, notify, scheduleDate);
|
||||
}
|
||||
} else if (messageObject.messageOwner.message != null) {
|
||||
TLRPC.WebPage webPage = null;
|
||||
if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaWebPage) {
|
||||
webPage = messageObject.messageOwner.media.webpage;
|
||||
}
|
||||
ArrayList<TLRPC.MessageEntity> entities;
|
||||
if (messageObject.messageOwner.entities != null && !messageObject.messageOwner.entities.isEmpty()) {
|
||||
entities = new ArrayList<>();
|
||||
for (int a = 0; a < messageObject.messageOwner.entities.size(); a++) {
|
||||
TLRPC.MessageEntity entity = messageObject.messageOwner.entities.get(a);
|
||||
if (entity instanceof TLRPC.TL_messageEntityBold ||
|
||||
entity instanceof TLRPC.TL_messageEntityItalic ||
|
||||
entity instanceof TLRPC.TL_messageEntityPre ||
|
||||
entity instanceof TLRPC.TL_messageEntityCode ||
|
||||
entity instanceof TLRPC.TL_messageEntityTextUrl) {
|
||||
entities.add(entity);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
entities = null;
|
||||
}
|
||||
getSendMessagesHelper().sendMessage(messageObject.messageOwner.message, did, null, webPage, true, entities, null, null, notify, scheduleDate);
|
||||
} else if ((int) did != 0) {
|
||||
ArrayList<MessageObject> arrayList = new ArrayList<>();
|
||||
arrayList.add(messageObject);
|
||||
getSendMessagesHelper().sendMessage(arrayList, did, notify, scheduleDate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteUserChannelHistoryWithSearch(final long dialog_id, final TLRPC.User user) {
|
||||
deleteUserChannelHistoryWithSearch(dialog_id, user, 0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue