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 }