From 61241d36811cee617f2cd4ede52fff1a99f2364f Mon Sep 17 00:00:00 2001 From: althafvly Date: Wed, 4 Jun 2025 11:16:10 +0530 Subject: [PATCH] mail: Fix crash when accessing server settings for unfinished accounts --- .../setup/accountmanager/EeloAccountCreator.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/activity/setup/accountmanager/EeloAccountCreator.java b/app/ui/legacy/src/main/java/com/fsck/k9/activity/setup/accountmanager/EeloAccountCreator.java index 1de5ccc09f..2eb61d88fa 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/activity/setup/accountmanager/EeloAccountCreator.java +++ b/app/ui/legacy/src/main/java/com/fsck/k9/activity/setup/accountmanager/EeloAccountCreator.java @@ -18,6 +18,7 @@ package com.fsck.k9.activity.setup.accountmanager; import java.util.List; +import java.util.stream.Collectors; import android.accounts.AccountManager; import android.content.ContentResolver; @@ -65,11 +66,17 @@ public class EeloAccountCreator { List accounts = preferences.getAccounts(); deleteIncompleteAccounts(accounts, accountRemover); + // deleteIncompleteAccounts is asynchronous. + // The second time we call preferences.getAccounts() + // The accounts might not yet be removed + List finalAccounts = accounts.stream() + .filter(Account::isFinishedSetup) + .collect(Collectors.toList()); - loadEeloAccounts(context, accounts, accountManager, jobManager); + loadEeloAccounts(context, finalAccounts, accountManager, jobManager); AccountManagerConstants.INSTANCE.getOPENID_ACCOUNT_TYPES() - .forEach(accountType -> loadOpenIdAccounts(context, accountType, accounts, accountManager, jobManager)); + .forEach(accountType -> loadOpenIdAccounts(context, accountType, finalAccounts, accountManager, jobManager)); } catch (SecurityException e) { Timber.e(e, "Failed to load accounts from accountManager because of security violation"); } -- GitLab