You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by se...@apache.org on 2021/10/16 23:46:23 UTC
[openmeetings] 01/01: OPENMEETINGS-2683 Add manifest file for
adding icon,
splash screen and browser settings for when adding to home screen on mobile.
This is an automated email from the ASF dual-hosted git repository.
sebawagner pushed a commit to branch feature/OPENMEETINGS-2683-manifest-file-for-saving-to-home-screen
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
commit 8f94d1d73d1b6a36d1996a6bbae0743632b9125f
Author: Sebastian Wagner <se...@gmail.com>
AuthorDate: Sun Oct 17 12:45:39 2021 +1300
OPENMEETINGS-2683 Add manifest file for adding icon, splash screen and browser settings for when adding to home screen on mobile.
---
.../apache/openmeetings/web/pages/BasePage.html | 29 +++++++++++++++
.../main/webapp/images/icons/apple-icon-180.png | Bin 0 -> 10696 bytes
.../webapp/images/icons/apple-splash-1125-2436.jpg | Bin 0 -> 66463 bytes
.../webapp/images/icons/apple-splash-1136-640.jpg | Bin 0 -> 24945 bytes
.../webapp/images/icons/apple-splash-1170-2532.jpg | Bin 0 -> 69906 bytes
.../webapp/images/icons/apple-splash-1242-2208.jpg | Bin 0 -> 72120 bytes
.../webapp/images/icons/apple-splash-1242-2688.jpg | Bin 0 -> 75659 bytes
.../webapp/images/icons/apple-splash-1284-2778.jpg | Bin 0 -> 78823 bytes
.../webapp/images/icons/apple-splash-1334-750.jpg | Bin 0 -> 31010 bytes
.../webapp/images/icons/apple-splash-1536-2048.jpg | Bin 0 -> 88952 bytes
.../webapp/images/icons/apple-splash-1620-2160.jpg | Bin 0 -> 95661 bytes
.../webapp/images/icons/apple-splash-1668-2224.jpg | Bin 0 -> 99240 bytes
.../webapp/images/icons/apple-splash-1668-2388.jpg | Bin 0 -> 101273 bytes
.../webapp/images/icons/apple-splash-1792-828.jpg | Bin 0 -> 32864 bytes
.../webapp/images/icons/apple-splash-2048-1536.jpg | Bin 0 -> 83104 bytes
.../webapp/images/icons/apple-splash-2048-2732.jpg | Bin 0 -> 130068 bytes
.../webapp/images/icons/apple-splash-2160-1620.jpg | Bin 0 -> 89441 bytes
.../webapp/images/icons/apple-splash-2208-1242.jpg | Bin 0 -> 60178 bytes
.../webapp/images/icons/apple-splash-2224-1668.jpg | Bin 0 -> 92538 bytes
.../webapp/images/icons/apple-splash-2388-1668.jpg | Bin 0 -> 92578 bytes
.../webapp/images/icons/apple-splash-2436-1125.jpg | Bin 0 -> 50367 bytes
.../webapp/images/icons/apple-splash-2532-1170.jpg | Bin 0 -> 53274 bytes
.../webapp/images/icons/apple-splash-2688-1242.jpg | Bin 0 -> 57573 bytes
.../webapp/images/icons/apple-splash-2732-2048.jpg | Bin 0 -> 121595 bytes
.../webapp/images/icons/apple-splash-2778-1284.jpg | Bin 0 -> 60820 bytes
.../webapp/images/icons/apple-splash-640-1136.jpg | Bin 0 -> 30165 bytes
.../webapp/images/icons/apple-splash-750-1334.jpg | Bin 0 -> 37214 bytes
.../webapp/images/icons/apple-splash-828-1792.jpg | Bin 0 -> 44404 bytes
.../images/icons/manifest-icon-192.maskable.png | Bin 0 -> 11489 bytes
.../images/icons/manifest-icon-512.maskable.png | Bin 0 -> 40763 bytes
.../openmeetings/webservice/InfoWebService.java | 41 +++++++++++++++++++++
31 files changed, 70 insertions(+)
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
index 72b547a..2220592 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
@@ -23,6 +23,35 @@
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport" content="height=device-height, initial-scale=1, width=device-width, initial-scale=1" />
+ <link rel="apple-touch-icon" href="images/icons/apple-icon-180.png">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2048-2732.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2732-2048.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1668-2388.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2388-1668.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1536-2048.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2048-1536.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1668-2224.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2224-1668.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1620-2160.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2160-1620.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1284-2778.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2778-1284.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1170-2532.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2532-1170.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1125-2436.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2436-1125.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1242-2688.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2688-1242.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-828-1792.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1792-828.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1242-2208.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-2208-1242.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-750-1334.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1334-750.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-640-1136.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="images/icons/apple-splash-1136-640.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
+ <link rel="manifest" href="services/info/manifest.webmanifest">
<link rel="shortcut icon" href="public/favicon.png" type="image/png"/>
<wicket:header-items/>
<title wicket:id="pageTitle">[title]</title>
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-icon-180.png b/openmeetings-web/src/main/webapp/images/icons/apple-icon-180.png
new file mode 100644
index 0000000..eb4a41d
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-icon-180.png differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1125-2436.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1125-2436.jpg
new file mode 100644
index 0000000..d5e6945
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1125-2436.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1136-640.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1136-640.jpg
new file mode 100644
index 0000000..495ce3a
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1136-640.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1170-2532.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1170-2532.jpg
new file mode 100644
index 0000000..ebbb7d0
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1170-2532.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1242-2208.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1242-2208.jpg
new file mode 100644
index 0000000..41d90f6
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1242-2208.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1242-2688.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1242-2688.jpg
new file mode 100644
index 0000000..e700992
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1242-2688.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1284-2778.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1284-2778.jpg
new file mode 100644
index 0000000..00dc1f5
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1284-2778.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1334-750.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1334-750.jpg
new file mode 100644
index 0000000..df9b66a
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1334-750.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1536-2048.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1536-2048.jpg
new file mode 100644
index 0000000..0cc0149
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1536-2048.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1620-2160.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1620-2160.jpg
new file mode 100644
index 0000000..72d65dc
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1620-2160.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1668-2224.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1668-2224.jpg
new file mode 100644
index 0000000..be91316
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1668-2224.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1668-2388.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1668-2388.jpg
new file mode 100644
index 0000000..261d074
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1668-2388.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-1792-828.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1792-828.jpg
new file mode 100644
index 0000000..4ac9f32
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-1792-828.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2048-1536.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2048-1536.jpg
new file mode 100644
index 0000000..c3e1604
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2048-1536.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2048-2732.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2048-2732.jpg
new file mode 100644
index 0000000..e148bca
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2048-2732.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2160-1620.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2160-1620.jpg
new file mode 100644
index 0000000..611f94a
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2160-1620.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2208-1242.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2208-1242.jpg
new file mode 100644
index 0000000..513dd62
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2208-1242.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2224-1668.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2224-1668.jpg
new file mode 100644
index 0000000..36e613c
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2224-1668.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2388-1668.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2388-1668.jpg
new file mode 100644
index 0000000..a5ef07c
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2388-1668.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2436-1125.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2436-1125.jpg
new file mode 100644
index 0000000..961316c
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2436-1125.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2532-1170.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2532-1170.jpg
new file mode 100644
index 0000000..76c6110
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2532-1170.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2688-1242.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2688-1242.jpg
new file mode 100644
index 0000000..a42c036
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2688-1242.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2732-2048.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2732-2048.jpg
new file mode 100644
index 0000000..a55c6b2
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2732-2048.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-2778-1284.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2778-1284.jpg
new file mode 100644
index 0000000..2ea3f46
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-2778-1284.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-640-1136.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-640-1136.jpg
new file mode 100644
index 0000000..eee3d9b
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-640-1136.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-750-1334.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-750-1334.jpg
new file mode 100644
index 0000000..f76bb54
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-750-1334.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/apple-splash-828-1792.jpg b/openmeetings-web/src/main/webapp/images/icons/apple-splash-828-1792.jpg
new file mode 100644
index 0000000..05c8946
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/apple-splash-828-1792.jpg differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/manifest-icon-192.maskable.png b/openmeetings-web/src/main/webapp/images/icons/manifest-icon-192.maskable.png
new file mode 100644
index 0000000..8948225
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/manifest-icon-192.maskable.png differ
diff --git a/openmeetings-web/src/main/webapp/images/icons/manifest-icon-512.maskable.png b/openmeetings-web/src/main/webapp/images/icons/manifest-icon-512.maskable.png
new file mode 100644
index 0000000..ac55c94
Binary files /dev/null and b/openmeetings-web/src/main/webapp/images/icons/manifest-icon-512.maskable.png differ
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
index 95e5552..a80fbdf 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
@@ -20,6 +20,8 @@ package org.apache.openmeetings.webservice;
import static org.apache.openmeetings.webservice.Constants.TNS;
+import java.util.Locale;
+
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.ws.rs.GET;
@@ -30,10 +32,15 @@ import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
import org.apache.openmeetings.db.dto.basic.Health;
import org.apache.openmeetings.db.dto.basic.Info;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.Version;
import org.apache.openmeetings.webservice.schema.HealthWrapper;
import org.apache.openmeetings.webservice.schema.InfoWrapper;
import org.springframework.stereotype.Service;
+import com.github.openjson.JSONArray;
+import com.github.openjson.JSONObject;
+
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -91,4 +98,38 @@ public class InfoWebService {
public Health getHealth() {
return Health.INSTANCE;
}
+
+ @WebMethod
+ @GET
+ @Path("/manifest.webmanifest")
+ @Produces({"application/manifest+json"})
+ public String getManifest() {
+ JSONObject manifest = new JSONObject();
+ manifest.put("name", OpenmeetingsVariables.getApplicationName() + " " + Version.getVersion());
+ manifest.put("short_name", OpenmeetingsVariables.getApplicationName() + " " + Version.getVersion());
+ manifest.put("description", "Openmeetings provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools.");
+ manifest.put("start_url", "/" + OpenmeetingsVariables.getApplicationName().toLowerCase(Locale.getDefault()) + "/?pwa=true");
+ manifest.put("scope", "/");
+ manifest.put("background_color", "#ffffff");
+ manifest.put("theme_color", "#ffffff");
+ manifest.put("dir", "auto");
+ manifest.put("display", "standalone");
+ manifest.put("orientation", "landscape");
+ JSONArray icons = new JSONArray();
+ icons.put(generateIcon("manifest-icon-512.maskable.png", "512x512", "maskable"));
+ icons.put(generateIcon("manifest-icon-192.maskable.png", "192x192", "maskable"));
+ manifest.put("icons", icons);
+ manifest.put("prefer_related_applications", "false");
+ return manifest.toString(2);
+ }
+
+ private JSONObject generateIcon(String name, String dimension, String purpose) {
+ JSONObject icon = new JSONObject();
+ icon.put("src", "/" + OpenmeetingsVariables.getApplicationName().toLowerCase(Locale.getDefault()) + "/images/icons/" + name);
+ icon.put("type", "image/png");
+ icon.put("sizes", dimension);
+ icon.put("purpose", purpose);
+ return icon;
+ }
+
}