diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index da98676cc..eec3f7531 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -285,7 +285,7 @@ android { } } - defaultConfig.versionCode = 1910 + defaultConfig.versionCode = 1911 def tgVoipDexFileName = "libtgvoip.dex" def tgVoipDexClasses = ["AudioRecordJNI", "AudioTrackJNI", "NativeTgVoipDelegate", "NativeTgVoipInstance", "TgVoipNativeLoader", "Resampler", "VLog"] diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java index 736a96cb1..6905a9d02 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java @@ -19,7 +19,7 @@ public class BuildVars { public static boolean USE_CLOUD_STRINGS = true; public static boolean CHECK_UPDATES = true; public static boolean TON_WALLET_STANDALONE = false; - public static int BUILD_VERSION = 1910; + public static int BUILD_VERSION = 1911; public static String BUILD_VERSION_STRING = "6.0.0"; public static int APP_ID = 4; public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103"; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java index 6fdf7ad24..3be552c8e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java @@ -1696,6 +1696,8 @@ public class MessagesStorage extends BaseController { private int[][] bots = new int[][]{new int[2], new int[2]}; private int[][] channels = new int[][]{new int[2], new int[2]}; private int[][] groups = new int[][]{new int[2], new int[2]}; + private int[] mentionChannels = new int[2]; + private int[] mentionGroups = new int[2]; private LongSparseArray dialogsWithMentions = new LongSparseArray<>(); private LongSparseArray dialogsWithUnread = new LongSparseArray<>(); private void calcUnreadCounters(boolean apply) { @@ -1755,12 +1757,17 @@ public class MessagesStorage extends BaseController { SparseArray chatsDict = new SparseArray<>(); SparseArray encUsersDict = new SparseArray<>(); SparseArray encryptedChatsByUsersCount = new SparseArray<>(); + SparseArray mutedDialogs = new SparseArray<>(); if (!usersToLoad.isEmpty()) { getUsersInternal(TextUtils.join(",", usersToLoad), users); for (int a = 0, N = users.size(); a < N; a++) { TLRPC.User user = users.get(a); + boolean muted = getMessagesController().isDialogMuted(user.id); int idx1 = dialogsByFolders.get(user.id); - int idx2 = getMessagesController().isDialogMuted(user.id) && dialogsWithMentions.indexOfKey(user.id) < 0 ? 1 : 0; + int idx2 = muted ? 1 : 0; + if (muted) { + mutedDialogs.put(user.id, true); + } if (user.bot) { bots[idx1][idx2]++; } else if (user.self || user.contact) { @@ -1788,8 +1795,12 @@ public class MessagesStorage extends BaseController { continue; } long did = ((long) encryptedChat.id) << 32; + boolean muted = getMessagesController().isDialogMuted(did); int idx1 = dialogsByFolders.get(did); - int idx2 = getMessagesController().isDialogMuted(did) && dialogsWithMentions.indexOfKey(did) < 0 ? 1 : 0; + int idx2 = muted ? 1 : 0; + if (muted) { + mutedDialogs.put(user.id, true); + } if (user.self || user.contact) { contacts[idx1][idx2]++; } else { @@ -1809,8 +1820,12 @@ public class MessagesStorage extends BaseController { dialogsWithMentions.remove(-chat.id); continue; } + boolean muted = getMessagesController().isDialogMuted(-chat.id, chat); int idx1 = dialogsByFolders.get(-chat.id); - int idx2 = getMessagesController().isDialogMuted(-chat.id, chat) && dialogsWithMentions.indexOfKey(-chat.id) < 0 ? 1 : 0; + int idx2 = muted && dialogsWithMentions.indexOfKey(-chat.id) < 0 ? 1 : 0; + if (muted) { + mutedDialogs.put(-chat.id, true); + } if (ChatObject.isChannel(chat) && !chat.megagroup) { channels[idx1][idx2]++; } else { @@ -1926,47 +1941,59 @@ public class MessagesStorage extends BaseController { if (did > 0) { TLRPC.User user = usersDict.get(did); if (user != null) { - if (user.bot) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { - unreadCount++; - } - } else if (user.self || user.contact) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { - unreadCount++; - } + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && mutedDialogs.indexOfKey(user.id) >= 0) { + unreadCount++; } else { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { - unreadCount++; + if (user.bot) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { + unreadCount++; + } + } else if (user.self || user.contact) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { + unreadCount++; + } + } else { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { + unreadCount++; + } } } } user = encUsersDict.get(did); if (user != null) { int count = encryptedChatsByUsersCount.get(did, 0); - if (user.bot) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { - unreadCount += count; - } - } else if (user.self || user.contact) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { - unreadCount += count; - } + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && mutedDialogs.indexOfKey(user.id) >= 0) { + unreadCount += count; } else { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { - unreadCount += count; + if (user.bot) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { + unreadCount += count; + } + } else if (user.self || user.contact) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { + unreadCount += count; + } + } else { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { + unreadCount += count; + } } } } } else { TLRPC.Chat chat = chatsDict.get(-did); if (chat != null) { - if (ChatObject.isChannel(chat) && !chat.megagroup) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_CHANNELS) == 0) { - unreadCount++; - } + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && mutedDialogs.indexOfKey(-chat.id) >= 0 && dialogsWithMentions.indexOfKey(-chat.id) < 0) { + unreadCount++; } else { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_GROUPS) == 0) { - unreadCount++; + if (ChatObject.isChannel(chat) && !chat.megagroup) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_CHANNELS) == 0) { + unreadCount++; + } + } else { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_GROUPS) == 0) { + unreadCount++; + } } } } @@ -3601,6 +3628,7 @@ public class MessagesStorage extends BaseController { for (int b = 0; b < 2; b++) { contacts[a][b] = nonContacts[a][b] = bots[a][b] = channels[a][b] = groups[a][b] = 0; } + mentionChannels[a] = mentionGroups[a] = 0; } final ArrayList users = new ArrayList<>(); @@ -3610,6 +3638,7 @@ public class MessagesStorage extends BaseController { ArrayList chatsToLoad = new ArrayList<>(); ArrayList encryptedToLoad = new ArrayList<>(); LongSparseArray dialogsByFolders = new LongSparseArray<>(); + LongSparseArray newUnreadDialogs = new LongSparseArray<>(); for (int b = 0; b < 2; b++) { LongSparseArray array = b == 0 ? dialogsToUpdate : dialogsToUpdateMentions; @@ -3635,6 +3664,9 @@ public class MessagesStorage extends BaseController { }*/ } } else { + if (dialogsWithMentions.indexOfKey(did) < 0 && dialogsWithUnread.indexOfKey(did) < 0) { + newUnreadDialogs.put(did, count); + } if (b == 0) { dialogsWithUnread.put(did, count); /*if (BuildVars.DEBUG_VERSION) { @@ -3647,20 +3679,16 @@ public class MessagesStorage extends BaseController { }*/ } } - if (b == 0 && dialogsWithMentions.indexOfKey(did) >= 0 || b == 1 && dialogsWithUnread.indexOfKey(did) >= 0) { - /*if (BuildVars.DEBUG_VERSION) { - FileLog.d("read = " + read + " ignore " + b); - }*/ - continue; - } - SQLiteCursor cursor = database.queryFinalized("SELECT folder_id FROM dialogs WHERE did = " + did); - int folderId = 0; - if (cursor.next()) { - folderId = cursor.intValue(0); - } - cursor.dispose(); - dialogsByFolders.put(did, folderId); + if (dialogsByFolders.indexOfKey(did) < 0) { + SQLiteCursor cursor = database.queryFinalized("SELECT folder_id FROM dialogs WHERE did = " + did); + int folderId = 0; + if (cursor.next()) { + folderId = cursor.intValue(0); + } + cursor.dispose(); + dialogsByFolders.put(did, folderId); + } int lowerId = (int) did; int highId = (int) (did >> 32); @@ -3685,12 +3713,17 @@ public class MessagesStorage extends BaseController { SparseArray chatsDict = new SparseArray<>(); SparseArray encUsersDict = new SparseArray<>(); SparseArray encryptedChatsByUsersCount = new SparseArray<>(); + SparseArray mutedDialogs = new SparseArray<>(); if (!usersToLoad.isEmpty()) { getUsersInternal(TextUtils.join(",", usersToLoad), users); for (int a = 0, N = users.size(); a < N; a++) { TLRPC.User user = users.get(a); + boolean muted = getMessagesController().isDialogMuted(user.id); int idx1 = dialogsByFolders.get(user.id); - int idx2 = getMessagesController().isDialogMuted(user.id) && (dialogsToUpdateMentions == null || dialogsToUpdateMentions.indexOfKey(user.id) < 0) ? 1 : 0; + int idx2 = muted ? 1 : 0; + if (muted) { + mutedDialogs.put(user.id, true); + } if (user.bot) { bots[idx1][idx2]++; } else if (user.self || user.contact) { @@ -3718,8 +3751,12 @@ public class MessagesStorage extends BaseController { continue; } long did = ((long) encryptedChat.id) << 32; + boolean muted = getMessagesController().isDialogMuted(did); int idx1 = dialogsByFolders.get(did); - int idx2 = getMessagesController().isDialogMuted(did) && (dialogsToUpdateMentions == null || dialogsToUpdateMentions.indexOfKey(did) < 0) ? 1 : 0; + int idx2 = muted ? 1 : 0; + if (muted) { + mutedDialogs.put(user.id, true); + } if (user.self || user.contact) { contacts[idx1][idx2]++; } else { @@ -3737,12 +3774,27 @@ public class MessagesStorage extends BaseController { if (chat.migrated_to instanceof TLRPC.TL_inputChannel || ChatObject.isNotInChat(chat)) { continue; } + boolean muted = getMessagesController().isDialogMuted(-chat.id, chat); + boolean hasUnread = dialogsWithUnread.indexOfKey(-chat.id) >= 0; + boolean hasMention = dialogsWithMentions.indexOfKey(-chat.id) >= 0; int idx1 = dialogsByFolders.get(-chat.id); - int idx2 = getMessagesController().isDialogMuted(-chat.id, chat) && (dialogsToUpdateMentions == null || dialogsToUpdateMentions.indexOfKey(-chat.id) < 0) ? 1 : 0; - if (ChatObject.isChannel(chat) && !chat.megagroup) { - channels[idx1][idx2]++; - } else { - groups[idx1][idx2]++; + int idx2 = muted ? 1 : 0; + if (muted) { + mutedDialogs.put(-chat.id, true); + } + if (muted && dialogsToUpdateMentions != null && dialogsToUpdateMentions.indexOfKey(-chat.id) >= 0) { + if (ChatObject.isChannel(chat) && !chat.megagroup) { + mentionChannels[idx1]++; + } else { + mentionGroups[idx1]++; + } + } + if (read && !hasUnread && !hasMention || !read && newUnreadDialogs.indexOfKey(-chat.id) >= 0) { + if (ChatObject.isChannel(chat) && !chat.megagroup) { + channels[idx1][idx2]++; + } else { + groups[idx1][idx2]++; + } } chatsDict.put(chat.id, chat); } @@ -3816,12 +3868,16 @@ public class MessagesStorage extends BaseController { unreadCount -= groups[0][0]; if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) == 0) { unreadCount -= groups[0][1]; + } else { + unreadCount -= mentionGroups[0]; } } if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_ARCHIVED) == 0) { unreadCount -= groups[1][0]; if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) == 0) { unreadCount -= groups[1][1]; + } else { + unreadCount -= mentionGroups[1]; } } } @@ -3830,12 +3886,16 @@ public class MessagesStorage extends BaseController { unreadCount -= channels[0][0]; if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) == 0) { unreadCount -= channels[0][1]; + } else { + unreadCount -= mentionChannels[0]; } } if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_ARCHIVED) == 0) { unreadCount -= channels[1][0]; if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) == 0) { unreadCount -= channels[1][1]; + } else { + unreadCount -= mentionChannels[1]; } } } @@ -3859,47 +3919,59 @@ public class MessagesStorage extends BaseController { if (did > 0) { TLRPC.User user = usersDict.get(did); if (user != null) { - if (user.bot) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { - unreadCount--; - } - } else if (user.self || user.contact) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { - unreadCount--; - } + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && mutedDialogs.indexOfKey(user.id) >= 0) { + unreadCount--; } else { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { - unreadCount--; + if (user.bot) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { + unreadCount--; + } + } else if (user.self || user.contact) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { + unreadCount--; + } + } else { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { + unreadCount--; + } } } } user = encUsersDict.get(did); if (user != null) { int count = encryptedChatsByUsersCount.get(did, 0); - if (user.bot) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { - unreadCount -= count; - } - } else if (user.self || user.contact) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { - unreadCount -= count; - } + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && mutedDialogs.indexOfKey(user.id) >= 0) { + unreadCount -= count; } else { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { - unreadCount -= count; + if (user.bot) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { + unreadCount -= count; + } + } else if (user.self || user.contact) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { + unreadCount -= count; + } + } else { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { + unreadCount -= count; + } } } } } else { TLRPC.Chat chat = chatsDict.get(-did); if (chat != null) { - if (ChatObject.isChannel(chat) && !chat.megagroup) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_CHANNELS) == 0) { - unreadCount--; - } + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && mutedDialogs.indexOfKey(-chat.id) >= 0 && dialogsWithMentions.indexOfKey(-chat.id) < 0 && dialogsWithUnread.indexOfKey(-chat.id) < 0) { + unreadCount--; } else { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_GROUPS) == 0) { - unreadCount--; + if (ChatObject.isChannel(chat) && !chat.megagroup) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_CHANNELS) == 0) { + unreadCount--; + } + } else { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_GROUPS) == 0) { + unreadCount--; + } } } } @@ -3907,6 +3979,9 @@ public class MessagesStorage extends BaseController { } for (int b = 0, N2 = filter.neverShow.size(); b < N2; b++) { int did = filter.neverShow.get(b); + if (dialogsToUpdateMentions != null && dialogsToUpdateMentions.indexOfKey(did) >= 0 && mutedDialogs.indexOfKey(did) < 0) { + continue; + } if (did > 0) { TLRPC.User user = usersDict.get(did); if (user != null) { @@ -3961,12 +4036,16 @@ public class MessagesStorage extends BaseController { unreadCount += groups[0][0]; if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) == 0) { unreadCount += groups[0][1]; + } else { + unreadCount += mentionGroups[0]; } } if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_ARCHIVED) == 0) { unreadCount += groups[1][0]; if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) == 0) { unreadCount += groups[1][1]; + } else { + unreadCount += mentionGroups[1]; } } } @@ -3975,12 +4054,16 @@ public class MessagesStorage extends BaseController { unreadCount += channels[0][0]; if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) == 0) { unreadCount += channels[0][1]; + } else { + unreadCount += mentionChannels[0]; } } if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_ARCHIVED) == 0) { unreadCount += channels[1][0]; if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) == 0) { unreadCount += channels[1][1]; + } else { + unreadCount += mentionChannels[1]; } } } @@ -3999,52 +4082,87 @@ public class MessagesStorage extends BaseController { } } if (filter != null) { - for (int b = 0, N2 = filter.alwaysShow.size(); b < N2; b++) { - int did = filter.alwaysShow.get(b); - if (did > 0) { - TLRPC.User user = usersDict.get(did); - if (user != null) { - if (user.bot) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { - unreadCount++; - } - } else if (user.self || user.contact) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { - unreadCount++; - } - } else { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { - unreadCount++; - } - } - } - user = encUsersDict.get(did); - if (user != null) { - int count = encryptedChatsByUsersCount.get(did, 0); - if (user.bot) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { - unreadCount += count; - } - } else if (user.self || user.contact) { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { - unreadCount += count; - } - } else { - if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { - unreadCount += count; - } - } - } - } else { - TLRPC.Chat chat = chatsDict.get(-did); - if (chat != null) { + if (!filter.alwaysShow.isEmpty()) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0) { + for (int b = 0, N2 = dialogsToUpdateMentions.size(); b < N2; b++) { + int did = (int) dialogsToUpdateMentions.keyAt(b); + TLRPC.Chat chat = chatsDict.get(-did); if (ChatObject.isChannel(chat) && !chat.megagroup) { if ((flags & MessagesController.DIALOG_FILTER_FLAG_CHANNELS) == 0) { - unreadCount++; + continue; } } else { if ((flags & MessagesController.DIALOG_FILTER_FLAG_GROUPS) == 0) { + continue; + } + } + if (mutedDialogs.indexOfKey(did) >= 0 && filter.alwaysShow.indexOf(did) >= 0) { + unreadCount--; + } + } + } + for (int b = 0, N2 = filter.alwaysShow.size(); b < N2; b++) { + int did = filter.alwaysShow.get(b); + if (newUnreadDialogs.indexOfKey(did) < 0) { + continue; + } + if (did > 0) { + TLRPC.User user = usersDict.get(did); + if (user != null) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && mutedDialogs.indexOfKey(user.id) >= 0) { unreadCount++; + } else { + if (user.bot) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { + unreadCount++; + } + } else if (user.self || user.contact) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { + unreadCount++; + } + } else { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { + unreadCount++; + } + } + } + } + user = encUsersDict.get(did); + if (user != null) { + int count = encryptedChatsByUsersCount.get(did, 0); + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && mutedDialogs.indexOfKey(user.id) >= 0) { + unreadCount += count; + } else { + if (user.bot) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) == 0) { + unreadCount += count; + } + } else if (user.self || user.contact) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) == 0) { + unreadCount += count; + } + } else { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) == 0) { + unreadCount += count; + } + } + } + } + } else { + TLRPC.Chat chat = chatsDict.get(-did); + if (chat != null) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0 && mutedDialogs.indexOfKey(-chat.id) >= 0) { + unreadCount++; + } else { + if (ChatObject.isChannel(chat) && !chat.megagroup) { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_CHANNELS) == 0) { + unreadCount++; + } + } else { + if ((flags & MessagesController.DIALOG_FILTER_FLAG_GROUPS) == 0) { + unreadCount++; + } + } } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java index 088a0abf0..0278dc35e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java @@ -434,8 +434,8 @@ public class UndoView extends FrameLayout { layoutParams.leftMargin = AndroidUtilities.dp(58); layoutParams.rightMargin = margin; - layoutParams.topMargin = 0; - layoutParams.bottomMargin = AndroidUtilities.dp(1); + layoutParams.topMargin = AndroidUtilities.dp(6); + layoutParams.bottomMargin = AndroidUtilities.dp(7); layoutParams.height = TableLayout.LayoutParams.MATCH_PARENT; subinfoTextView.setVisibility(GONE);