Loading app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +20 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; Loading Loading @@ -2403,6 +2404,25 @@ public class MessagingController { context.startActivity(chooserIntent); } public void checkMailBlocking(Account account) { final CountDownLatch latch = new CountDownLatch(1); checkMail(context, account, true, false, new SimpleMessagingListener() { @Override public void checkMailFinished(Context context, Account account) { latch.countDown(); } }); Timber.v("checkMailBlocking(%s) about to await latch release", account.getDescription()); try { latch.await(); Timber.v("checkMailBlocking(%s) got latch release", account.getDescription()); } catch (Exception e) { Timber.e(e, "Interrupted while awaiting latch release"); } } /** * Checks mail for one or multiple accounts. If account is null all accounts * are checked. Loading app/core/src/main/java/com/fsck/k9/job/MailSyncJob.kt +2 −8 Original line number Diff line number Diff line Loading @@ -16,13 +16,7 @@ class MailSyncJob( ?.let { accountUuid -> preferences.getAccount(accountUuid)?.let { account -> messagingController.checkMail( context, account, false, false, null ) messagingController.checkMailBlocking(account) } } Loading Loading
app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +20 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; Loading Loading @@ -2403,6 +2404,25 @@ public class MessagingController { context.startActivity(chooserIntent); } public void checkMailBlocking(Account account) { final CountDownLatch latch = new CountDownLatch(1); checkMail(context, account, true, false, new SimpleMessagingListener() { @Override public void checkMailFinished(Context context, Account account) { latch.countDown(); } }); Timber.v("checkMailBlocking(%s) about to await latch release", account.getDescription()); try { latch.await(); Timber.v("checkMailBlocking(%s) got latch release", account.getDescription()); } catch (Exception e) { Timber.e(e, "Interrupted while awaiting latch release"); } } /** * Checks mail for one or multiple accounts. If account is null all accounts * are checked. Loading
app/core/src/main/java/com/fsck/k9/job/MailSyncJob.kt +2 −8 Original line number Diff line number Diff line Loading @@ -16,13 +16,7 @@ class MailSyncJob( ?.let { accountUuid -> preferences.getAccount(accountUuid)?.let { account -> messagingController.checkMail( context, account, false, false, null ) messagingController.checkMailBlocking(account) } } Loading