From 00f7b2c89255fd4509a66bfd3c7c0bb784d65cf8 Mon Sep 17 00:00:00 2001 From: luvletter2333 Date: Thu, 24 Mar 2022 14:28:47 +0800 Subject: [PATCH] fix delete all --- .../messenger/MessagesController.java | 36 +++++++------------ .../java/org/telegram/ui/ChatActivity.java | 2 +- .../telegram/ui/Components/AlertsCreator.java | 5 +-- .../settings/NekoAccountSettingsActivity.java | 2 +- 4 files changed, 15 insertions(+), 30 deletions(-) diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java index a4cf8eb1d..4b44f0d9a 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java @@ -4968,38 +4968,26 @@ public class MessagesController extends BaseController implements NotificationCe }); } - public void deleteUserChannelHistory(TLRPC.Chat chat, TLRPC.User user, int offset) { + public void deleteUserChannelHistory(TLRPC.Chat currentChat, TLRPC.User fromUser, TLRPC.Chat fromChat, int offset) { + long fromId = 0; + if (fromUser != null) { + fromId = fromUser.id; + } else if (fromChat != null){ + fromId = fromChat.id; + } if (offset == 0) { - getMessagesStorage().deleteUserChatHistory(-chat.id, user.id); + getMessagesStorage().deleteUserChatHistory(-currentChat.id, fromId); } TLRPC.TL_channels_deleteParticipantHistory req = new TLRPC.TL_channels_deleteParticipantHistory(); - req.channel = getInputChannel(chat); - req.participant = getInputPeer(user); + req.channel = getInputChannel(currentChat); + req.participant = fromUser != null ? getInputPeer(fromUser) : getInputPeer(fromChat); getConnectionsManager().sendRequest(req, (response, error) -> { if (error == null) { TLRPC.TL_messages_affectedHistory res = (TLRPC.TL_messages_affectedHistory) response; if (res.offset > 0) { - deleteUserChannelHistory(chat, user, res.offset); + deleteUserChannelHistory(currentChat, fromUser, fromChat, res.offset); } - processNewChannelDifferenceParams(res.pts, res.pts_count, chat.id); - } - }); - } - - public void deleteChannelUserChatHistory(TLRPC.Chat chat, TLRPC.Chat fromChat, int offset) { - if (offset == 0) { - getMessagesStorage().deleteUserChatHistory(-chat.id, fromChat.id); - } - TLRPC.TL_channels_deleteParticipantHistory req = new TLRPC.TL_channels_deleteParticipantHistory(); - req.channel = getInputChannel(chat); - req.participant = getInputPeer(fromChat); - getConnectionsManager().sendRequest(req, (response, error) -> { - if (error == null) { - TLRPC.TL_messages_affectedHistory res = (TLRPC.TL_messages_affectedHistory) response; - if (res.offset > 0) { - deleteChannelUserChatHistory(chat, fromChat, res.offset); - } - processNewChannelDifferenceParams(res.pts, res.pts_count, chat.id); + processNewChannelDifferenceParams(res.pts, res.pts_count, currentChat.id); } }); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index ea565fcba..6f21923cf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -29052,7 +29052,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DeleteAllFromSelfAlert", R.string.DeleteAllFromSelfAlert))); builder.setPositiveButton(LocaleController.getString("DeleteAll", R.string.DeleteAll), (dialogInterface, i) -> { if (ChatObject.isChannel(currentChat) && currentChat.megagroup && ChatObject.canUserDoAction(currentChat, ChatObject.ACTION_DELETE_MESSAGES)) { - getMessagesController().deleteUserChannelHistory(currentChat, UserConfig.getInstance(currentAccount).getCurrentUser(), 0); + getMessagesController().deleteUserChannelHistory(currentChat, UserConfig.getInstance(currentAccount).getCurrentUser(), null, 0); } else { getMessageHelper().deleteUserChannelHistoryWithSearch(getParentActivity(), dialog_id, UserConfig.getInstance(currentAccount).getCurrentUser()); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java index 2c637f58d..0d321868f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java @@ -4588,10 +4588,7 @@ public class AlertsCreator { }); } if (checks[2]) { - if (userFinal != null) - MessagesController.getInstance(currentAccount).deleteUserChannelHistory(chat, userFinal, 0); - else - MessagesController.getInstance(currentAccount).deleteChannelUserChatHistory(chat, chatFinal, 0); + MessagesController.getInstance(currentAccount).deleteUserChannelHistory(chat, userFinal, chatFinal, 0); } } if (onDelete != null) { diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoAccountSettingsActivity.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoAccountSettingsActivity.java index 54c9287fe..1f5ef431c 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoAccountSettingsActivity.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoAccountSettingsActivity.java @@ -142,7 +142,7 @@ public class NekoAccountSettingsActivity extends BaseFragment { TLRPC.Chat chat = getMessagesController().getChat(peer.channel_id); if (!chat.broadcast) { if (ChatObject.isChannel(chat) && chat.megagroup && ChatObject.canUserDoAction(chat, ChatObject.ACTION_DELETE_MESSAGES)) { - getMessagesController().deleteUserChannelHistory(chat, UserConfig.getInstance(currentAccount).getCurrentUser(), 0); + getMessagesController().deleteUserChannelHistory(chat, UserConfig.getInstance(currentAccount).getCurrentUser(), null, 0); } else { MessageHelper.getInstance(currentAccount).deleteUserChannelHistoryWithSearch(null, TLdialog.id, getMessagesController().getUser(getUserConfig().clientUserId)); }