/* * This is the source code of Telegram for Android v. 5.x.x. * It is licensed under GNU GPL v. 2 or later. * You should have received a copy of the license in this archive (see LICENSE). * * Copyright Nikolai Kudashov, 2013-2018. */ package org.telegram.messenger; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import org.telegram.tgnet.TLRPC; public class AutoMessageHeardReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ApplicationLoader.postInitApplication(); long dialog_id = intent.getLongExtra("dialog_id", 0); int max_id = intent.getIntExtra("max_id", 0); int currentAccount = intent.getIntExtra("currentAccount", 0); if (dialog_id == 0 || max_id == 0 || !UserConfig.isValidAccount(currentAccount)) { return; } int lowerId = (int) dialog_id; int highId = (int) (dialog_id >> 32); AccountInstance accountInstance = AccountInstance.getInstance(currentAccount); if (lowerId > 0) { TLRPC.User user = accountInstance.getMessagesController().getUser(lowerId); if (user == null) { Utilities.globalQueue.postRunnable(() -> { TLRPC.User user1 = accountInstance.getMessagesStorage().getUserSync(lowerId); AndroidUtilities.runOnUIThread(() -> { accountInstance.getMessagesController().putUser(user1, true); MessagesController.getInstance(currentAccount).markDialogAsRead(dialog_id, max_id, max_id, 0, false, 0, 0, true, 0); }); }); return; } } else if (lowerId < 0) { TLRPC.Chat chat = accountInstance.getMessagesController().getChat(-lowerId); if (chat == null) { Utilities.globalQueue.postRunnable(() -> { TLRPC.Chat chat1 = accountInstance.getMessagesStorage().getChatSync(-lowerId); AndroidUtilities.runOnUIThread(() -> { accountInstance.getMessagesController().putChat(chat1, true); MessagesController.getInstance(currentAccount).markDialogAsRead(dialog_id, max_id, max_id, 0, false, 0, 0, true, 0); }); }); return; } } MessagesController.getInstance(currentAccount).markDialogAsRead(dialog_id, max_id, max_id, 0, false, 0, 0, true, 0); } }