[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