From 885b506695403465443b3dce124910fd2c9f66e6 Mon Sep 17 00:00:00 2001 From: Alessandro Cosentino Date: Mon, 29 Sep 2014 13:45:17 -0400 Subject: web app manifest --- controller/appcontroller.php | 76 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 controller/appcontroller.php (limited to 'controller') 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 @@ + + * @author Bernhard Posselt + * @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 -- cgit v1.2.3