From 1923d5cb4b0b8c6239e57ebc80919f2d92b0a949 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 13 Mar 2023 12:04:09 +0100 Subject: [PATCH] Speedup CheckableFolders --- .../app/libraries/RainLoop/Actions/Folders.php | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php index b5430e6ff..c0297f941 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php @@ -151,26 +151,17 @@ trait Folders $oSettingsLocal = $this->SettingsProvider(true)->Load($oAccount); $aCheckableFolder = \json_decode($oSettingsLocal->GetConf('CheckableFolder', '[]')); - if (!\is_array($aCheckableFolder)) { $aCheckableFolder = array(); } if (!empty($this->GetActionParam('checkable', '0'))) { $aCheckableFolder[] = $sFolderFullName; - } else { - $aCheckableFolderNew = array(); - foreach ($aCheckableFolder as $sFolder) { - if ($sFolder !== $sFolderFullName) { - $aCheckableFolderNew[] = $sFolder; - } - } - $aCheckableFolder = $aCheckableFolderNew; + } else if (($key = \array_search($sFolderFullName, $aCheckableFolder)) !== false) { + \array_splice($aCheckableFolder, $key, 1); } - $aCheckableFolder = \array_unique($aCheckableFolder); - - $oSettingsLocal->SetConf('CheckableFolder', \json_encode($aCheckableFolder)); + $oSettingsLocal->SetConf('CheckableFolder', \json_encode(\array_unique($aCheckableFolder))); return $this->DefaultResponse($this->SettingsProvider(true)->Save($oAccount, $oSettingsLocal)); }