/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['field1' => [], 'timestamp_since_start' => null, 'field3' => null, 'location_fix' => [], 'gps_info' => [], 'field6' => [], 'sensor_info' => [], 'device_info' => null, 'activity_status' => null, 'location_hash1' => null, 'field11' => null, 'field12' => null, 'field13' => null, 'field14' => null, 'field15' => null, 'field16' => null, 'field17' => null, 'field18' => null, 'field19' => null, 'location_hash2' => null, 'field21' => null, 'session_hash' => null, 'timestamp' => null, 'request_hash' => [], 'unknown25' => null], $values); $message->setTimestampSinceStart($values['timestamp_since_start']); $message->setField3($values['field3']); $message->setDeviceInfo($values['device_info']); $message->setActivityStatus($values['activity_status']); $message->setLocationHash1($values['location_hash1']); $message->setField11($values['field11']); $message->setField12($values['field12']); $message->setField13($values['field13']); $message->setField14($values['field14']); $message->setField15($values['field15']); $message->setField16($values['field16']); $message->setField17($values['field17']); $message->setField18($values['field18']); $message->setField19($values['field19']); $message->setLocationHash2($values['location_hash2']); $message->setField21($values['field21']); $message->setSessionHash($values['session_hash']); $message->setTimestamp($values['timestamp']); $message->setUnknown25($values['unknown25']); foreach ($values['field1'] as $item) { $message->addField1($item); } foreach ($values['location_fix'] as $item) { $message->addLocationFix($item); } foreach ($values['gps_info'] as $item) { $message->addGpsInfo($item); } foreach ($values['field6'] as $item) { $message->addField6($item); } foreach ($values['sensor_info'] as $item) { $message->addSensorInfo($item); } foreach ($values['request_hash'] as $item) { $message->addRequestHash($item); } return $message; }