You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devicemap.apache.org by wk...@apache.org on 2016/01/01 19:55:26 UTC
svn commit: r1722533 -
/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java
Author: wkeil
Date: Fri Jan 1 18:55:26 2016
New Revision: 1722533
URL: http://svn.apache.org/viewvc?rev=1722533&view=rev
Log:
DMAP-186: Some arguments like debug/log won't work in Java Console
Task-Url: https://issues.apache.org/jira/browse/DMAP-186
Modified:
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java
Modified: devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java?rev=1722533&r1=1722532&r2=1722533&view=diff
==============================================================================
--- devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java (original)
+++ devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java Fri Jan 1 18:55:26 2016
@@ -162,6 +162,7 @@ public class DeviceMapClient {
private static final String DEVICE_OS_VERSION = "device_os_version";
private static final String ANDROID = "Android";
+ private static final String LIKE_MAC = "like Mac OS X";
private DeviceType fixFromUserAgent(final DeviceType device, final UserAgent userAgent) {
String pattern = userAgent.getPatternElementsInside();
@@ -178,13 +179,27 @@ public class DeviceMapClient {
String[] parts = pattern.split(";");
for (String part : parts) {
- if (part.trim().startsWith(ANDROID)) {
- final String versionPart = part.trim().substring(ANDROID.length()).trim();
- final String versionExisting = attributes.get(DEVICE_OS_VERSION);
- if (!versionPart.equals(versionExisting)) {
- LOG.fine("Fixing '" + versionExisting +"' to '" + versionPart + "'" );
- attributes.put(DEVICE_OS_VERSION, versionPart);
- device.setAttributes(attributes);
+ if (part != null) {
+ if (part.trim().startsWith(ANDROID)) {
+ final String versionPart = part.trim().substring(ANDROID.length()).trim();
+ final String versionExisting = attributes.get(DEVICE_OS_VERSION);
+ if (!versionPart.equals(versionExisting)) {
+ LOG.fine("Fixing '" + versionExisting +"' to '" + versionPart + "'" );
+ attributes.put(DEVICE_OS_VERSION, versionPart);
+ device.setAttributes(attributes);
+ }
+ }
+ if (part.trim().endsWith(LIKE_MAC)) {
+ String versionCandidate = part.trim().substring(0, part.trim().length() - LIKE_MAC.length()).trim();
+ if (versionCandidate.contains("OS")) {
+ final String versionPart = versionCandidate.substring(versionCandidate.indexOf("OS")+2).trim().replaceAll("_", ".");
+ final String versionExisting = attributes.get(DEVICE_OS_VERSION);
+ if (!versionPart.equals(versionExisting)) {
+ LOG.fine("Fixing '" + versionExisting +"' to '" + versionPart + "'" );
+ attributes.put(DEVICE_OS_VERSION, versionPart);
+ device.setAttributes(attributes);
+ }
+ }
}
}
}