]> git.mxchange.org Git - friendica.git/commitdiff
Update app manifest icons
authoratjn <dev@atjn.dk>
Thu, 28 Apr 2022 11:26:59 +0000 (13:26 +0200)
committeratjn <dev@atjn.dk>
Thu, 28 Apr 2022 11:26:59 +0000 (13:26 +0200)
images/friendica-maskable-192.png [new file with mode: 0644]
images/friendica-maskable-512.png [new file with mode: 0644]
images/friendica-maskable.svg [new file with mode: 0644]
src/Module/Manifest.php

diff --git a/images/friendica-maskable-192.png b/images/friendica-maskable-192.png
new file mode 100644 (file)
index 0000000..9acfb80
Binary files /dev/null and b/images/friendica-maskable-192.png differ
diff --git a/images/friendica-maskable-512.png b/images/friendica-maskable-512.png
new file mode 100644 (file)
index 0000000..b454089
Binary files /dev/null and b/images/friendica-maskable-512.png differ
diff --git a/images/friendica-maskable.svg b/images/friendica-maskable.svg
new file mode 100644 (file)
index 0000000..77864d1
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="192" height="192" viewBox="0 0 1920 1920">
+       <rect fill="#1872a2" width="1920" height="1920"/>
+       <path fill="#febf19" d="M390 595q0-84 61-145 60-60 144-60h730q85 0 145 60 60 61 60 145v730q0 84-60 145-60 60-145 60H595q-84 0-144-60-60-61-61-145zm935-160h-183v274H778v231l363-2 1 273H778v274h547q67 0 114-47 46-46 45-113V595q0-67-45-113-46-46-114-47z"/>
+</svg>
index 2ae8009e251617092a9ba07420606db4901039a8..a554f7752648973babc6caf4310e3abf18a9db07 100644 (file)
@@ -31,8 +31,6 @@ class Manifest extends BaseModule
        {
                $config = DI::config();
 
-               $touch_icon = $config->get('system', 'touch_icon') ?: 'images/friendica-192.png';
-
                $theme = DI::config()->get('system', 'theme');
 
                $manifest = [
@@ -44,18 +42,6 @@ class Manifest extends BaseModule
                        'lang'          => $config->get('system', 'language'),
                        'dir'           => 'auto',
                        'categories'    => ['social network', 'internet'],
-                       'icons'         => [
-                               [
-                                       'src'   => DI::baseUrl()->get() . '/' . $touch_icon,
-                                       'sizes' => '192x192',
-                                       'type'  => 'image/png',
-                               ],
-                               [
-                                       'src'   => DI::baseUrl()->get() . '/' . $touch_icon,
-                                       'sizes' => '512x512',
-                                       'type'  => 'image/png',
-                               ],
-                       ],
                        'shortcuts'     => [
                                [
                                        'name'  => 'Latest posts',
@@ -80,6 +66,65 @@ class Manifest extends BaseModule
                        ]
                ];
 
+               /// @TODO If the admin provides their own touch icon, the manifest will regress
+               /// to a smaller set of icons that do not follow the web app manifest spec.
+               /// There should be a mechanism to allow the admin to provide all of the 6
+               /// different images that are required for a fully valid web app manifest.
+               $touch_icon = $config->get('system', 'touch_icon');
+               if($touch_icon){
+                       $manifest['icons'] = [
+                               [
+                                       'src'   => DI::baseUrl()->get() . '/' . $touch_icon,
+                                       'sizes' => '192x192',
+                                       'type'  => 'image/png',
+                               ],
+                               [
+                                       'src'   => DI::baseUrl()->get() . '/' . $touch_icon,
+                                       'sizes' => '512x512',
+                                       'type'  => 'image/png',
+                               ],
+                       ];
+               } else {
+                       $manifest['icons'] = [
+                               [
+                                       'src'   => DI::baseUrl()->get() . '/images/friendica.svg',
+                                       'sizes' => 'any',
+                                       'type'  => 'image/svg+xml',
+                                       'purpose' => 'any',
+                               ],
+                               [
+                                       'src'   => DI::baseUrl()->get() . '/images/friendica-192.png',
+                                       'sizes' => '192x192',
+                                       'type'  => 'image/png',
+                                       'purpose' => 'any',
+                               ],
+                               [
+                                       'src'   => DI::baseUrl()->get() . '/images/friendica-512.png',
+                                       'sizes' => '512x512',
+                                       'type'  => 'image/png',
+                                       'purpose' => 'any',
+                               ],
+                               [
+                                       'src'   => DI::baseUrl()->get() . '/images/friendica-maskable.svg',
+                                       'sizes' => 'any',
+                                       'type'  => 'image/svg+xml',
+                                       'purpose' => 'maskable',
+                               ],
+                               [
+                                       'src'   => DI::baseUrl()->get() . '/images/friendica-maskable-192.png',
+                                       'sizes' => '192x192',
+                                       'type'  => 'image/png',
+                                       'purpose' => 'maskable',
+                               ],
+                               [
+                                       'src'   => DI::baseUrl()->get() . '/images/friendica-maskable-512.png',
+                                       'sizes' => '512x512',
+                                       'type'  => 'image/png',
+                                       'purpose' => 'maskable',
+                               ],
+                       ];
+               }
+
                if ($background_color = Core\Theme::getBackgroundColor($theme)) {
                        $manifest['background_color'] = $background_color;
                }