ui/NavManager: parse location timestamp from API (#29665)

old-commit-hash: 3d1a6f6146
beeps
Cameron Clough 2 years ago committed by GitHub
parent 2e4a23510a
commit 69d7ecac9c
  1. 8
      selfdrive/ui/qt/maps/map_settings.cc

@ -15,6 +15,11 @@ static bool locationEqual(const QJsonValue &v1, const QJsonValue &v2) {
return v1["latitude"] == v2["latitude"] && v1["longitude"] == v2["longitude"];
}
static qint64 convertTimestampToEpoch(const QString &timestamp) {
QDateTime dt = QDateTime::fromString(timestamp, Qt::ISODate);
return dt.isValid() ? dt.toSecsSinceEpoch() : 0;
}
MapSettings::MapSettings(bool closeable, QWidget *parent) : QFrame(parent) {
setContentsMargins(0, 0, 0, 0);
setAttribute(Qt::WA_NoMousePropagation);
@ -322,7 +327,8 @@ void NavManager::parseLocationsResponse(const QString &response, bool success) {
auto remote_locations = doc.array();
for (QJsonValueRef loc : remote_locations) {
auto obj = loc.toObject();
obj.insert("time", getLastActivity(obj));
auto serverTime = convertTimestampToEpoch(obj["modified"].toString());
obj.insert("time", qMax(serverTime, getLastActivity(obj)));
loc = obj;
}

Loading…
Cancel
Save