import Toybox.Lang; // Value object for a protocol entry. Serialized as a plain Dictionary // so Application.Storage can persist it. (:glance) class Event { public var type as String; public var timestamp as Number; // unix seconds public var lat as Float or Null; public var lon as Float or Null; public var accuracy as Float or Null; public var address as String or Null; function initialize(type as String, timestamp as Number, lat as Float or Null, lon as Float or Null, accuracy as Float or Null) { self.type = type; self.timestamp = timestamp; self.lat = lat; self.lon = lon; self.accuracy = accuracy; self.address = null; } function toDict() as Dictionary { var d = { "t" => type, "ts" => timestamp, "lat" => lat, "lon" => lon, "acc" => accuracy }; if (address != null) { d["addr"] = address; } return d; } static function fromDict(d as Dictionary) as Event { var evt = new Event( d["t"] as String, d["ts"] as Number, d["lat"] as Float or Null, d["lon"] as Float or Null, d["acc"] as Float or Null ); if (d.hasKey("addr")) { evt.address = d["addr"] as String or Null; } return evt; } }