diff --git a/apps/files/lib/Collaboration/Resources/ResourceProvider.php b/apps/files/lib/Collaboration/Resources/ResourceProvider.php index d29b18afea..27b155b764 100644 --- a/apps/files/lib/Collaboration/Resources/ResourceProvider.php +++ b/apps/files/lib/Collaboration/Resources/ResourceProvider.php @@ -1,4 +1,5 @@ * @@ -24,7 +25,6 @@ namespace OCA\Files\Collaboration\Resources; use OCP\Collaboration\Resources\IProvider; use OCP\Collaboration\Resources\IResource; -use OCP\Collaboration\Resources\ResourceException; use OCP\Files\IRootFolder; use OCP\Files\Node; use OCP\IURLGenerator; @@ -65,7 +65,7 @@ class ResourceProvider implements IProvider { * * @param IResource $resource * @return string - * @since 15.0.0 + * @since 16.0.0 */ public function getName(IResource $resource): string { if (isset($this->nodes[(int) $resource->getId()])) { @@ -84,7 +84,7 @@ class ResourceProvider implements IProvider { * @param IResource $resource * @param IUser $user * @return bool - * @since 15.0.0 + * @since 16.0.0 */ public function canAccessResource(IResource $resource, IUser $user = null): bool { if (!$user instanceof IUser) { @@ -107,21 +107,25 @@ class ResourceProvider implements IProvider { * * @param IResource $resource * @return string - * @since 15.0.0 + * @since 16.0.0 */ - public function getIconClass(IResource $resource): string { + public function getIconLink(IResource $resource): string { $node = $this->getNode($resource); if ($node && $node->getMimetype() === 'httpd/unix-directory') { - return 'icon-files-dark'; + return $this->urlGenerator->getAbsoluteURL( + $this->urlGenerator->imagePath('core', 'places/files') + ); } - return 'icon-filetype-file'; + return $this->urlGenerator->getAbsoluteURL( + $this->urlGenerator->imagePath('core', 'filetypes/file') + ); } /** * Get the resource type of the provider * * @return string - * @since 15.0.0 + * @since 16.0.0 */ public function getType(): string { return self::RESOURCE_TYPE; @@ -132,7 +136,7 @@ class ResourceProvider implements IProvider { * * @param IResource $resource * @return string - * @since 15.0.0 + * @since 16.0.0 */ public function getLink(IResource $resource): string { return $this->urlGenerator->linkToRoute('files.viewcontroller.showFile', ['fileid' => $resource->getId()]); diff --git a/core/Controller/CollaborationResourcesController.php b/core/Controller/CollaborationResourcesController.php index 4278334c2b..3699746f73 100644 --- a/core/Controller/CollaborationResourcesController.php +++ b/core/Controller/CollaborationResourcesController.php @@ -245,7 +245,7 @@ class CollaborationResourcesController extends OCSController { 'type' => $resource->getType(), 'id' => $resource->getId(), 'name' => $resource->getName(), - 'iconClass' => $resource->getIconClass(), + 'iconLink' => $resource->getIconLink(), 'link' => $resource->getLink(), ]; } diff --git a/lib/private/Collaboration/Resources/Manager.php b/lib/private/Collaboration/Resources/Manager.php index dc4d2fc026..d1b84f9628 100644 --- a/lib/private/Collaboration/Resources/Manager.php +++ b/lib/private/Collaboration/Resources/Manager.php @@ -309,11 +309,11 @@ class Manager implements IManager { * @param IResource $resource * @return string */ - public function getIconClass(IResource $resource): string { + public function getIconLink(IResource $resource): string { foreach ($this->getProviders() as $provider) { if ($provider->getType() === $resource->getType()) { try { - return $provider->getIconClass($resource); + return $provider->getIconLink($resource); } catch (ResourceException $e) { } } diff --git a/lib/private/Collaboration/Resources/Resource.php b/lib/private/Collaboration/Resources/Resource.php index d9c72ca203..0a3c003b27 100644 --- a/lib/private/Collaboration/Resources/Resource.php +++ b/lib/private/Collaboration/Resources/Resource.php @@ -106,9 +106,9 @@ class Resource implements IResource { * @return string * @since 16.0.0 */ - public function getIconClass(): string { + public function getIconLink(): string { if ($this->iconClass === null) { - $this->iconClass = $this->manager->getIconClass($this); + $this->iconClass = $this->manager->getIconLink($this); } return $this->iconClass; diff --git a/lib/public/Collaboration/Resources/IProvider.php b/lib/public/Collaboration/Resources/IProvider.php index 376a816a5c..16ab16c0d1 100644 --- a/lib/public/Collaboration/Resources/IProvider.php +++ b/lib/public/Collaboration/Resources/IProvider.php @@ -53,7 +53,7 @@ interface IProvider { * @return string * @since 16.0.0 */ - public function getIconClass(IResource $resource): string; + public function getIconLink(IResource $resource): string; /** * Get the link to a resource diff --git a/lib/public/Collaboration/Resources/IResource.php b/lib/public/Collaboration/Resources/IResource.php index 609a283c2d..0a3e36a33c 100644 --- a/lib/public/Collaboration/Resources/IResource.php +++ b/lib/public/Collaboration/Resources/IResource.php @@ -48,10 +48,11 @@ interface IResource { public function getName(): string; /** + * Absolute link to an icon to represent the resource * @return string * @since 16.0.0 */ - public function getIconClass(): string; + public function getIconLink(): string; /** * @return string