remove after reading messages fixing and refactoring

This commit is contained in:
vivabelarus 2022-12-30 17:41:06 +03:00
parent ae2a72f062
commit 661cefa411
No known key found for this signature in database
GPG key ID: D8D8542F5B70C314
12 changed files with 139 additions and 147 deletions

View file

@ -49,8 +49,7 @@ import androidx.core.view.inputmethod.InputContentInfoCompat;
import org.json.JSONObject;
import org.telegram.messenger.audioinfo.AudioInfo;
import org.telegram.messenger.fakepasscode.FakePasscode;
import org.telegram.messenger.fakepasscode.RemoveAsReadMessages;
import org.telegram.messenger.fakepasscode.RemoveAfterReadingMessages;
import org.telegram.messenger.fakepasscode.TelegramMessageAction;
import org.telegram.messenger.support.SparseLongArray;
import org.telegram.tgnet.ConnectionsManager;
@ -3214,16 +3213,16 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
sendMessage(null, null, null, null, null, null, null, null, null, null, retryMessageObject.getDialogId(), retryMessageObject.messageOwner.attachPath, null, null, null, true, retryMessageObject, null, retryMessageObject.messageOwner.reply_markup, retryMessageObject.messageOwner.params, !retryMessageObject.messageOwner.silent, retryMessageObject.scheduled ? retryMessageObject.messageOwner.date : 0, 0, null, null, false, false, 0);
}
public void sendMessage(MessageObject retryMessageObject, boolean autoDeletable, int delay) {
sendMessage(null, null, null, null, null, null, null, null, null, null, retryMessageObject.getDialogId(), retryMessageObject.messageOwner.attachPath, null, null, null, true, retryMessageObject, null, retryMessageObject.messageOwner.reply_markup, retryMessageObject.messageOwner.params, !retryMessageObject.messageOwner.silent, retryMessageObject.scheduled ? retryMessageObject.messageOwner.date : 0, 0, null, null, false, autoDeletable, delay);
public void sendMessage(MessageObject retryMessageObject, Integer autoDeleteDelay) {
sendMessage(null, null, null, null, null, null, null, null, null, null, retryMessageObject.getDialogId(), retryMessageObject.messageOwner.attachPath, null, null, null, true, retryMessageObject, null, retryMessageObject.messageOwner.reply_markup, retryMessageObject.messageOwner.params, !retryMessageObject.messageOwner.silent, retryMessageObject.scheduled ? retryMessageObject.messageOwner.date : 0, 0, null, null, false, autoDeleteDelay);
}
public void sendMessage(TLRPC.User user, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate) {
sendMessage(null, null, null, null, null, user, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, false, 0);
}
public void sendMessage(TLRPC.User user, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, boolean autoDeletable, int delay) {
sendMessage(null, null, null, null, null, user, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeletable, delay);
public void sendMessage(TLRPC.User user, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, Integer autoDeleteDelay) {
sendMessage(null, null, null, null, null, user, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeleteDelay);
}
public void sendMessage(TLRPC.TL_messageMediaInvoice invoice, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate) {
@ -3231,90 +3230,102 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
}
public void sendMessage(TLRPC.TL_document document, VideoEditedInfo videoEditedInfo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOrder) {
sendMessage(null, caption, null, null, videoEditedInfo, null, document, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, updateStickersOrder, false, 0);
sendMessage(null, caption, null, null, videoEditedInfo, null, document, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, updateStickersOrder, null);
}
public void sendMessage(TLRPC.TL_document document, VideoEditedInfo videoEditedInfo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean autoDeletable, int delay) {
sendMessage(null, caption, null, null, videoEditedInfo, null, document, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, false, autoDeletable, delay);
public void sendMessage(TLRPC.TL_document document, VideoEditedInfo videoEditedInfo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, Integer autoDeleteDelay) {
sendMessage(null, caption, null, null, videoEditedInfo, null, document, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, false, autoDeleteDelay);
}
public void sendMessage(TLRPC.TL_document document, VideoEditedInfo videoEditedInfo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOrder, boolean hasMediaSpoilers) {
sendMessage(null, caption, null, null, videoEditedInfo, null, document, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, updateStickersOrder, hasMediaSpoilers);
sendMessage(null, caption, null, null, videoEditedInfo, null, document, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, updateStickersOrder, hasMediaSpoilers, null);
}
public void sendMessage(TLRPC.TL_document document, VideoEditedInfo videoEditedInfo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOrder, boolean hasMediaSpoilers, Integer autoDeleteDelay) {
sendMessage(null, caption, null, null, videoEditedInfo, null, document, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, updateStickersOrder, hasMediaSpoilers, autoDeleteDelay);
}
public void sendMessage(String message, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOrder) {
sendMessage(message, null, null, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, webPage, searchLinks, null, entities, replyMarkup, params, notify, scheduleDate, 0, null, sendAnimationData, updateStickersOrder, false, 0);
}
public void sendMessage(TLRPC.TL_messageMediaInvoice invoice, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, boolean autoDeletable, int delay) {
sendMessage(null, null, null, null, null, null, null, null, null, invoice, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeletable, delay);
public void sendMessage(TLRPC.TL_messageMediaInvoice invoice, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, Integer autoDeleteDelay) {
sendMessage(null, null, null, null, null, null, null, null, null, invoice, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeleteDelay);
}
public void sendMessage(TLRPC.TL_document document, VideoEditedInfo videoEditedInfo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, boolean autoDeletable, int delay) {
sendMessage(null, caption, null, null, videoEditedInfo, null, document, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, false, autoDeletable, delay);
public void sendMessage(TLRPC.TL_document document, VideoEditedInfo videoEditedInfo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, Integer autoDeleteDelay) {
sendMessage(null, caption, null, null, videoEditedInfo, null, document, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, false, autoDeleteDelay);
}
public void sendMessage(String message, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, boolean autoDeletable, int delay) {
sendMessage(message, null, null, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, webPage, searchLinks, null, entities, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeletable, delay);
public void sendMessage(String message, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, Integer autoDeleteDelay) {
sendMessage(message, null, null, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, webPage, searchLinks, null, entities, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeleteDelay);
}
public void sendMessage(String message, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, MessageObject.SendAnimationData sendAnimationData, boolean autoDeletable, int delay) {
sendMessage(message, null, null, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, webPage, searchLinks, null, entities, replyMarkup, params, notify, scheduleDate, 0, null, sendAnimationData, false, autoDeletable, delay);
public void sendMessage(String message, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, MessageObject.SendAnimationData sendAnimationData, Integer autoDeleteDelay) {
sendMessage(message, null, null, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, webPage, searchLinks, null, entities, replyMarkup, params, notify, scheduleDate, 0, null, sendAnimationData, false, autoDeleteDelay);
}
public void sendMessage(String message, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOrder, boolean autoDeletable, int delay) {
sendMessage(message, null, null, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, webPage, searchLinks, null, entities, replyMarkup, params, notify, scheduleDate, 0, null, sendAnimationData, updateStickersOrder, autoDeletable, delay);
public void sendMessage(String message, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOrder, Integer autoDeleteDelay) {
sendMessage(message, null, null, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, webPage, searchLinks, null, entities, replyMarkup, params, notify, scheduleDate, 0, null, sendAnimationData, updateStickersOrder, autoDeleteDelay);
}
public void sendMessage(TLRPC.MessageMedia location, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate) {
sendMessage(null, null, location, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, false, 0);
}
public void sendMessage(TLRPC.MessageMedia location, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, boolean autoDeletable, int delay) {
sendMessage(null, null, location, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeletable, delay);
public void sendMessage(TLRPC.MessageMedia location, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, Integer autoDeleteDelay) {
sendMessage(null, null, location, null, null, null, null, null, null, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeleteDelay);
}
public void sendMessage(TLRPC.TL_messageMediaPoll poll, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate) {
sendMessage(null, null, null, null, null, null, null, null, poll, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, false, 0);
}
public void sendMessage(TLRPC.TL_messageMediaPoll poll, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, boolean autoDeletable, int delay) {
sendMessage(null, null, null, null, null, null, null, null, poll, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeletable, delay);
public void sendMessage(TLRPC.TL_messageMediaPoll poll, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, Integer autoDeleteDelay) {
sendMessage(null, null, null, null, null, null, null, null, poll, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeleteDelay);
}
public void sendMessage(TLRPC.TL_game game, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate) {
sendMessage(null, null, null, null, null, null, null, game, null, null, peer, null, replyToMsg, replyToTopMsg, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, false, 0);
}
public void sendMessage(TLRPC.TL_game game, long peer, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, boolean autoDeletable, int delay) {
sendMessage(null, null, null, null, null, null, null, game, null, null, peer, null, null, null, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeletable, delay);
public void sendMessage(TLRPC.TL_game game, long peer, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, Integer autoDeleteDelay) {
sendMessage(null, null, null, null, null, null, null, game, null, null, peer, null, null, null, null, true, null, null, replyMarkup, params, notify, scheduleDate, 0, null, null, false, autoDeleteDelay);
}
public void sendMessage(TLRPC.TL_photo photo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, boolean updateStickersOrder, boolean hasMediaSpoilers) {
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, updateStickersOrder, hasMediaSpoilers);
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, updateStickersOrder, hasMediaSpoilers, null);
}
public void sendMessage(TLRPC.TL_photo photo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, boolean updateStickersOrder, boolean hasMediaSpoilers, Integer autoDeleteDelay) {
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, updateStickersOrder, hasMediaSpoilers, autoDeleteDelay);
}
public void sendMessage(TLRPC.TL_photo photo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, boolean updateStickersOrder) {
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, updateStickersOrder, false, 0);
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, updateStickersOrder, null);
}
public void sendMessage(TLRPC.TL_photo photo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, boolean updateStickersOrder, boolean autoDeletable, int delay) {
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, updateStickersOrder, autoDeletable, delay);
public void sendMessage(TLRPC.TL_photo photo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, boolean updateStickersOrder, Integer autoDeleteDelay) {
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, updateStickersOrder, autoDeleteDelay);
}
public void sendMessage(TLRPC.TL_photo photo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData) {
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, false, false, 0);
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, false, null);
}
public void sendMessage(TLRPC.TL_photo photo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean autoDeletable, int delay) {
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, false, autoDeletable, delay);
public void sendMessage(TLRPC.TL_photo photo, String path, long peer, MessageObject replyToMsg, MessageObject replyToTopMsg, String caption, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, Integer autoDeleteDelay) {
sendMessage(null, caption, null, photo, null, null, null, null, null, null, peer, path, replyToMsg, replyToTopMsg, null, true, null, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, false, autoDeleteDelay);
}
private void sendMessage(String message, String caption, TLRPC.MessageMedia location, TLRPC.TL_photo photo, VideoEditedInfo videoEditedInfo, TLRPC.User user, TLRPC.TL_document document, TLRPC.TL_game game, TLRPC.TL_messageMediaPoll poll, TLRPC.TL_messageMediaInvoice invoice, long peer, String path, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, MessageObject retryMessageObject, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOreder, boolean autoDeletable, int delay) {
sendMessage(message, caption, location, photo, videoEditedInfo, user, document, game, poll, invoice, peer, path, replyToMsg, replyToTopMsg, webPage, searchLinks, retryMessageObject, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, updateStickersOreder, false);
private void sendMessage(String message, String caption, TLRPC.MessageMedia location, TLRPC.TL_photo photo, VideoEditedInfo videoEditedInfo, TLRPC.User user, TLRPC.TL_document document, TLRPC.TL_game game, TLRPC.TL_messageMediaPoll poll, TLRPC.TL_messageMediaInvoice invoice, long peer, String path, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, MessageObject retryMessageObject, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOreder) {
sendMessage(message, caption, location, photo, videoEditedInfo, user, document, game, poll, invoice, peer, path, replyToMsg, replyToTopMsg, webPage, searchLinks, retryMessageObject, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, updateStickersOreder, false, null);
}
private void sendMessage(String message, String caption, TLRPC.MessageMedia location, TLRPC.TL_photo photo, VideoEditedInfo videoEditedInfo, TLRPC.User user, TLRPC.TL_document document, TLRPC.TL_game game, TLRPC.TL_messageMediaPoll poll, TLRPC.TL_messageMediaInvoice invoice, long peer, String path, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, MessageObject retryMessageObject, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOreder, boolean hasMediaSpoilers) {
private void sendMessage(String message, String caption, TLRPC.MessageMedia location, TLRPC.TL_photo photo, VideoEditedInfo videoEditedInfo, TLRPC.User user, TLRPC.TL_document document, TLRPC.TL_game game, TLRPC.TL_messageMediaPoll poll, TLRPC.TL_messageMediaInvoice invoice, long peer, String path, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, MessageObject retryMessageObject, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOreder, Integer autoDeleteDelay) {
sendMessage(message, caption, location, photo, videoEditedInfo, user, document, game, poll, invoice, peer, path, replyToMsg, replyToTopMsg, webPage, searchLinks, retryMessageObject, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, sendAnimationData, updateStickersOreder, false, autoDeleteDelay);
}
private void sendMessage(String message, String caption, TLRPC.MessageMedia location, TLRPC.TL_photo photo, VideoEditedInfo videoEditedInfo, TLRPC.User user, TLRPC.TL_document document, TLRPC.TL_game game, TLRPC.TL_messageMediaPoll poll, TLRPC.TL_messageMediaInvoice invoice, long peer, String path, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, MessageObject retryMessageObject, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject, MessageObject.SendAnimationData sendAnimationData, boolean updateStickersOreder, boolean hasMediaSpoilers, Integer autoDeleteDelay) {
if (user != null && user.phone == null) {
return;
}
@ -3351,15 +3362,15 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
getNotificationCenter().postNotificationName(NotificationCenter.messageSendError, retryMessageObject.getId());
processSentMessage(retryMessageObject.getId());
if (autoDeletable) {
RemoveAsReadMessages.load();
RemoveAsReadMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount)
if (autoDeleteDelay != null) {
RemoveAfterReadingMessages.load();
RemoveAfterReadingMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount)
.putIfAbsent("" + retryMessageObject.messageOwner.dialog_id, new ArrayList<>());
RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount)
RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount)
.get("" + retryMessageObject.messageOwner.dialog_id).add(
new RemoveAsReadMessages.RemoveAsReadMessage(retryMessageObject.getId(), delay));
RemoveAsReadMessages.save();
new RemoveAfterReadingMessages.RemoveAsReadMessage(retryMessageObject.getId(), autoDeleteDelay));
RemoveAfterReadingMessages.save();
}
}
return;
@ -4734,23 +4745,18 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
processSentMessage(newMsg.id);
}
if (autoDeletable) {
RemoveAsReadMessages.load();
RemoveAsReadMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount)
if (autoDeleteDelay != null) {
RemoveAfterReadingMessages.load();
RemoveAfterReadingMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount)
.putIfAbsent("" + newMsg.dialog_id, new ArrayList<>());
RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount)
RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount)
.get("" + newMsg.dialog_id).add(
new RemoveAsReadMessages.RemoveAsReadMessage(newMsg.id, delay));
RemoveAsReadMessages.save();
new RemoveAfterReadingMessages.RemoveAsReadMessage(newMsg.id, autoDeleteDelay));
RemoveAfterReadingMessages.save();
}
}
private void sendMessage(String message, String caption, TLRPC.MessageMedia location, TLRPC.TL_photo photo, VideoEditedInfo videoEditedInfo, TLRPC.User user, TLRPC.TL_document document, TLRPC.TL_game game, TLRPC.TL_messageMediaPoll poll, TLRPC.TL_messageMediaInvoice invoice, long peer, String path, MessageObject replyToMsg, MessageObject replyToTopMsg, TLRPC.WebPage webPage, boolean searchLinks, MessageObject retryMessageObject, ArrayList<TLRPC.MessageEntity> entities, TLRPC.ReplyMarkup replyMarkup, HashMap<String, String> params, boolean notify, int scheduleDate, int ttl, Object parentObject) {
sendMessage(message, caption, location, photo, videoEditedInfo, user, document, game, poll, invoice, peer, path, replyToMsg, replyToTopMsg, webPage, searchLinks, retryMessageObject, entities, replyMarkup, params, notify, scheduleDate, ttl, parentObject, null, false, false, 0);
}
private void performSendDelayedMessage(final DelayedMessage message) {
performSendDelayedMessage(message, -1);
}
@ -6850,7 +6856,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
info.videoEditedInfo = videoEditedInfo;
ArrayList<SendingMediaInfo> infos = new ArrayList<>();
infos.add(info);
prepareSendingMedia(accountInstance, infos, dialogId, replyToMsg, replyToTopMsg, inputContent, forceDocument, false, editingMessageObject, notify, scheduleDate, false, false, 0);
prepareSendingMedia(accountInstance, infos, dialogId, replyToMsg, replyToTopMsg, inputContent, forceDocument, false, editingMessageObject, notify, scheduleDate, false);
}
@UiThread
@ -7359,8 +7365,17 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
return bmOptions.outWidth < 800 && bmOptions.outHeight < 800;
}
public static void prepareSendingMedia(AccountInstance accountInstance, ArrayList<SendingMediaInfo> media, long dialogId, MessageObject replyToMsg, MessageObject replyToTopMsg, InputContentInfoCompat inputContent, boolean forceDocument, boolean groupMedia, MessageObject editingMessageObject, boolean notify, int scheduleDate, boolean updateStikcersOrder) {
prepareSendingMedia(accountInstance, media, dialogId, replyToMsg, replyToTopMsg, inputContent, forceDocument, groupMedia, editingMessageObject, notify, scheduleDate, updateStikcersOrder, null);
}
@UiThread
public static void prepareSendingMedia(AccountInstance accountInstance, ArrayList<SendingMediaInfo> media, long dialogId, MessageObject replyToMsg, MessageObject replyToTopMsg, InputContentInfoCompat inputContent, boolean forceDocument, boolean groupMedia, MessageObject editingMessageObject, boolean notify, int scheduleDate, boolean updateStikcersOrder, boolean autoDeletable, int delay) {
public static void prepareSendingMedia(AccountInstance accountInstance, ArrayList<SendingMediaInfo> media, long dialogId, MessageObject replyToMsg, MessageObject replyToTopMsg, InputContentInfoCompat inputContent, boolean forceDocument, boolean groupMedia, MessageObject editingMessageObject, boolean notify, int scheduleDate) {
prepareSendingMedia(accountInstance, media, dialogId, replyToMsg, replyToTopMsg, inputContent, forceDocument, groupMedia, editingMessageObject, notify, scheduleDate, false, null);
}
@UiThread
public static void prepareSendingMedia(AccountInstance accountInstance, ArrayList<SendingMediaInfo> media, long dialogId, MessageObject replyToMsg, MessageObject replyToTopMsg, InputContentInfoCompat inputContent, boolean forceDocument, boolean groupMedia, MessageObject editingMessageObject, boolean notify, int scheduleDate, boolean updateStikcersOrder, Integer autoDeleteDelay) {
if (media.isEmpty()) {
return;
}
@ -7564,7 +7579,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
if (editingMessageObject != null) {
accountInstance.getSendMessagesHelper().editMessage(editingMessageObject, null, null, documentFinal, pathFinal, params, false, info.hasMediaSpoilers, parentFinal);
} else {
accountInstance.getSendMessagesHelper().sendMessage(documentFinal, null, pathFinal, dialogId, replyToMsg, replyToTopMsg, info.caption, info.entities, null, params, notify, scheduleDate, 0, parentFinal, null, false, info.hasMediaSpoilers, autoDeletable, delay);
accountInstance.getSendMessagesHelper().sendMessage(documentFinal, null, pathFinal, dialogId, replyToMsg, replyToTopMsg, info.caption, info.entities, null, params, notify, scheduleDate, 0, parentFinal, null, false, info.hasMediaSpoilers, autoDeleteDelay);
}
});
} else {
@ -7635,7 +7650,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
if (editingMessageObject != null) {
accountInstance.getSendMessagesHelper().editMessage(editingMessageObject, photoFinal, null, null, needDownloadHttpFinal ? info.searchImage.imageUrl : null, params, false, info.hasMediaSpoilers, parentFinal);
} else {
accountInstance.getSendMessagesHelper().sendMessage(photoFinal, needDownloadHttpFinal ? info.searchImage.imageUrl : null, dialogId, replyToMsg, replyToTopMsg, info.caption, info.entities, null, params, notify, scheduleDate, info.ttl, parentFinal, false, info.hasMediaSpoilers, autoDeletable, delay);
accountInstance.getSendMessagesHelper().sendMessage(photoFinal, needDownloadHttpFinal ? info.searchImage.imageUrl : null, dialogId, replyToMsg, replyToTopMsg, info.caption, info.entities, null, params, notify, scheduleDate, info.ttl, parentFinal, false, info.hasMediaSpoilers, autoDeleteDelay);
}
});
}
@ -7815,7 +7830,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
if (editingMessageObject != null) {
accountInstance.getSendMessagesHelper().editMessage(editingMessageObject, null, videoEditedInfo, videoFinal, finalPath, params, false, info.hasMediaSpoilers, parentFinal);
} else {
accountInstance.getSendMessagesHelper().sendMessage(videoFinal, videoEditedInfo, finalPath, dialogId, replyToMsg, replyToTopMsg, info.caption, info.entities, null, params, notify, scheduleDate, info.ttl, parentFinal, null, false, info.hasMediaSpoilers, autoDeletable, delay);
accountInstance.getSendMessagesHelper().sendMessage(videoFinal, videoEditedInfo, finalPath, dialogId, replyToMsg, replyToTopMsg, info.caption, info.entities, null, params, notify, scheduleDate, info.ttl, parentFinal, null, false, info.hasMediaSpoilers, autoDeleteDelay);
}
});
} else {
@ -8012,7 +8027,7 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
if (editingMessageObject != null) {
accountInstance.getSendMessagesHelper().editMessage(editingMessageObject, photoFinal, null, null, null, params, false, info.hasMediaSpoilers, parentFinal);
} else {
accountInstance.getSendMessagesHelper().sendMessage(photoFinal, null, dialogId, replyToMsg, replyToTopMsg, info.caption, info.entities, null, params, notify, scheduleDate, info.ttl, parentFinal, updateStikcersOrder, info.hasMediaSpoilers, autoDeletable, delay);
accountInstance.getSendMessagesHelper().sendMessage(photoFinal, null, dialogId, replyToMsg, replyToTopMsg, info.caption, info.entities, null, params, notify, scheduleDate, info.ttl, parentFinal, updateStikcersOrder, info.hasMediaSpoilers, autoDeleteDelay);
}
});
} else {
@ -8058,15 +8073,6 @@ public class SendMessagesHelper extends BaseController implements NotificationCe
});
}
public static void prepareSendingMedia(AccountInstance accountInstance, ArrayList<SendingMediaInfo> media, long dialogId, MessageObject replyToMsg, MessageObject replyToTopMsg, InputContentInfoCompat inputContent, boolean forceDocument, boolean groupMedia, MessageObject editingMessageObject, boolean notify, int scheduleDate, boolean updateStikcersOrder) {
prepareSendingMedia(accountInstance, media, dialogId, replyToMsg, replyToTopMsg, inputContent, forceDocument, groupMedia, editingMessageObject, notify, scheduleDate, updateStikcersOrder, false, 0);
}
@UiThread
public static void prepareSendingMedia(AccountInstance accountInstance, ArrayList<SendingMediaInfo> media, long dialogId, MessageObject replyToMsg, MessageObject replyToTopMsg, InputContentInfoCompat inputContent, boolean forceDocument, boolean groupMedia, MessageObject editingMessageObject, boolean notify, int scheduleDate) {
prepareSendingMedia(accountInstance, media, dialogId, replyToMsg, replyToTopMsg, inputContent, forceDocument, groupMedia, editingMessageObject, notify, scheduleDate, false, false, 0);
}
private static void fillVideoAttribute(String videoPath, TLRPC.TL_documentAttributeVideo attributeVideo, VideoEditedInfo videoEditedInfo) {
boolean infoObtained = false;

View file

@ -15,7 +15,6 @@ import android.graphics.Paint;
import android.graphics.Rect;
import com.carrotsearch.randomizedtesting.Xoroshiro128PlusRandom;
import org.telegram.messenger.fakepasscode.RemoveAsReadMessages;
import java.io.BufferedReader;
import java.io.File;
@ -28,10 +27,6 @@ import java.security.MessageDigest;
import java.security.SecureRandom;
import java.util.HashMap;
import java.util.Random;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

View file

@ -16,7 +16,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
public class RemoveAsReadMessages {
public class RemoveAfterReadingMessages {
public static class RemoveAsReadMessage {
private int id;
private long readTime = -1;

View file

@ -20,11 +20,9 @@ import org.telegram.messenger.ChatObject;
import org.telegram.messenger.DialogObject;
import org.telegram.messenger.DownloadController;
import org.telegram.messenger.FileLoader;
import org.telegram.messenger.ImageLoader;
import org.telegram.messenger.LocaleController;
import org.telegram.messenger.MediaDataController;
import org.telegram.messenger.MessagesController;
import org.telegram.messenger.MessagesStorage;
import org.telegram.messenger.NotificationCenter;
import org.telegram.messenger.R;
import org.telegram.messenger.SharedConfig;
@ -220,25 +218,25 @@ public class Utils {
}
public static void cleanAutoDeletable(int messageId, int currentAccount, long dialogId) {
RemoveAsReadMessages.load();
Map<String, List<RemoveAsReadMessages.RemoveAsReadMessage>> curAccountMessages =
RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount);
RemoveAfterReadingMessages.load();
Map<String, List<RemoveAfterReadingMessages.RemoveAsReadMessage>> curAccountMessages =
RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount);
if (curAccountMessages == null || curAccountMessages.get("" + dialogId) == null) {
return;
}
for (RemoveAsReadMessages.RemoveAsReadMessage messageToRemove : new ArrayList<>(curAccountMessages.get("" + dialogId))) {
for (RemoveAfterReadingMessages.RemoveAsReadMessage messageToRemove : new ArrayList<>(curAccountMessages.get("" + dialogId))) {
if (messageToRemove.getId() == messageId) {
RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount).get("" + dialogId).remove(messageToRemove);
RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount).get("" + dialogId).remove(messageToRemove);
}
}
if (curAccountMessages.get("" + dialogId) != null
&& curAccountMessages.get("" + dialogId).isEmpty()) {
RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount).remove("" + dialogId);
RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount).remove("" + dialogId);
}
RemoveAsReadMessages.save();
RemoveAfterReadingMessages.save();
}
public static void startDeleteProcess(int currentAccount, List<MessageObject> messages) {
@ -257,12 +255,12 @@ public class Utils {
public static void startDeleteProcess(int currentAccount, long currentDialogId,
List<MessageObject> messages) {
RemoveAsReadMessages.load();
RemoveAfterReadingMessages.load();
Map<Integer, Integer> idsToDelays = new HashMap<>();
RemoveAsReadMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
RemoveAfterReadingMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
for (MessageObject message : messages) {
for (RemoveAsReadMessages.RemoveAsReadMessage messageToRemove :
RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount)
for (RemoveAfterReadingMessages.RemoveAsReadMessage messageToRemove :
RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount)
.getOrDefault("" + currentDialogId, new ArrayList<>())) {
if (messageToRemove.getId() == message.getId()) {
idsToDelays.put(message.getId(), messageToRemove.getScheduledTimeMs());
@ -270,7 +268,7 @@ public class Utils {
}
}
}
RemoveAsReadMessages.save();
RemoveAfterReadingMessages.save();
for (Map.Entry<Integer, Integer> idToMs : idsToDelays.entrySet()) {
ArrayList<Integer> ids = new ArrayList<>();
@ -302,7 +300,7 @@ public class Utils {
});
}, Math.max(delay, 0));
}
RemoveAsReadMessages.save();
RemoveAfterReadingMessages.save();
}
public static boolean isNetworkConnected() {

View file

@ -69,10 +69,8 @@ import org.telegram.messenger.R;
import org.telegram.messenger.SharedConfig;
import org.telegram.messenger.UserConfig;
import org.telegram.messenger.UserObject;
import org.telegram.messenger.FileLog;
import org.telegram.messenger.Utilities;
import org.telegram.messenger.fakepasscode.FakePasscode;
import org.telegram.messenger.fakepasscode.RemoveAsReadMessages;
import org.telegram.messenger.fakepasscode.Utils;
import org.telegram.tgnet.ConnectionsManager;
import org.telegram.tgnet.TLRPC;
@ -114,10 +112,6 @@ import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Stack;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
public class DialogCell extends BaseCell {

View file

@ -151,7 +151,7 @@ import org.telegram.messenger.Utilities;
import org.telegram.messenger.VideoEditedInfo;
import org.telegram.messenger.browser.Browser;
import org.telegram.messenger.fakepasscode.FakePasscode;
import org.telegram.messenger.fakepasscode.RemoveAsReadMessages;
import org.telegram.messenger.fakepasscode.RemoveAfterReadingMessages;
import org.telegram.messenger.fakepasscode.Utils;
import org.telegram.messenger.support.LongSparseIntArray;
import org.telegram.messenger.utils.PhotoUtilities;
@ -16545,7 +16545,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
}
LongSparseIntArray inbox = (LongSparseIntArray) args[0];
LongSparseIntArray outbox = (LongSparseIntArray) args[1];
RemoveAsReadMessages.load();
RemoveAfterReadingMessages.load();
boolean updated = false;
if (inbox != null) {
for (int b = 0, size = inbox.size(); b < size; b++) {
@ -16710,17 +16710,17 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
}
Integer newMsgId = (Integer) args[1];
RemoveAsReadMessages.load();
RemoveAsReadMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
if (RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount).containsKey("" + dialog_id)) {
for (RemoveAsReadMessages.RemoveAsReadMessage message : RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount).get("" + dialog_id)) {
RemoveAfterReadingMessages.load();
RemoveAfterReadingMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
if (RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount).containsKey("" + dialog_id)) {
for (RemoveAfterReadingMessages.RemoveAsReadMessage message : RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount).get("" + dialog_id)) {
if (message.getId() == msgId) {
message.setId(newMsgId);
break;
}
}
}
RemoveAsReadMessages.save();
RemoveAfterReadingMessages.save();
if (!newMsgId.equals(msgId) && messagesDict[0].indexOfKey(newMsgId) >= 0) {
MessageObject removed = messagesDict[0].get(msgId);

View file

@ -126,7 +126,7 @@ import org.telegram.messenger.VideoEditedInfo;
import org.telegram.messenger.browser.Browser;
import org.telegram.messenger.camera.CameraController;
import org.telegram.messenger.fakepasscode.FakePasscode;
import org.telegram.messenger.fakepasscode.RemoveAsReadMessages;
import org.telegram.messenger.fakepasscode.RemoveAfterReadingMessages;
import org.telegram.tgnet.ConnectionsManager;
import org.telegram.tgnet.TLRPC;
import org.telegram.ui.ActionBar.ActionBar;
@ -3759,13 +3759,13 @@ public class ChatActivityEnterView extends BlurredFrameLayout implements Notific
if (sendPopupWindow != null && sendPopupWindow.isShowing()) {
sendPopupWindow.dismiss();
}
RemoveAsReadMessages.load();
RemoveAsReadMessages.delays.putIfAbsent("" + currentAccount, 5 * 1000);
AlertsCreator.createScheduleDeleteTimePickerDialog(parentActivity, RemoveAsReadMessages.delays.get("" + currentAccount),
RemoveAfterReadingMessages.load();
RemoveAfterReadingMessages.delays.putIfAbsent("" + currentAccount, 5 * 1000);
AlertsCreator.createScheduleDeleteTimePickerDialog(parentActivity, RemoveAfterReadingMessages.delays.get("" + currentAccount),
(notify, delay) -> {
sendMessageInternal(notify, 0, true, delay);
RemoveAsReadMessages.delays.put("" + currentAccount, delay);
RemoveAsReadMessages.save();
sendMessageInternal(notify, 0, delay);
RemoveAfterReadingMessages.delays.put("" + currentAccount, delay);
RemoveAfterReadingMessages.save();
});
});
sendPopupLayout.addView(scheduleDeleteButton, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48));
@ -4737,7 +4737,7 @@ public class ChatActivityEnterView extends BlurredFrameLayout implements Notific
}
private boolean premiumEmojiBulletin = true;
private void sendMessageInternal(boolean notify, int scheduleDate, boolean autoDeletable, int delay) {
private void sendMessageInternal(boolean notify, int scheduleDate, Integer autoDeleteDelay) {
if (slowModeTimer == Integer.MAX_VALUE && !isInScheduleMode()) {
if (delegate != null) {
delegate.scrollToSendingMessage();
@ -4768,7 +4768,7 @@ public class ChatActivityEnterView extends BlurredFrameLayout implements Notific
if (playing != null && playing == audioToSendMessageObject) {
MediaController.getInstance().cleanupPlayer(true, true);
}
SendMessagesHelper.getInstance(currentAccount).sendMessage(audioToSend, null, audioToSendPath, dialog_id, replyingMessageObject, getThreadMessage(), null, null, null, null, notify, scheduleDate, 0, null, autoDeletable, delay);
SendMessagesHelper.getInstance(currentAccount).sendMessage(audioToSend, null, audioToSendPath, dialog_id, replyingMessageObject, getThreadMessage(), null, null, null, null, notify, scheduleDate, 0, null, autoDeleteDelay);
if (delegate != null) {
delegate.onMessageSend(null, notify, scheduleDate);
}
@ -4792,7 +4792,7 @@ public class ChatActivityEnterView extends BlurredFrameLayout implements Notific
if (checkPremiumAnimatedEmoji(currentAccount, dialog_id, parentFragment, null, message)) {
return;
}
if (processSendingText(message, notify, scheduleDate, autoDeletable, delay)) {
if (processSendingText(message, notify, scheduleDate, autoDeleteDelay)) {
if (delegate.hasForwardingMessages() || (scheduleDate != 0 && !isInScheduleMode()) || isInScheduleMode()) {
messageEditText.setText("");
if (delegate != null) {
@ -4818,7 +4818,7 @@ public class ChatActivityEnterView extends BlurredFrameLayout implements Notific
}
private void sendMessageInternal(boolean notify, int scheduleDate) {
sendMessageInternal(notify, scheduleDate, false, 0);
sendMessageInternal(notify, scheduleDate, null);
}
public static boolean checkPremiumAnimatedEmoji(int currentAccount, long dialogId, BaseFragment parentFragment, FrameLayout container, CharSequence message) {
@ -4915,7 +4915,7 @@ public class ChatActivityEnterView extends BlurredFrameLayout implements Notific
setEditingMessageObject(null, false);
}
public boolean processSendingText(CharSequence text, boolean notify, int scheduleDate, boolean autoDeletable, int delay) {
public boolean processSendingText(CharSequence text, boolean notify, int scheduleDate, Integer autoDeleteDelay) {
int[] emojiOnly = new int[1];
Emoji.parseEmojis(text, emojiOnly);
boolean hasOnlyEmoji = emojiOnly[0] > 0;
@ -4986,7 +4986,7 @@ public class ChatActivityEnterView extends BlurredFrameLayout implements Notific
updateStickersOrder = SendMessagesHelper.checkUpdateStickersOrder(text);
SendMessagesHelper.getInstance(currentAccount).sendMessage(message[0].toString(), dialog_id, replyingMessageObject, getThreadMessage(), messageWebPage, messageWebPageSearch, entities, null, null, notify, scheduleDate, sendAnimationData, updateStickersOrder, autoDeletable, delay);
SendMessagesHelper.getInstance(currentAccount).sendMessage(message[0].toString(), dialog_id, replyingMessageObject, getThreadMessage(), messageWebPage, messageWebPageSearch, entities, null, null, notify, scheduleDate, sendAnimationData, updateStickersOrder, autoDeleteDelay);
start = end + 1;
} while (end != text.length());
return true;
@ -4995,7 +4995,7 @@ public class ChatActivityEnterView extends BlurredFrameLayout implements Notific
}
public boolean processSendingText(CharSequence text, boolean notify, int scheduleDate) {
return processSendingText(text, notify, scheduleDate, false, 0);
return processSendingText(text, notify, scheduleDate, null);
}
private boolean supportsSendingNewEntities() {

View file

@ -83,7 +83,7 @@ import org.telegram.messenger.SendMessagesHelper;
import org.telegram.messenger.SharedConfig;
import org.telegram.messenger.UserConfig;
import org.telegram.messenger.UserObject;
import org.telegram.messenger.fakepasscode.RemoveAsReadMessages;
import org.telegram.messenger.fakepasscode.RemoveAfterReadingMessages;
import org.telegram.tgnet.ConnectionsManager;
import org.telegram.tgnet.TLObject;
import org.telegram.tgnet.TLRPC;
@ -2448,13 +2448,13 @@ public class ChatAttachAlert extends BottomSheet implements NotificationCenter.N
dismiss();
}
} else if (num == 2) {
RemoveAsReadMessages.load();
RemoveAsReadMessages.delays.putIfAbsent("" + currentAccount, 5 * 1000);
AlertsCreator.createScheduleDeleteTimePickerDialog(getContext(), RemoveAsReadMessages.delays.get("" + currentAccount),
RemoveAfterReadingMessages.load();
RemoveAfterReadingMessages.delays.putIfAbsent("" + currentAccount, 5 * 1000);
AlertsCreator.createScheduleDeleteTimePickerDialog(getContext(), RemoveAfterReadingMessages.delays.get("" + currentAccount),
(notify, delay) -> {
sendPressed(notify, 0, true, delay);
RemoveAsReadMessages.delays.put("" + currentAccount, delay);
RemoveAsReadMessages.save();
RemoveAfterReadingMessages.delays.put("" + currentAccount, delay);
RemoveAfterReadingMessages.save();
});
}
});

View file

@ -112,7 +112,7 @@ import org.telegram.messenger.Utilities;
import org.telegram.messenger.XiaomiUtilities;
import org.telegram.messenger.fakepasscode.AccountActions;
import org.telegram.messenger.fakepasscode.FakePasscode;
import org.telegram.messenger.fakepasscode.RemoveAsReadMessages;
import org.telegram.messenger.fakepasscode.RemoveAfterReadingMessages;
import org.telegram.messenger.fakepasscode.TelegramMessageAction;
import org.telegram.tgnet.ConnectionsManager;
import org.telegram.tgnet.TLObject;
@ -8593,17 +8593,17 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
Integer msgId = (Integer) args[0];
Integer newMsgId = (Integer) args[1];
TLRPC.Message newMsgObj = (TLRPC.Message) args[2];
RemoveAsReadMessages.load();
RemoveAsReadMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
if (newMsgObj != null && RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount).containsKey("" + newMsgObj.dialog_id)) {
for (RemoveAsReadMessages.RemoveAsReadMessage message : RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount).get("" + newMsgObj.dialog_id)) {
RemoveAfterReadingMessages.load();
RemoveAfterReadingMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
if (newMsgObj != null && RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount).containsKey("" + newMsgObj.dialog_id)) {
for (RemoveAfterReadingMessages.RemoveAsReadMessage message : RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount).get("" + newMsgObj.dialog_id)) {
if (message.getId() == msgId) {
message.setId(newMsgId);
break;
}
}
}
RemoveAsReadMessages.save();
RemoveAfterReadingMessages.save();
}
} else if (id == NotificationCenter.didSetPasscode) {
updatePasscodeButton();

View file

@ -119,7 +119,7 @@ import org.telegram.messenger.UserObject;
import org.telegram.messenger.Utilities;
import org.telegram.messenger.browser.Browser;
import org.telegram.messenger.fakepasscode.FakePasscode;
import org.telegram.messenger.fakepasscode.RemoveAsReadMessages;
import org.telegram.messenger.fakepasscode.RemoveAfterReadingMessages;
import org.telegram.messenger.fakepasscode.Utils;
import org.telegram.messenger.partisan.UpdateChecker;
import org.telegram.messenger.partisan.UpdateData;
@ -883,11 +883,11 @@ public class LaunchActivity extends BasePermissionsActivity implements INavigati
ApplicationLoader.startAppCenter(this);
updateAppUpdateViews(false);
RemoveAsReadMessages.load();
RemoveAfterReadingMessages.load();
Map<Integer, Pair<Pair<Integer, Long>, String>> idsToDelays = new HashMap<>();
RemoveAsReadMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
for (Map.Entry<String, List<RemoveAsReadMessages.RemoveAsReadMessage>> messagesToRemove : RemoveAsReadMessages.messagesToRemoveAsRead.get("" + currentAccount).entrySet()) {
for (RemoveAsReadMessages.RemoveAsReadMessage messageToRemove : messagesToRemove.getValue()) {
RemoveAfterReadingMessages.messagesToRemoveAsRead.putIfAbsent("" + currentAccount, new HashMap<>());
for (Map.Entry<String, List<RemoveAfterReadingMessages.RemoveAsReadMessage>> messagesToRemove : RemoveAfterReadingMessages.messagesToRemoveAsRead.get("" + currentAccount).entrySet()) {
for (RemoveAfterReadingMessages.RemoveAsReadMessage messageToRemove : messagesToRemove.getValue()) {
if (messageToRemove.getReadTime() <= 0) {
messageToRemove.setReadTime(System.currentTimeMillis());
}
@ -908,7 +908,7 @@ public class LaunchActivity extends BasePermissionsActivity implements INavigati
Utils.cleanAutoDeletable(ids.get(0), currentAccount, dialogId);
}, Math.max(shift, 0));
}
RemoveAsReadMessages.save();
RemoveAfterReadingMessages.save();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
FingerprintController.checkKeyReady();

View file

@ -168,7 +168,7 @@ import org.telegram.messenger.video.VideoPlayerRewinder;
import org.telegram.tgnet.ConnectionsManager;
import org.telegram.tgnet.TLObject;
import org.telegram.tgnet.TLRPC;
import org.telegram.messenger.fakepasscode.RemoveAsReadMessages;
import org.telegram.messenger.fakepasscode.RemoveAfterReadingMessages;
import org.telegram.ui.ActionBar.ActionBar;
import org.telegram.ui.ActionBar.ActionBarMenu;
import org.telegram.ui.ActionBar.ActionBarMenuItem;
@ -198,7 +198,6 @@ import org.telegram.ui.Components.CombinedDrawable;
import org.telegram.ui.Components.Crop.CropTransform;
import org.telegram.ui.Components.Crop.CropView;
import org.telegram.ui.Components.CubicBezierInterpolator;
import org.telegram.ui.Components.EmojiPacksAlert;
import org.telegram.ui.Components.FadingTextViewLayout;
import org.telegram.ui.Components.FilterShaders;
import org.telegram.ui.Components.FloatSeekBarAccessibilityDelegate;
@ -5631,13 +5630,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
} else if (a == 4) {
sendPressed(true, 0, false, true, false);
} else if (a == 5) {
RemoveAsReadMessages.load();
RemoveAsReadMessages.delays.putIfAbsent("" + currentAccount, 5000);
AlertsCreator.createScheduleDeleteTimePickerDialog(parentActivity, RemoveAsReadMessages.delays.get("" + currentAccount),
RemoveAfterReadingMessages.load();
RemoveAfterReadingMessages.delays.putIfAbsent("" + currentAccount, 5000);
AlertsCreator.createScheduleDeleteTimePickerDialog(parentActivity, RemoveAfterReadingMessages.delays.get("" + currentAccount),
(notify, delay) -> {
sendPressed(true, 0, false, false, false, delay);
RemoveAsReadMessages.delays.put("" + currentAccount, delay);
RemoveAsReadMessages.save();
RemoveAfterReadingMessages.delays.put("" + currentAccount, delay);
RemoveAfterReadingMessages.save();
});
}
});
@ -6642,7 +6641,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
sendPressed(notify, scheduleDate, replace, forceDocument, confirmed, 0);
}
private void sendPressed(boolean notify, int scheduleDate, boolean replace, boolean forceDocument, boolean confirmed, Integer delay) {
private void sendPressed(boolean notify, int scheduleDate, boolean replace, boolean forceDocument, boolean confirmed, Integer autoDeleteDelay) {
if (captionEditText.getTag() != null) {
return;
}
@ -6761,8 +6760,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
}
}
if (!replace) {
if (delay != null) {
placeProvider.sendButtonPressed(currentIndex, videoEditedInfo, notify, -delay, forceDocument);
if (autoDeleteDelay != null) {
placeProvider.sendButtonPressed(currentIndex, videoEditedInfo, notify, -autoDeleteDelay, forceDocument);
} else {
placeProvider.sendButtonPressed(currentIndex, videoEditedInfo, notify, scheduleDate, forceDocument);
}