diff --git a/MessengerProj/src/main/java/com/b44t/messenger/MessageObject.java b/MessengerProj/src/main/java/com/b44t/messenger/MessageObject.java index c3da96244..6b5f63849 100644 --- a/MessengerProj/src/main/java/com/b44t/messenger/MessageObject.java +++ b/MessengerProj/src/main/java/com/b44t/messenger/MessageObject.java @@ -50,7 +50,6 @@ public class MessageObject { public int type = 1000; public int contentType; // one of ChatActivity.ROWTYPE_MESSAGE_CELL, .ROWTYPE_ACTION_CELL or .ROWTYPE_UNREAD_CELL public String dateKey; - public String monthKey; public boolean deleted; public float audioProgress; public int audioProgressSec; @@ -254,7 +253,6 @@ public class MessageObject { int dateYear = rightNow.get(Calendar.YEAR); int dateMonth = rightNow.get(Calendar.MONTH); dateKey = String.format("%d_%02d_%02d", dateYear, dateMonth, dateDay); - monthKey = String.format("%d_%02d", dateYear, dateMonth); if (messageOwner.message != null && messageOwner.id < 0 && messageOwner.message.length() > 6 && isVideo()) { videoEditedInfo = new VideoEditedInfo(); diff --git a/MessengerProj/src/main/java/com/b44t/messenger/MessagesController.java b/MessengerProj/src/main/java/com/b44t/messenger/MessagesController.java index c699f5baf..39759b9e6 100644 --- a/MessengerProj/src/main/java/com/b44t/messenger/MessagesController.java +++ b/MessengerProj/src/main/java/com/b44t/messenger/MessagesController.java @@ -230,65 +230,9 @@ public class MessagesController implements NotificationCenter.NotificationCenter public void sendTyping(final long dialog_id, final int action, int classGuid) { } - public void reloadWebPages(final long dialog_id, HashMap> webpagesToReload) { - for (HashMap.Entry> entry : webpagesToReload.entrySet()) { - final String url = entry.getKey(); - final ArrayList messages = entry.getValue(); - ArrayList arrayList = reloadingWebpages.get(url); - if (arrayList == null) { - arrayList = new ArrayList<>(); - reloadingWebpages.put(url, arrayList); - } - arrayList.addAll(messages); - /*TLRPC.TL_messages_getWebPagePreview req = new TLRPC.TL_messages_getWebPagePreview(); - req.message = url; - ConnectionsManager.getInstance().sendRequest(req, new RequestDelegate() { - @Override - public void run(final TLObject response, final TLRPC.TL_error error) { - AndroidUtilities.runOnUIThread(new Runnable() { - @Override - public void run() { - ArrayList arrayList = reloadingWebpages.remove(url); - if (arrayList == null) { - return; - } - TLRPC.TL_messages_messages messagesRes = new TLRPC.TL_messages_messages(); - if (!(response instanceof TLRPC.TL_messageMediaWebPage)) { - for (int a = 0; a < arrayList.size(); a++) { - arrayList.get(a).messageOwner.media.webpage = new TLRPC.TL_webPageEmpty(); - messagesRes.messages.add(arrayList.get(a).messageOwner); - } - } else { - TLRPC.TL_messageMediaWebPage media = (TLRPC.TL_messageMediaWebPage) response; - if (media.webpage instanceof TLRPC.TL_webPage || media.webpage instanceof TLRPC.TL_webPageEmpty) { - for (int a = 0; a < arrayList.size(); a++) { - arrayList.get(a).messageOwner.media.webpage = media.webpage; - if (a == 0) { - ImageLoader.saveMessageThumbs(arrayList.get(a).messageOwner); - } - messagesRes.messages.add(arrayList.get(a).messageOwner); - } - } else { - reloadingWebpagesPending.put(media.webpage.id, arrayList); - } - } - if (!messagesRes.messages.isEmpty()) { - //MessagesStorage.getInstance().putMessages(messagesRes, dialog_id, -2, 0, false); - NotificationCenter.getInstance().postNotificationName(NotificationCenter.replaceMessagesObjects, dialog_id, arrayList); - } - } - }); - } - });*/ - } - } - public void markMessageContentAsRead(final MessageObject messageObject) { } - public void markMessageAsRead(final long dialog_id, final long random_id, int ttl) { - } - public void markDialogAsRead(final long dialog_id, final int max_id, final int max_positive_id, final int max_date, final boolean was, final boolean popup) { } diff --git a/MessengerProj/src/main/java/com/b44t/ui/ChatActivity.java b/MessengerProj/src/main/java/com/b44t/ui/ChatActivity.java index 6eaf736d2..8948d46a5 100644 --- a/MessengerProj/src/main/java/com/b44t/ui/ChatActivity.java +++ b/MessengerProj/src/main/java/com/b44t/ui/ChatActivity.java @@ -216,7 +216,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private int newUnreadMessageCount; private HashMap messagesDict = new HashMap<>(); - private HashMap> messagesByDays = new HashMap<>(); + private HashMap> messagesByDays = new HashMap<>(); // used to add/remove date headlines protected ArrayList messages = new ArrayList<>(); private int maxMessageId = Integer.MAX_VALUE; private int minMessageId = Integer.MIN_VALUE; @@ -3498,7 +3498,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not boolean unreadUpdated = true; int oldCount = messages.size(); int addedCount = 0; - HashMap> webpagesToReload = null; int placeToPaste = -1; for (int a = 0; a < arr.size(); a++) { MessageObject obj = arr.get(a); @@ -3554,6 +3553,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } maxDate = Math.max(maxDate, obj.messageOwner.date); messagesDict.put(obj.getId(), obj); + + // create date headline ArrayList dayArray = messagesByDays.get(obj.dateKey); if (dayArray == null) { dayArray = new ArrayList<>(); @@ -3568,6 +3569,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not messages.add(placeToPaste, dateObj); addedCount++; } + if (!obj.isOut()) { if (paused && placeToPaste == 0) { if (!scrollToTopUnReadOnResume && unreadMessageObject != null) { @@ -3611,9 +3613,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not updateChat = true; } } - if (webpagesToReload != null) { - MessagesController.getInstance().reloadWebPages(dialog_id, webpagesToReload); - } if (progressView != null) { progressView.setVisibility(View.INVISIBLE); @@ -3637,9 +3636,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (endReached) { lastVisible++; } - /*if (chatAdapter.isBot) { - oldCount++; - }*/ if (lastVisible >= oldCount || hasFromMe) { newUnreadMessageCount = 0; if (!firstLoading) { @@ -3722,6 +3718,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (index != -1) { messages.remove(index); messagesDict.remove(ids); + + // remove date headline if this was the last message with that date ArrayList dayArr = messagesByDays.get(obj.dateKey); if (dayArr != null) { dayArr.remove(obj); @@ -3732,6 +3730,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } } + updated = true; } }