setInterval(24 * 60 * 60); } #[\Override] protected function run($argument): void { $preferencesToKeep = [ 'notify_setting_activity_digest', 'notify_setting_batchtime', 'notify_setting_self', 'notify_setting_selfemail', ]; foreach ($this->manager->getSettings() as $setting) { if ($setting->canChangeMail()) { $preferencesToKeep[] = 'notify_' . IExtension::METHOD_MAIL . '_' . $setting->getIdentifier(); } if ($setting->canChangeNotification()) { $preferencesToKeep[] = 'notify_' . IExtension::METHOD_NOTIFICATION . '_' . $setting->getIdentifier(); } } $this->removeFormerPreference($preferencesToKeep); } protected function removeFormerPreference(array $preferencesToKeep): void { $query = $this->db->getQueryBuilder(); $query->delete('preferences') ->where($query->expr()->eq('appid', $query->createNamedParameter('activity'))) ->andWhere($query->expr()->like('configkey', $query->createNamedParameter($this->db->escapeLikeParameter('notify_') . '%'))) ->andWhere($query->expr()->notIn('configkey', $query->createNamedParameter($preferencesToKeep, IQueryBuilder::PARAM_STR_ARRAY))); $query->executeStatement(); } }