]> source.dussan.org Git - vaadin-framework.git/commitdiff
isIPad() and isIPhone() methods are added to WebBrowser (#14424,#14423).
authorDenis Anisimov <denis@vaadin.com>
Sun, 7 Sep 2014 13:33:30 +0000 (16:33 +0300)
committerDenis Anisimov <denis@vaadin.com>
Thu, 9 Oct 2014 11:35:48 +0000 (14:35 +0300)
Change-Id: I7b3556d5f9c1dd84beec638d7fbff1c5382070a4

client/tests/src/com/vaadin/client/TestVBrowserDetailsUserAgentParser.java
server/src/com/vaadin/server/WebBrowser.java
shared/src/com/vaadin/shared/VBrowserDetails.java

index dd892b19ec0678f01d9b96a290dc5c82fe6ebf66..6cd06301377083e79f10f1c39edc7485cfbaa98c 100644 (file)
@@ -85,6 +85,7 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
         // assertBrowserMinorVersion(bd, 1);
         assertEngineVersion(bd, 536f);
         assertIOS(bd, 6, 1);
+        assertIPhone(bd);
     }
 
     public void testIPhoneIOS5() {
@@ -95,6 +96,7 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
         assertBrowserMinorVersion(bd, 1);
         assertEngineVersion(bd, 534f);
         assertIOS(bd, 5, 1);
+        assertIPhone(bd);
     }
 
     public void testIPhoneIOS4() {
@@ -105,6 +107,7 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
         assertBrowserMinorVersion(bd, 0);
         assertEngineVersion(bd, 532f);
         assertIOS(bd, 4, 0);
+        assertIPhone(bd);
     }
 
     public void testIPadIOS4() {
@@ -115,6 +118,7 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
         assertBrowserMinorVersion(bd, 0);
         assertEngineVersion(bd, 533f);
         assertIOS(bd, 4, 3);
+        assertIPad(bd);
     }
 
     public void testAndroid21() {
@@ -539,6 +543,16 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
         assertOSMinorVersion(browserDetails, minorVersion);
     }
 
+    private void assertIPhone(VBrowserDetails browserDetails) {
+        assertTrue(browserDetails.isIPhone());
+        assertFalse(browserDetails.isIPad());
+    }
+
+    private void assertIPad(VBrowserDetails browserDetails) {
+        assertFalse(browserDetails.isIPhone());
+        assertTrue(browserDetails.isIPad());
+    }
+
     private void assertWindows(VBrowserDetails browserDetails) {
         assertWindows(browserDetails, false);
     }
index 17ba6756b8c5ee8643b27fe3370786ec76f94816..cb5979d6126fa3cebaac2535e47134ff8ea49549 100644 (file)
@@ -290,6 +290,26 @@ public class WebBrowser implements Serializable {
         return browserDetails.isIOS();
     }
 
+    /**
+     * Tests if the browser is run on IPhone.
+     * 
+     * @return true if run on IPhone false if the user is not using IPhone or if
+     *         no information on the browser is present
+     */
+    public boolean isIPhone() {
+        return browserDetails.isIPhone();
+    }
+
+    /**
+     * Tests if the browser is run on IPad.
+     * 
+     * @return true if run on IPad false if the user is not using IPad or if no
+     *         information on the browser is present
+     */
+    public boolean isIPad() {
+        return browserDetails.isIPad();
+    }
+
     /**
      * Returns the browser-reported TimeZone offset in milliseconds from GMT.
      * This includes possible daylight saving adjustments, to figure out which
index 5fbf9bbb394c8763a754333e94a6bbdd2fc9424c..a85d031c490b0b12d63ec361389afc236bb58dd2 100644 (file)
@@ -43,6 +43,8 @@ public class VBrowserDetails implements Serializable {
     private boolean isIE = false;
 
     private boolean isWindowsPhone;
+    private boolean isIPad;
+    private boolean isIPhone;
 
     private OperatingSystem os = OperatingSystem.UNKNOWN;
 
@@ -176,8 +178,9 @@ public class VBrowserDetails implements Serializable {
         } else if (userAgent.contains("macintosh")
                 || userAgent.contains("mac osx")
                 || userAgent.contains("mac os x")) {
-            if (userAgent.contains("ipad") || userAgent.contains("ipod")
-                    || userAgent.contains("iphone")) {
+            isIPad = userAgent.contains("ipad");
+            isIPhone = userAgent.contains("iphone");
+            if (isIPad || userAgent.contains("ipod") || isIPhone) {
                 os = OperatingSystem.IOS;
                 parseIOSVersion(userAgent);
             } else {
@@ -473,6 +476,24 @@ public class VBrowserDetails implements Serializable {
         return os == OperatingSystem.IOS;
     }
 
+    /**
+     * Tests if the browser is run on iPhone.
+     * 
+     * @return
+     */
+    public boolean isIPhone() {
+        return isIPhone;
+    }
+
+    /**
+     * Tests if the browser is run on iPad.
+     * 
+     * @return
+     */
+    public boolean isIPad() {
+        return isIPad;
+    }
+
     /**
      * Returns the major version of the operating system. Currently only
      * supported for mobile devices (iOS/Android)