Bug 1259598 - "Add new information fields to geolocation stumbles". r=michelangelo sr=hschlichting

This commit is contained in:
Victor Ng 2016-04-26 13:58:00 +02:00
Родитель efe3864d03
Коммит 10fc8c5194
2 изменённых файлов: 28 добавлений и 0 удалений

Просмотреть файл

@ -17,6 +17,9 @@ public final class DataStorageContract {
public static final String WIFI = "wifi";
public static final String CELL_COUNT = "cell_count";
public static final String WIFI_COUNT = "wifi_count";
public static final String HEADING = "heading";
public static final String SPEED = "speed";
public static final String PRESSURE = "pressure";
}
public static class Stats {

Просмотреть файл

@ -23,6 +23,8 @@ public final class StumblerBundle implements Parcelable {
private final Location mGpsPosition;
private final Map<String, ScanResult> mWifiData;
private final Map<String, CellInfo> mCellData;
private float mPressureHPA;
public void wasSent() {
mGpsPosition.setTime(System.currentTimeMillis());
@ -115,6 +117,13 @@ public final class StumblerBundle implements Parcelable {
item.put(DataStorageContract.ReportsColumns.LAT, Math.floor(mGpsPosition.getLatitude() * 1.0E6) / 1.0E6);
item.put(DataStorageContract.ReportsColumns.LON, Math.floor(mGpsPosition.getLongitude() * 1.0E6) / 1.0E6);
item.put(DataStorageContract.ReportsColumns.HEADING, mGpsPosition.getBearing());
item.put(DataStorageContract.ReportsColumns.SPEED, mGpsPosition.getSpeed());
if (mPressureHPA != 0.0) {
item.put(DataStorageContract.ReportsColumns.PRESSURE, mPressureHPA);
}
if (mGpsPosition.hasAccuracy()) {
item.put(DataStorageContract.ReportsColumns.ACCURACY, (int) Math.ceil(mGpsPosition.getAccuracy()));
}
@ -142,16 +151,32 @@ public final class StumblerBundle implements Parcelable {
item.put(DataStorageContract.ReportsColumns.CELL_COUNT, cellJSON.length());
JSONArray wifis = new JSONArray();
long gpsTimeSinceBootInMS = (mGpsPosition.getElapsedRealtimeNanos()/1000000);
for (ScanResult s : mWifiData.values()) {
JSONObject wifiEntry = new JSONObject();
wifiEntry.put("key", s.BSSID);
wifiEntry.put("frequency", s.frequency);
wifiEntry.put("signal", s.level);
long wifiTimeSinceBootInMS = (s.timestamp / 1000);
long ageMS = wifiTimeSinceBootInMS - gpsTimeSinceBootInMS;
wifiEntry.put("age", ageMS);
wifis.put(wifiEntry);
}
item.put(DataStorageContract.ReportsColumns.WIFI, wifis);
item.put(DataStorageContract.ReportsColumns.WIFI_COUNT, wifis.length());
return item;
}
public void addPressure(float hPa) {
mPressureHPA = hPa;
}
}