From 4139e6cf10a99ccb90e1eeb00985cb6889bf2f20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Mon, 11 May 2020 00:36:56 +0800 Subject: [PATCH] async post init accounts --- .../telegram/messenger/ApplicationLoader.java | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java index e1f2b1236..b57422adb 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java @@ -266,18 +266,23 @@ public class ApplicationLoader extends Application { SharedConfig.loadConfig(); for (int a = 0; a < UserConfig.MAX_ACCOUNT_COUNT; a++) { - UserConfig.getInstance(a).loadConfig(); - MessagesController.getInstance(a); - if (a == 0) { - SharedConfig.pushStringStatus = "__FIREBASE_GENERATING_SINCE_" + ConnectionsManager.getInstance(a).getCurrentTime() + "__"; - } else { - ConnectionsManager.getInstance(a); - } - TLRPC.User user = UserConfig.getInstance(a).getCurrentUser(); - if (user != null) { - MessagesController.getInstance(a).putUser(user, true); - SendMessagesHelper.getInstance(a).checkUnsentMessages(); - } + final int finalA = a; + Runnable initRunnable = () -> { + UserConfig.getInstance(finalA).loadConfig(); + MessagesController.getInstance(finalA); + if (finalA == 0) { + SharedConfig.pushStringStatus = "__FIREBASE_GENERATING_SINCE_" + ConnectionsManager.getInstance(finalA).getCurrentTime() + "__"; + } else { + ConnectionsManager.getInstance(finalA); + } + TLRPC.User user = UserConfig.getInstance(finalA).getCurrentUser(); + if (user != null) { + MessagesController.getInstance(finalA).putUser(user, true); + SendMessagesHelper.getInstance(finalA).checkUnsentMessages(); + } + }; + if (finalA == UserConfig.selectedAccount) initRunnable.run(); + else UIUtil.runOnIoDispatcher(initRunnable); } if (ProxyUtil.isVPNEnabled()) { @@ -298,8 +303,13 @@ public class ApplicationLoader extends Application { MediaController.getInstance(); for (int a = 0; a < UserConfig.MAX_ACCOUNT_COUNT; a++) { - ContactsController.getInstance(a).checkAppAccount(); - DownloadController.getInstance(a); + final int finalA = a; + Runnable initRunnable = () -> { + ContactsController.getInstance(finalA).checkAppAccount(); + DownloadController.getInstance(finalA); + }; + if (finalA == UserConfig.selectedAccount) initRunnable.run(); + else UIUtil.runOnIoDispatcher(initRunnable); } }