From ec6a79d9d6c14a62b81df0de23f30550c3f0c4f1 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Fri, 11 Mar 2022 10:21:44 +0100 Subject: [PATCH] Resolve #281 --- .../app/libraries/MailSo/Mail/MailClient.php | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php index 9184d6e31..4ee7b58e1 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php @@ -913,26 +913,21 @@ class MailClient { $aSearchedUids = $this->GetUids($oParams->oCacher, $sSearch, $oMessageCollection->FolderName, $oMessageCollection->FolderHash); - - if (\count($aSearchedUids)) - { - $aNewUids = array(); - foreach ($aUids as $iUid) - { + if ($bUseThreads && !$oParams->iThreadUid) { + $aUids = \array_filter($aUids, function($iUid) use ($aSearchedUids, $aAllThreads) { if (\in_array($iUid, $aSearchedUids)) { - $aNewUids[] = $iUid; - } else if ($bUseThreads && !$oParams->iThreadUid) { - foreach ($aAllThreads as $aMap) { - if (\in_array($iUid, $aMap) && \array_intersect($aSearchedUids, $aMap)) { - $aNewUids[] = $iUid; - break; - } + return true; + } + foreach ($aAllThreads as $aMap) { + if (\in_array($iUid, $aMap) && \array_intersect($aSearchedUids, $aMap)) { + return true; } } - } - - $aUids = \array_unique($aNewUids); - unset($aNewUids); + }); + } else { + $aUids = \array_filter($aUids, function($iUid) use ($aSearchedUids) { + return \in_array($iUid, $aSearchedUids); + }); } }