private OperatingSystem getOS(String userAgent) { if (userAgent == null) { return new OperatingSystem(OperatingSystem.OperatingSystemFamily.UNKNOWN); } for (OperatingSystem.OperatingSystemFamily osFamily : OperatingSystem.OperatingSystemFamily.values()) { if (userAgent.contains(osFamily.getUserAgentString())) { return new OperatingSystem(osFamily); } } return new OperatingSystem(OperatingSystem.OperatingSystemFamily.UNKNOWN); }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } UserAgent userAgent = (UserAgent) o; if (!browser.equals(userAgent.browser)) { return false; } if (!operatingSystem.equals(userAgent.operatingSystem)) { return false; } return true; }
case FIREFOX: case GECKO: if (operatingSystem.getOperatingSystemFamily() == WINDOWS || operatingSystem.getOperatingSystemFamily() == LINUX) else if (operatingSystem.getOperatingSystemFamily() == MAC) return "Shift+Esc"; case SAFARI: if (operatingSystem.getOperatingSystemFamily() == WINDOWS) if (operatingSystem.getOperatingSystemFamily() == WINDOWS) else if (operatingSystem.getOperatingSystemFamily() == MAC)
/** * Returns TRUE if the browser requires a Filter style opacity statement for PNGs * * <ul> * <li> IE 5 upwards on Windows</li> * </ul> * * @param userAgent the user agent header from the request * @return true if the browser is IE 5+ on Windows */ public static boolean isFilterBasedPngOpacity(String userAgent) { if (StringUtils.isBlank(userAgent)) { return false; } UserAgentUtil userAgentUtil = new UserAgentUtilImpl(); final UserAgentUtil.UserAgent userAgentInfo = userAgentUtil.getUserAgentInfo(userAgent); return userAgentInfo.getOperatingSystem().getOperatingSystemFamily() == WINDOWS && (userAgentInfo.getBrowser().getBrowserFamily() == MSIE || userAgentInfo.getBrowser().getBrowserFamily() == IE); } }
@Override public int hashCode() { int result = browser.hashCode(); result = 31 * result + operatingSystem.hashCode(); return result; } }