freemarkerdor/src/main/java/cz/xelfi/quoridor/freemarkerdor/UI.java
changeset 156 e3d6e326eac1
parent 152 07e3bcb65c1d
child 168 a705dedc07d8
     1.1 --- a/freemarkerdor/src/main/java/cz/xelfi/quoridor/freemarkerdor/UI.java	Thu Nov 19 09:35:29 2009 +0100
     1.2 +++ b/freemarkerdor/src/main/java/cz/xelfi/quoridor/freemarkerdor/UI.java	Sun Nov 29 09:12:55 2009 +0100
     1.3 @@ -40,6 +40,7 @@
     1.4  import java.io.InputStream;
     1.5  import java.net.URI;
     1.6  import java.util.HashMap;
     1.7 +import java.util.List;
     1.8  import java.util.Locale;
     1.9  import java.util.Map;
    1.10  import java.util.MissingResourceException;
    1.11 @@ -205,6 +206,10 @@
    1.12          if (format.length() == 0) {
    1.13              if (cFormat != null) {
    1.14                  format = cFormat.getValue();
    1.15 +            } else {
    1.16 +                if (isMobile(headers)) {
    1.17 +                    format = "small";
    1.18 +                }
    1.19              }
    1.20          } else {
    1.21              if (cFormat == null || !format.equals(cFormat.getValue())) {
    1.22 @@ -438,4 +443,22 @@
    1.23          return new Viewable(page, map);
    1.24      }
    1.25  
    1.26 +
    1.27 +    private static boolean isMobile(HttpHeaders headers) {
    1.28 +        final String[] keywords = {
    1.29 +            "Profile/MIDP",
    1.30 +        };
    1.31 +        List<String> agent = headers.getRequestHeader(HttpHeaders.USER_AGENT);
    1.32 +        if (agent != null) {
    1.33 +            for (String a : agent) {
    1.34 +                for (String k : keywords) {
    1.35 +                    if (a.contains(k)) {
    1.36 +                        return true;
    1.37 +                    }
    1.38 +                }
    1.39 +            }
    1.40 +        }
    1.41 +        return false;
    1.42 +    }
    1.43 +
    1.44  }