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

michi at wyona.com michi at wyona.com
Thu Sep 1 17:01:13 CEST 2011


Author: michi
Date: 2011-09-01 17:01:12 +0200 (Thu, 01 Sep 2011)
New Revision: 60378

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
mobile device detection improved by starting to make list configurable

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 14:43:21 UTC (rev 60377)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2011-09-01 15:01:12 UTC (rev 60378)
@@ -2773,14 +2773,28 @@
         if (detectMobilePerRequest || mobileDevice == null) {
             String userAgent = request.getHeader("User-Agent");
             //log.debug("User agent: " + userAgent);
-            if (userAgent != null && (userAgent.indexOf("iPhone") > 0 || userAgent.indexOf("Android") > 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
-                session.setAttribute(YanelServlet.MOBILE_KEY, "iphone");
-            } else {
-                //log.debug("This does not seem to be a mobile device: " + userAgent);
-                session.setAttribute(YanelServlet.MOBILE_KEY, "false");
+
+            // INFO: In order to get the screen size/resolution please see for example http://www.coderanch.com/t/229905/JME/Mobile/Getting-Screen-size-requesting-mobile, whereas the below does not seem to work!
+            //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
+                    session.setAttribute(YanelServlet.MOBILE_KEY, mobileDevices[i]);
+                    //log.debug("This seems to be a mobile device: " + mobileDevices[i]);
+                    break;
+                }
             }
+/*
+            if (((String)session.getAttribute(YanelServlet.MOBILE_KEY)).equals("false")) {
+                log.debug("This does not seem to be a mobile device: " + userAgent);
+            }
+*/
         } else {
-            //log.debug("DEBUG: Mobile device detection already done.");
+            //log.debug("Mobile device detection already done.");
         }
     }
 



More information about the Yanel-commits mailing list