Browse Source

WebBrowser.isWindowsPhone() is added (#14425).

Change-Id: Ia279c4da78ca04e0d3727b605e2ce68b99e8cd65
tags/7.4.0.beta1
Denis Anisimov 9 years ago
parent
commit
174dc3530e

+ 9
- 1
client/tests/src/com/vaadin/client/TestVBrowserDetailsUserAgentParser.java View File

@@ -2,6 +2,8 @@ package com.vaadin.client;

import junit.framework.TestCase;

import org.junit.Assert;

import com.vaadin.shared.VBrowserDetails;

public class TestVBrowserDetailsUserAgentParser extends TestCase {
@@ -404,7 +406,7 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
assertIE(bd);
assertBrowserMajorVersion(bd, 11);
assertBrowserMinorVersion(bd, 0);
assertWindows(bd);
assertWindows(bd, true);
}

/*
@@ -538,11 +540,17 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
}

private void assertWindows(VBrowserDetails browserDetails) {
assertWindows(browserDetails, false);
}

private void assertWindows(VBrowserDetails browserDetails,
boolean isWindowsPhone) {
assertFalse(browserDetails.isLinux());
assertTrue(browserDetails.isWindows());
assertFalse(browserDetails.isMacOSX());
assertFalse(browserDetails.isIOS());
assertFalse(browserDetails.isAndroid());
Assert.assertEquals(isWindowsPhone, browserDetails.isWindowsPhone());
}

private void assertLinux(VBrowserDetails browserDetails) {

+ 11
- 0
server/src/com/vaadin/server/WebBrowser.java View File

@@ -258,6 +258,17 @@ public class WebBrowser implements Serializable {
return browserDetails.isWindows();
}

/**
* Tests whether the user is using Windows Phone.
*
* @return true if the user is using Windows Phone, false if the user is not
* using Windows Phone or if no information on the browser is
* present
*/
public boolean isWindowsPhone() {
return browserDetails.isWindowsPhone();
}

/**
* Tests if the browser is run on Android.
*

+ 12
- 0
shared/src/com/vaadin/shared/VBrowserDetails.java View File

@@ -42,6 +42,8 @@ public class VBrowserDetails implements Serializable {
private boolean isOpera = false;
private boolean isIE = false;

private boolean isWindowsPhone;

private OperatingSystem os = OperatingSystem.UNKNOWN;

public enum OperatingSystem {
@@ -162,6 +164,7 @@ public class VBrowserDetails implements Serializable {
// Operating system
if (userAgent.contains("windows ")) {
os = OperatingSystem.WINDOWS;
isWindowsPhone = userAgent.contains("windows phone");
} else if (userAgent.contains("linux")) {
if (userAgent.contains("android")) {
os = OperatingSystem.ANDROID;
@@ -424,6 +427,15 @@ public class VBrowserDetails implements Serializable {
return os == OperatingSystem.WINDOWS;
}

/**
* Tests if the browser is run on Windows Phone.
*
* @return true if run on Windows Phone, false otherwise
*/
public boolean isWindowsPhone() {
return isWindowsPhone;
}

/**
* Tests if the browser is run on Mac OSX.
*

Loading…
Cancel
Save