diff options
author | Alessandro Cosentino <cosenal@gmail.com> | 2014-09-29 13:45:17 -0400 |
---|---|---|
committer | Alessandro Cosentino <cosenal@gmail.com> | 2014-09-29 13:45:17 -0400 |
commit | 885b506695403465443b3dce124910fd2c9f66e6 (patch) | |
tree | e99d92fc00755613cdb9bdc1a2c97890caccc500 /controller | |
parent | 69cc52228555aa251718f52c6a2e6b573a871ae4 (diff) |
web app manifest
Diffstat (limited to 'controller')
-rw-r--r-- | controller/appcontroller.php | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/controller/appcontroller.php b/controller/appcontroller.php new file mode 100644 index 000000000..15d0d0adb --- /dev/null +++ b/controller/appcontroller.php @@ -0,0 +1,76 @@ +<?php +/** + * ownCloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Alessandro Cosentino <cosenal@gmail.com> + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright Alessandro Cosentino 2014 + * @copyright Bernhard Posselt 2014 + */ + +namespace OCA\News\Controller; + +use \OCP\IRequest; +use \OCP\IURLGenerator; +use \OCP\AppFramework\Controller; +use \OCP\AppFramework\Http; +use \OCP\AppFramework\Http\JSONResponse; + +use \OCA\News\Config\AppConfig; + +class AppController extends Controller { + + private $urlGenerator; + private $appConfig; + + public function __construct($appName, + IRequest $request, + IURLGenerator $urlGenerator, + AppConfig $appConfig){ + parent::__construct($appName, $request); + $this->urlGenerator = $urlGenerator; + $this->appConfig = $appConfig; + } + + /** + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * + * Generates a web app manifest, according to specs in: + * https://developer.mozilla.org/en-US/Apps/Build/Manifest + */ + public function manifest() { + $config = $this->appConfig->getConfig(); + + // size of the icons: 128x128 is required by FxOS for all app manifests + $iconSizes = ['128', '512']; + $icons = []; + + foreach ($iconSizes as $size) { + $filename = 'app-' . $size . '.png'; + if (file_exists(__DIR__ . '/../img/' . $filename)) { + $icons[$size] = $this->urlGenerator->imagePath($config['id'], + $filename); + } + } + + $params = [ + "name" => $config['name'], + "description" => $config['description'], + "launch_path" => $this->urlGenerator->linkToRoute( + $config['id'] . '.page.index'), + "icons" => $icons, + "developer" => [ + "name" => "ownCloud community", + "url" => $config['homepage'] + ], + ]; + + return new JSONResponse($params); + } + +}
\ No newline at end of file |