Add an interface for the preview providers
This commit is contained in:
parent
227ff0a9e3
commit
c1f266db88
4 changed files with 50 additions and 6 deletions
|
@ -509,7 +509,7 @@ class Preview {
|
|||
|
||||
foreach ($providers as $closure) {
|
||||
$provider = $closure();
|
||||
if (!($provider instanceof \OC\Preview\Provider)) {
|
||||
if (!($provider instanceof \OCP\Preview\IProvider)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<?php
|
||||
namespace OC\Preview;
|
||||
|
||||
abstract class Provider {
|
||||
use OCP\Preview\IProvider;
|
||||
|
||||
abstract class Provider implements IProvider {
|
||||
private $options;
|
||||
|
||||
public function __construct($options) {
|
||||
|
|
|
@ -8,8 +8,9 @@
|
|||
*/
|
||||
namespace OC;
|
||||
|
||||
use OCP\image;
|
||||
use OCP\Image;
|
||||
use OCP\IPreview;
|
||||
use OCP\Preview\IProvider;
|
||||
|
||||
class PreviewManager implements IPreview {
|
||||
/** @var array */
|
||||
|
@ -29,7 +30,7 @@ class PreviewManager implements IPreview {
|
|||
* In order to improve lazy loading a closure can be registered which will be
|
||||
* called in case preview providers are actually requested
|
||||
*
|
||||
* $callable has to return an instance of \OC\Preview\Provider
|
||||
* $callable has to return an instance of \OCP\Preview\IProvider
|
||||
*
|
||||
* @param string $mimeTypeRegex Regex with the mime types that are supported by this provider
|
||||
* @param \Closure $callable
|
||||
|
@ -119,11 +120,11 @@ class PreviewManager implements IPreview {
|
|||
if (preg_match($supportedMimeType, $file->getMimetype())) {
|
||||
foreach ($providers as $closure) {
|
||||
$provider = $closure();
|
||||
if (!($provider instanceof \OC\Preview\Provider)) {
|
||||
if (!($provider instanceof IProvider)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/** @var $provider \OC\Preview\Provider */
|
||||
/** @var $provider IProvider */
|
||||
if ($provider->isAvailable($file)) {
|
||||
return true;
|
||||
}
|
||||
|
|
41
lib/public/preview/iprovider.php
Normal file
41
lib/public/preview/iprovider.php
Normal file
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
/**
|
||||
* ownCloud
|
||||
*
|
||||
* @author Joas Schilling
|
||||
* @copyright 2015 Joas Schilling nickvergessen@owncloud.com
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
namespace OCP\Preview;
|
||||
|
||||
interface IProvider {
|
||||
/**
|
||||
* @return string Regex with the mimetypes that are supported by this provider
|
||||
*/
|
||||
public function getMimeType();
|
||||
|
||||
/**
|
||||
* Check if a preview can be generated for $path
|
||||
*
|
||||
* @param \OCP\Files\FileInfo $file
|
||||
* @return bool
|
||||
*/
|
||||
public function isAvailable($file);
|
||||
|
||||
/**
|
||||
* get thumbnail for file at path $path
|
||||
*
|
||||
* @param string $path Path of file
|
||||
* @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image
|
||||
* @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image
|
||||
* @param bool $scalingup Disable/Enable upscaling of previews
|
||||
* @param \OC\Files\View $fileview fileview object of user folder
|
||||
* @return mixed
|
||||
* false if no preview was generated
|
||||
* OC_Image object of the preview
|
||||
*/
|
||||
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview);
|
||||
}
|
Loading…
Reference in a new issue