mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-25 05:23:51 +00:00
Merge branch 'master' into android_apps
Conflicts: java/com.sap.sailing.gwt.ui/SailingGWT.launch java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/FlatSmartphoneUuidAndGPSFixMovingJsonDeserializer.java mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/services/TrackingService.java
This commit is contained in:
commit
fc5cabb080
133 files changed
+2035
-1267
No files matched your search
+33
-20
@@ -1,7 +1,10 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedImpl;
|
||||
@@ -12,35 +15,45 @@ import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
/**
|
||||
* Make serialization on the smartphone easier by providing a flat structure rather
|
||||
* than nested JSON documents.
|
||||
* Make serialization on the smartphone easier by providing a flat structure rather than nested JSON documents.
|
||||
*
|
||||
* @author Fredrik Teschke
|
||||
*
|
||||
*/
|
||||
public class FlatSmartphoneUuidAndGPSFixMovingJsonDeserializer implements JsonDeserializer<Pair<UUID, GPSFixMoving>> {
|
||||
public class FlatSmartphoneUuidAndGPSFixMovingJsonDeserializer implements
|
||||
JsonDeserializer<Pair<UUID, List<GPSFixMoving>>> {
|
||||
public static final String DEVICE_UUID = "deviceUuid";
|
||||
public static final String LON_DEG = "lonDeg";
|
||||
public static final String LAT_DEG = "latDeg";
|
||||
public static final String TIME_MILLIS = "timeMillis";
|
||||
public static final String SPEED_M_PER_S = "speedMperS";
|
||||
public static final String BEARING_DEG = "bearingDeg";
|
||||
public static final String FIXES = "fixes";
|
||||
public static final String LON_DEG = "longitude";
|
||||
public static final String LAT_DEG = "latitude";
|
||||
public static final String TIME_MILLIS = "timestamp";
|
||||
public static final String SPEED_M_PER_S = "speed";
|
||||
public static final String BEARING_DEG = "course";
|
||||
public static final String ACCURACY = "accuracy";
|
||||
public static final String ALTITUDE = "altitude";
|
||||
public static final String PROVIDER = "provider";
|
||||
|
||||
|
||||
@Override
|
||||
public Pair<UUID, GPSFixMoving> deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
public Pair<UUID, List<GPSFixMoving>> deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
UUID device = UUID.fromString(object.get(DEVICE_UUID).toString());
|
||||
double lonDeg = Double.parseDouble(object.get(LON_DEG).toString());
|
||||
double latDeg = Double.parseDouble(object.get(LAT_DEG).toString());
|
||||
long timeMillis = Long.parseLong(object.get(TIME_MILLIS).toString());
|
||||
double speedMperS = Double.parseDouble(object.get(SPEED_M_PER_S).toString());
|
||||
double speedKnots = new MeterPerSecondSpeedImpl(speedMperS).getKnots();
|
||||
double bearingDeg = Double.parseDouble(object.get(BEARING_DEG).toString());
|
||||
double accuracy = Double.parseDouble(object.get(ACCURACY).toString());
|
||||
double altitude = Double.parseDouble(object.get(ALTITUDE).toString());
|
||||
String provider = object.get(PROVIDER).toString();
|
||||
GPSFixMoving fix = GPSFixMovingImpl.create(lonDeg, latDeg, timeMillis, speedKnots, bearingDeg, accuracy, altitude, provider);
|
||||
return new Pair<UUID, GPSFixMoving>(device, fix);
|
||||
JSONArray jsonFixes = Helpers.getNestedArraySafe(object, FIXES);
|
||||
List<GPSFixMoving> fixes = new ArrayList<GPSFixMoving>();
|
||||
for (int i = 0; i < jsonFixes.size(); i++) {
|
||||
JSONObject fixObject = Helpers.toJSONObjectSafe(jsonFixes.get(i));
|
||||
double lonDeg = Double.parseDouble(fixObject.get(LON_DEG).toString());
|
||||
double latDeg = Double.parseDouble(fixObject.get(LAT_DEG).toString());
|
||||
long timeMillis = Long.parseLong(fixObject.get(TIME_MILLIS).toString());
|
||||
double speedMperS = Double.parseDouble(fixObject.get(SPEED_M_PER_S).toString());
|
||||
double speedKnots = new MeterPerSecondSpeedImpl(speedMperS).getKnots();
|
||||
double bearingDeg = Double.parseDouble(fixObject.get(BEARING_DEG).toString());
|
||||
double accuracy = Double.parseDouble(object.get(ACCURACY).toString());
|
||||
double altitude = Double.parseDouble(object.get(ALTITUDE).toString());
|
||||
String provider = object.get(PROVIDER).toString();
|
||||
GPSFixMoving fix = GPSFixMovingImpl.create(lonDeg, latDeg, timeMillis, speedKnots, bearingDeg);
|
||||
fixes.add(fix);
|
||||
}
|
||||
|
||||
return new Pair<UUID, List<GPSFixMoving>>(device, fixes);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user