diff --git a/appinfo/app.php b/appinfo/app.php index 0532471..211c992 100644 --- a/appinfo/app.php +++ b/appinfo/app.php @@ -1,43 +1,26 @@ * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. + * @author 2016 Matias De lellis * - * @author Matias De lellis - * @copyright Matias De lellis 2016 + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see . */ -namespace OCA\QuickNotes\AppInfo; +use OCA\QuickNotes\AppInfo\Application; -use OCP\AppFramework\App; - -require_once __DIR__ . '/autoload.php'; - -$app = new App('quicknotes'); -$container = $app->getContainer(); - -$container->query('OCP\INavigationManager')->add(function () use ($container) { - $urlGenerator = $container->query('OCP\IURLGenerator'); - $l10n = $container->query('OCP\IL10N'); - return [ - // the string under which your app will be referenced in owncloud - 'id' => 'quicknotes', - - // sorting weight for the navigation. The higher the number, the higher - // will it be listed in the navigation - 'order' => 10, - - // the route that will be shown on startup - 'href' => $urlGenerator->linkToRoute('quicknotes.page.index'), - - // the icon that will be shown in the navigation - // this file needs to exist in img/ - 'icon' => $urlGenerator->imagePath('quicknotes', 'app.svg'), - - // the title of your application. This will be used in the - // navigation or on the settings page of your app - 'name' => $l10n->t('Quick notes'), - ]; -}); \ No newline at end of file +$app = new Application(); +$app->register(); \ No newline at end of file diff --git a/appinfo/autoload.php b/appinfo/autoload.php deleted file mode 100644 index f5f865b..0000000 --- a/appinfo/autoload.php +++ /dev/null @@ -1,19 +0,0 @@ - - * @copyright Matias De lellis 2016 - */ - -namespace OCA\QuickNotes\AppInfo; - -use OCP\AppFramework\App; - -/** - * Additional autoloader registration, e.g. registering composer autoloaders - */ -// require_once __DIR__ . '/../vendor/autoload.php'; \ No newline at end of file diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php new file mode 100644 index 0000000..f67f6d1 --- /dev/null +++ b/lib/AppInfo/Application.php @@ -0,0 +1,62 @@ + + * + * @author 2016 Matias De lellis + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see . + */ + +namespace OCA\QuickNotes\AppInfo; + +use OCP\AppFramework\App; + +use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\IServerContainer; + + +class Application extends App { + + /** @var string */ + public const APP_NAME = 'quicknotes'; + + public function __construct(array $urlParams = []) { + parent::__construct(self::APP_NAME, $urlParams); + } + + public function register(): void { + $this->registerNavigationEntry(); + } + + private function registerNavigationEntry(): void { + $container = $this->getContainer(); + $server = $container->getServer(); + + $server->getNavigationManager()->add(static function () use ($container) { + $urlGenerator = $container->query(IURLGenerator::class); + $l10n = $container->query(IL10N::class); + return [ + 'id' => 'quicknotes', + 'order' => 10, + 'href' => $urlGenerator->linkToRoute('quicknotes.page.index'), + 'icon' => $urlGenerator->imagePath('quicknotes', 'app.svg'), + 'name' => $l10n->t('Quick notes'), + ]; + }); + } + +} \ No newline at end of file