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;
+	}
+
 }