serverContainer = $serverContainer; $this->l10n = $l10n; } /** * @return RecommendedFile[] */ public function getMostRecentRecommendation(IUser $user, int $max): array { /** @var IRootFolder $rootFolder */ $rootFolder = $this->serverContainer->get(IRootFolder::class); $userFolder = $rootFolder->getUserFolder($user->getUID()); return array_filter(array_map(function (Node $node) use ($userFolder): ?RecommendedFile { try { $parentPath = dirname($node->getPath()); if ($parentPath === '' || $parentPath === '.' || $parentPath === '/') { $parentPath = $node->getParent()->getPath(); } return new RecommendedFile( $userFolder->getRelativePath($parentPath), $node, $node->getMTime(), self::REASON, ); } catch (StorageNotAvailableException $e) { return null; } }, $userFolder->getRecent($max)), function (?RecommendedFile $entry): bool { return $entry !== null; }); } }