summaryrefslogtreecommitdiffstats
path: root/controller
diff options
context:
space:
mode:
authorAlessandro Cosentino <cosenal@gmail.com>2014-09-29 13:45:17 -0400
committerAlessandro Cosentino <cosenal@gmail.com>2014-09-29 13:45:17 -0400
commit885b506695403465443b3dce124910fd2c9f66e6 (patch)
treee99d92fc00755613cdb9bdc1a2c97890caccc500 /controller
parent69cc52228555aa251718f52c6a2e6b573a871ae4 (diff)
web app manifest
Diffstat (limited to 'controller')
-rw-r--r--controller/appcontroller.php76
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