[Yanel-commits] rev 59336 - public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources

michi at wyona.com michi at wyona.com
Tue Jul 12 17:33:11 CEST 2011


Author: michi
Date: 2011-07-12 17:33:11 +0200 (Tue, 12 Jul 2011)
New Revision: 59336

Modified:
   public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources/BasicXMLResource.java
Log:
get user agent and check whether is mobile device refactored

Modified: public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources/BasicXMLResource.java
===================================================================
--- public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources/BasicXMLResource.java	2011-07-12 14:07:39 UTC (rev 59335)
+++ public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources/BasicXMLResource.java	2011-07-12 15:33:11 UTC (rev 59336)
@@ -440,30 +440,24 @@
         transformer.setParameter("yanel.back2realm", backToRealm);
         transformer.setParameter("yarep.back2realm", backToRealm); // for backwards compatibility
 
-        // Set OS and client
-        javax.servlet.http.HttpServletRequest request = getEnvironment().getRequest();
-        String userAgent = request.getHeader("User-Agent");
-        if (userAgent == null) {
-             log.warn("Header contains no User-Agent!");
-             userAgent = "null";
-        }
         transformer.setParameter("language", getRequestedLanguage());
+
+        // INFO: Set OS and client
+        String userAgent = getUserAgent();
         String os = getOS(userAgent);
         if (os != null) transformer.setParameter("os", os);
         String client = getClient(userAgent);
         if (client != null) transformer.setParameter("client", client);
 
-        String mobileDevice = (String) getEnvironment().getRequest().getSession(true).getAttribute("yanel.mobile");
-        //TODO: String mobileDevice = (String) getEnvironment().getRequest().getSession(true).getAttribute(org.wyona.yanel.servlet.YanelServlet.MOBILE_KEY);
-        if (mobileDevice != null && !mobileDevice.equals("false")) {
-        //if (isMobileDevice(userAgent)) {
+        // INFO: Set whether default or mobile device
+        if (isMobileDevice()) {
             transformer.setParameter("is-mobile-device", "true");
         } else {
             transformer.setParameter("is-mobile-device", "false");
         }
 
         // Set query string
-        String queryString = request.getQueryString();
+        String queryString = getEnvironment().getRequest().getQueryString();
         if (queryString != null) {
             transformer.setParameter("yanel.request.query-string", queryString);
         }
@@ -496,19 +490,16 @@
 
     /**
      * Check whether user agent is a mobile device
-     * @param userAgent User agent identifier, e.g. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" or "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3 like Mac OS X; fr-fr) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8F190 Safari/6533.18.5" (also see for example http://deviceatlas.com/node/1826129)
      */
-/*
-    private boolean isMobileDevice(String userAgent) {
-        //log.debug("Check user agent: " + userAgent);
-        if (userAgent.indexOf("iPhone") > 0) {
-            log.warn("DEBUG: User agent seems to be an iPhone: " + userAgent);
+    protected boolean isMobileDevice() {
+        String mobileDevice = (String) getEnvironment().getRequest().getSession(true).getAttribute("yanel.mobile");
+        //TODO: String mobileDevice = (String) getEnvironment().getRequest().getSession(true).getAttribute(org.wyona.yanel.servlet.YanelServlet.MOBILE_KEY);
+        if (mobileDevice != null && !mobileDevice.equals("false")) {
             return true;
         } else {
             return false;
         }
     }
-*/
 
     /**
      * Get operating system
@@ -605,4 +596,16 @@
         }
         return language;
     }
+
+    /**
+     * Get user agent
+     */
+    protected String getUserAgent() {
+        String userAgent = getEnvironment().getRequest().getHeader("User-Agent");
+        if (userAgent == null) {
+             log.warn("Header contains no User-Agent!");
+             userAgent = "null";
+        }
+        return userAgent;
+    }
 }



More information about the Yanel-commits mailing list