[Yanel-commits] rev 60380 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Thu Sep 1 23:38:13 CEST 2011


Author: michi
Date: 2011-09-01 23:38:13 +0200 (Thu, 01 Sep 2011)
New Revision: 60380

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
list of mobile devices made configurable. next step would be something like wurlf

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2011-09-01 21:34:58 UTC (rev 60379)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2011-09-01 21:38:13 UTC (rev 60380)
@@ -161,6 +161,11 @@
 
     private Scheduler scheduler;
 
+    private String[] mobileDevices;
+
+    /**
+     * @see javax.servlet.GenericServlet#init(ServletConfig)
+     */
     @Override
     public void init(ServletConfig config) throws ServletException {
         servletContextRealPath = config.getServletContext().getRealPath("/");
@@ -194,6 +199,13 @@
                 detectMobilePerRequest = new Boolean(config.getInitParameter("detect-mobile-per-request")).booleanValue();
             }
 
+            if (config.getInitParameter("mobile-devices") != null) {
+                mobileDevices = org.springframework.util.StringUtils.tokenizeToStringArray(config.getInitParameter("mobile-devices"), ",", true, true);
+            } else {
+                mobileDevices = new String[]{"iPhone", "Android"};
+                log.error("No mobile devices configured! Please make sure to update your web.xml configuration file accordingly. Fallback to hard-coded list: " + mobileDevices);
+            }
+
             if (yanelInstance.isSchedulerEnabled()) {
                 log.warn("Startup scheduler ...");
                 scheduler = StdSchedulerFactory.getDefaultScheduler();
@@ -2778,8 +2790,6 @@
             //log.debug("User agent screen: " + request.getHeader("UA-Pixels")); // INFO: UA-Pixels, UA-Color, UA-OS, UA-CPU
 
             // TODO: Lower case!
-            // TODO: iPhone|iPod|BlackBerry|PalmSource|PalmOS|Nokia|Sony|SonyEricsson|Samsung|SAMSUNG|Android|Symbian
-            String[] mobileDevices = {"iPhone", "Android"};
             session.setAttribute(YanelServlet.MOBILE_KEY, "false"); // INFO: First assume user agent is not a mobile device...
             for (int i = 0; i < mobileDevices.length; i++) {
                 if (userAgent != null && userAgent.indexOf(mobileDevices[i]) > 0) { // TODO: Use http://wurfl.sourceforge.net/njava/, http://www.cloudfour.com/comparative-speed-of-wurfl-and-device-atlas/, http://www.id.uzh.ch/zinfo/mobileview.html



More information about the Yanel-commits mailing list