]> source.dussan.org Git - nextcloud-server.git/commitdiff
Use DI for the config
authorJoas Schilling <nickvergessen@owncloud.com>
Thu, 12 Mar 2015 11:08:31 +0000 (12:08 +0100)
committerJoas Schilling <nickvergessen@owncloud.com>
Mon, 16 Mar 2015 11:44:11 +0000 (12:44 +0100)
lib/private/preview/provider.php
lib/private/previewmanager.php
lib/private/server.php

index bfabc7ad4b3b71397f1997c0c518b253ca9e55f9..caf71fd22191ca99da189a9966025fddbb0582e2 100644 (file)
@@ -6,7 +6,12 @@ use OCP\Preview\IProvider;
 abstract class Provider implements IProvider {
        private $options;
 
-       public function __construct($options) {
+       /**
+        * Constructor
+        *
+        * @param array $options
+        */
+       public function __construct(array $options = []) {
                $this->options = $options;
        }
 
index 732681c78e7e47469ba19121e8dabb20f891c7d4..c940307084d3d711b00e38631113006cfce51b31 100644 (file)
@@ -8,11 +8,13 @@
  */
 namespace OC;
 
-use OCP\Image;
 use OCP\IPreview;
 use OCP\Preview\IProvider;
 
 class PreviewManager implements IPreview {
+       /** @var \OCP\IConfig */
+       protected $config;
+
        /** @var array */
        protected $providers = [];
 
@@ -21,8 +23,11 @@ class PreviewManager implements IPreview {
 
        /**
         * Constructor
+        *
+        * @param \OCP\IConfig $config
         */
-       public function __construct() {
+       public function __construct(\OCP\IConfig $config) {
+               $this->config = $config;
                $this->registerCoreProviders();
        }
 
@@ -37,7 +42,7 @@ class PreviewManager implements IPreview {
         * @return void
         */
        public function registerProvider($mimeTypeRegex, \Closure $callable) {
-               if (!\OC::$server->getConfig()->getSystemValue('enable_previews', true)) {
+               if (!$this->config->getSystemValue('enable_previews', true)) {
                        return;
                }
 
@@ -87,7 +92,7 @@ class PreviewManager implements IPreview {
         * @return boolean
         */
        public function isMimeSupported($mimeType = '*') {
-               if (!\OC::$server->getConfig()->getSystemValue('enable_previews', true)) {
+               if (!$this->config->getSystemValue('enable_previews', true)) {
                        return false;
                }
 
@@ -107,7 +112,7 @@ class PreviewManager implements IPreview {
         * @return bool
         */
        public function isAvailable(\OCP\Files\FileInfo $file) {
-               if (!\OC::$server->getConfig()->getSystemValue('enable_previews', true)) {
+               if (!$this->config->getSystemValue('enable_previews', true)) {
                        return false;
                }
 
@@ -165,7 +170,7 @@ class PreviewManager implements IPreview {
                        return $this->defaultProviders;
                }
 
-               $this->defaultProviders = \OC::$server->getConfig()->getSystemValue('enabledPreviewProviders', [
+               $this->defaultProviders = $this->config->getSystemValue('enabledPreviewProviders', [
                        'OC\Preview\Image',
                        'OC\Preview\MP3',
                        'OC\Preview\TXT',
@@ -180,10 +185,10 @@ class PreviewManager implements IPreview {
         * @param string $class
         * @param string $mimeType
         */
-       protected function registerCoreProvider($class, $mimeType) {
+       protected function registerCoreProvider($class, $mimeType, $options = []) {
                if (in_array(trim($class, '\\'), $this->getEnabledDefaultProvider())) {
-                       $this->registerProvider($mimeType, function () use ($class) {
-                               return new $class([]);
+                       $this->registerProvider($mimeType, function () use ($class, $options) {
+                               return new $class($options);
                        });
                }
        }
@@ -225,7 +230,7 @@ class PreviewManager implements IPreview {
                        if (count($checkImagick->queryFormats('PDF')) === 1) {
                                // Office previews are currently not supported on Windows
                                if (!\OC_Util::runningOnWindows() && \OC_Helper::is_function_enabled('shell_exec')) {
-                                       $officeFound = is_string(\OC::$server->getConfig()->getSystemValue('preview_libreoffice_path', null));
+                                       $officeFound = is_string($this->config->getSystemValue('preview_libreoffice_path', null));
 
                                        if (!$officeFound) {
                                                //let's see if there is libreoffice or openoffice on this machine
index 896abf04a40ffa1485ad347104ba45b530de19a4..8c78549d06e25244af3c9c5fedab945b7669226f 100644 (file)
@@ -43,8 +43,8 @@ class Server extends SimpleContainer implements IServerContainer {
                $this->registerService('ContactsManager', function ($c) {
                        return new ContactsManager();
                });
-               $this->registerService('PreviewManager', function ($c) {
-                       return new PreviewManager();
+               $this->registerService('PreviewManager', function (Server $c) {
+                       return new PreviewManager($c->getConfig());
                });
                $this->registerService('TagMapper', function(Server $c) {
                        return new TagMapper($c->getDatabaseConnection());