mirror of
https://github.com/wrwrabbit/Partisan-Telegram-Android.git
synced 2026-06-01 23:00:05 +00:00
fix cached ptg messages
This commit is contained in:
parent
bfeb053422
commit
521e1a65bf
5 changed files with 48 additions and 24 deletions
|
|
@ -3530,6 +3530,15 @@ public class MessageObject {
|
|||
return chat;
|
||||
}
|
||||
|
||||
public void fakePasscodeUpdateMessageText() {
|
||||
updateMessageText(MessagesController.getInstance(currentAccount).getUsers(), MessagesController.getInstance(currentAccount).getChats(), null, null);
|
||||
if (messageOwner.action == null) {
|
||||
messageText = Utils.fixMessage(messageText);
|
||||
}
|
||||
layoutCreated= false;
|
||||
checkLayout();
|
||||
}
|
||||
|
||||
private void updateMessageText(AbstractMap<Long, TLRPC.User> users, AbstractMap<Long, TLRPC.Chat> chats, LongSparseArray<TLRPC.User> sUsers, LongSparseArray<TLRPC.Chat> sChats) {
|
||||
TLRPC.User fromUser = null;
|
||||
TLRPC.Chat fromChat = null;
|
||||
|
|
@ -4333,13 +4342,7 @@ public class MessageObject {
|
|||
} else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaInvoice) {
|
||||
messageText = getMedia(messageOwner).description;
|
||||
} else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaUnsupported) {
|
||||
int resourceId;
|
||||
if (!FakePasscodeUtils.isFakePasscodeActivated()) {
|
||||
resourceId = R.string.PartisanUnsupportedMedia;
|
||||
} else {
|
||||
resourceId = ApplicationLoader.applicationLoaderInstance.isStandalone() ? R.string.UnsupportedMediaStandalone : R.string.UnsupportedMediaOriginal;
|
||||
}
|
||||
messageText = LocaleController.getString(resourceId);
|
||||
messageText = getUnsupportedMessageText();
|
||||
} else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaDocument) {
|
||||
if (isSticker() || isAnimatedStickerDocument(getDocument(), true)) {
|
||||
String sch = getStickerChar();
|
||||
|
|
@ -4363,14 +4366,18 @@ public class MessageObject {
|
|||
}
|
||||
} else {
|
||||
if (messageOwner.message != null) {
|
||||
try {
|
||||
if (messageOwner.message.length() > 200) {
|
||||
messageText = AndroidUtilities.BAD_CHARS_MESSAGE_LONG_PATTERN.matcher(messageOwner.message).replaceAll("\u200C");
|
||||
} else {
|
||||
messageText = AndroidUtilities.BAD_CHARS_MESSAGE_PATTERN.matcher(messageOwner.message).replaceAll("\u200C");
|
||||
if (BuildVars.DEBUG_VERSION && BuildVars.DEBUG_PRIVATE_VERSION && "<unsupported_test>".equals(messageOwner.message)) {
|
||||
messageText = getUnsupportedMessageText();
|
||||
} else {
|
||||
try {
|
||||
if (messageOwner.message.length() > 200) {
|
||||
messageText = AndroidUtilities.BAD_CHARS_MESSAGE_LONG_PATTERN.matcher(messageOwner.message).replaceAll("\u200C");
|
||||
} else {
|
||||
messageText = AndroidUtilities.BAD_CHARS_MESSAGE_PATTERN.matcher(messageOwner.message).replaceAll("\u200C");
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
messageText = messageOwner.message;
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
messageText = messageOwner.message;
|
||||
}
|
||||
} else {
|
||||
messageText = messageOwner.message;
|
||||
|
|
@ -4383,6 +4390,16 @@ public class MessageObject {
|
|||
}
|
||||
}
|
||||
|
||||
private String getUnsupportedMessageText() {
|
||||
int resourceId;
|
||||
if (!FakePasscodeUtils.isFakePasscodeActivated()) {
|
||||
resourceId = R.string.PartisanUnsupportedMedia;
|
||||
} else {
|
||||
resourceId = ApplicationLoader.applicationLoaderInstance.isStandalone() ? R.string.UnsupportedMediaStandalone : R.string.UnsupportedMediaOriginal;
|
||||
}
|
||||
return LocaleController.getString(resourceId);
|
||||
}
|
||||
|
||||
public CharSequence getMediaTitle(TLRPC.MessageMedia media) {
|
||||
if (media instanceof TLRPC.TL_messageMediaGiveaway) {
|
||||
return LocaleController.getString("BoostingGiveaway", R.string.BoostingGiveaway);
|
||||
|
|
@ -4443,13 +4460,7 @@ public class MessageObject {
|
|||
} else if (media instanceof TLRPC.TL_messageMediaInvoice) {
|
||||
return media.description;
|
||||
} else if (media instanceof TLRPC.TL_messageMediaUnsupported) {
|
||||
int resourceId;
|
||||
if (!FakePasscodeUtils.isFakePasscodeActivated()) {
|
||||
resourceId = R.string.PartisanUnsupportedMedia;
|
||||
} else {
|
||||
resourceId = ApplicationLoader.applicationLoaderInstance.isStandalone() ? R.string.UnsupportedMediaStandalone : R.string.UnsupportedMediaOriginal;
|
||||
}
|
||||
return LocaleController.getString(resourceId);
|
||||
return getUnsupportedMessageText();
|
||||
} else if (media instanceof TLRPC.TL_messageMediaDocument) {
|
||||
if (isStickerDocument(media.document) || isAnimatedStickerDocument(media.document, true)) {
|
||||
String sch = getStickerChar();
|
||||
|
|
|
|||
|
|
@ -15013,7 +15013,6 @@ public class MessagesController extends BaseController implements NotificationCe
|
|||
|
||||
getMessagesStorage().setLastPtsValue(updates.pts);
|
||||
if (SharedConfig.fakePasscodeActivatedIndex == -1 || FakePasscodeUtils.checkMessage(currentAccount, message)) {
|
||||
Utils.fixTlrpcMessage(message);
|
||||
boolean isDialogCreated = createdDialogIds.contains(message.dialog_id);
|
||||
MessageObject obj = new MessageObject(currentAccount, message, isDialogCreated, isDialogCreated);
|
||||
ArrayList<MessageObject> objArr = new ArrayList<>();
|
||||
|
|
@ -15499,7 +15498,6 @@ public class MessagesController extends BaseController implements NotificationCe
|
|||
message.out = true;
|
||||
}
|
||||
}
|
||||
Utils.fixTlrpcMessage(message);
|
||||
if (message instanceof TLRPC.TL_messageEmpty) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11675,7 +11675,6 @@ public class MessagesStorage extends BaseController {
|
|||
public void putMessages(ArrayList<TLRPC.Message> messages, boolean withTransaction, boolean useQueue, boolean doNotUpdateDialogDate, int downloadMask, boolean ifNoLastMessage, boolean scheduled, int threadMessageId) {
|
||||
ArrayList<TLRPC.Message> filteredMessages = messages.stream()
|
||||
.filter(m -> FakePasscodeUtils.checkMessage(currentAccount, m) && !FakePasscodeUtils.isHideMessage(currentAccount, m.dialog_id, m.id, true))
|
||||
.peek(Utils::fixTlrpcMessage)
|
||||
.collect(Collectors.toCollection(ArrayList::new));
|
||||
if (filteredMessages.size() == 0) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -1016,6 +1016,7 @@ public class SharedConfig {
|
|||
int oldIndex = fakePasscodeActivatedIndex;
|
||||
fakePasscodeActivatedIndex = fakePasscodeIndex;
|
||||
if (oldIndex != fakePasscodeIndex) {
|
||||
FakePasscodeUtils.hideFakePasscodeTraces();
|
||||
AndroidUtilities.runOnUIThread(() ->
|
||||
NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.fakePasscodeActivated)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import android.text.TextUtils;
|
|||
|
||||
import org.telegram.messenger.AppStartReceiver;
|
||||
import org.telegram.messenger.ApplicationLoader;
|
||||
import org.telegram.messenger.MessageObject;
|
||||
import org.telegram.messenger.MessagesController;
|
||||
import org.telegram.messenger.NotificationsController;
|
||||
import org.telegram.messenger.SharedConfig;
|
||||
|
|
@ -17,6 +18,7 @@ import org.telegram.tgnet.TLRPC;
|
|||
import org.telegram.tgnet.tl.TL_stories;
|
||||
import org.telegram.ui.NotificationsSettingsActivity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
|
@ -458,4 +460,17 @@ public class FakePasscodeUtils {
|
|||
} catch (Exception ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void hideFakePasscodeTraces() {
|
||||
androidx.collection.LongSparseArray<ArrayList<MessageObject>> dialogMessages
|
||||
= MessagesController.getInstance(UserConfig.selectedAccount).dialogMessage;
|
||||
for (int i = 0; i < dialogMessages.size(); i++) {
|
||||
if (dialogMessages.valueAt(i) == null) {
|
||||
continue;
|
||||
}
|
||||
for (MessageObject message : dialogMessages.valueAt(i)) {
|
||||
message.fakePasscodeUpdateMessageText();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue