diff --git a/apps/files/lib/Search/FilesSearchProvider.php b/apps/files/lib/Search/FilesSearchProvider.php index 35dd0e214639c..d2a30d10674bf 100644 --- a/apps/files/lib/Search/FilesSearchProvider.php +++ b/apps/files/lib/Search/FilesSearchProvider.php @@ -31,6 +31,7 @@ use InvalidArgumentException; use OCP\Files\Search\ISearchOperator; +use OCP\IPreview; use OCP\Search\FilterDefinition; use OCP\Search\IFilter; use OCP\Search\IFilteringProvider; @@ -71,7 +72,8 @@ public function __construct( IL10N $l10n, IURLGenerator $urlGenerator, IMimeTypeDetector $mimeTypeDetector, - IRootFolder $rootFolder + IRootFolder $rootFolder, + private IPreview $previewManager, ) { $this->l10n = $l10n; $this->urlGenerator = $urlGenerator; @@ -139,8 +141,12 @@ public function search(IUser $user, ISearchQuery $query): SearchResult { return SearchResult::paginated( $this->l10n->t('Files'), array_map(function (Node $result) use ($userFolder) { - // Generate thumbnail url - $thumbnailUrl = $this->urlGenerator->linkToRouteAbsolute('core.Preview.getPreviewByFileId', ['x' => 32, 'y' => 32, 'fileId' => $result->getId()]); + $thumbnailUrl = $this->previewManager->isMimeSupported($result->getMimetype()) + ? $this->urlGenerator->linkToRouteAbsolute('core.Preview.getPreviewByFileId', ['x' => 32, 'y' => 32, 'fileId' => $result->getId()]) + : ''; + $icon = $result->getMimetype() === FileInfo::MIMETYPE_FOLDER + ? 'icon-folder' + : $this->mimeTypeDetector->mimeTypeIcon($result->getMimetype()); $path = $userFolder->getRelativePath($result->getPath()); // Use shortened link to centralize the various @@ -155,7 +161,7 @@ public function search(IUser $user, ISearchQuery $query): SearchResult { $result->getName(), $this->formatSubline($path), $this->urlGenerator->getAbsoluteURL($link), - $result->getMimetype() === FileInfo::MIMETYPE_FOLDER ? 'icon-folder' : $this->mimeTypeDetector->mimeTypeIcon($result->getMimetype()) + $icon, ); $searchResultEntry->addAttribute('fileId', (string)$result->getId()); $searchResultEntry->addAttribute('path', $path);