* * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License, version 3, * along with this program. If not, see * */ namespace OCA\FederatedFileSharing\AppInfo; use OCA\FederatedFileSharing\FederatedShareProvider; use OCP\AppFramework\App; class Application extends App { /** @var FederatedShareProvider */ protected $federatedShareProvider; public function __construct() { parent::__construct('federatedfilesharing'); } /** * register personal and admin settings page */ public function registerSettings() { \OCP\App::registerAdmin('federatedfilesharing', 'settings-admin'); \OCP\App::registerPersonal('federatedfilesharing', 'settings-personal'); } /** * get instance of federated share provider * * @return FederatedShareProvider */ public function getFederatedShareProvider() { if ($this->federatedShareProvider === null) { $this->initFederatedShareProvider(); } return $this->federatedShareProvider; } /** * initialize federated share provider */ protected function initFederatedShareProvider() { $addressHandler = new \OCA\FederatedFileSharing\AddressHandler( \OC::$server->getURLGenerator(), \OC::$server->getL10N('federatedfilesharing') ); $discoveryManager = new \OCA\FederatedFileSharing\DiscoveryManager( \OC::$server->getMemCacheFactory(), \OC::$server->getHTTPClientService() ); $notifications = new \OCA\FederatedFileSharing\Notifications( $addressHandler, \OC::$server->getHTTPClientService(), $discoveryManager, \OC::$server->getJobList() ); $tokenHandler = new \OCA\FederatedFileSharing\TokenHandler( \OC::$server->getSecureRandom() ); $this->federatedShareProvider = new \OCA\FederatedFileSharing\FederatedShareProvider( \OC::$server->getDatabaseConnection(), $addressHandler, $notifications, $tokenHandler, \OC::$server->getL10N('federatedfilesharing'), \OC::$server->getLogger(), \OC::$server->getLazyRootFolder(), \OC::$server->getConfig(), \OC::$server->getUserManager() ); } }