stop method
Implementation
TripSummary? stop() {
_subscription?.cancel();
_subscription = null;
final state = _state;
_state = state == null
? null
: TripState(
tripId: state.tripId,
createdAt: state.createdAt,
startedAt: state.startedAt,
startLocation: state.startLocation,
lastLocation: state.lastLocation,
distanceMeters: state.distanceMeters,
idleSeconds: state.idleSeconds,
maxSpeedKph: state.maxSpeedKph,
started: state.started,
ended: true,
);
if (state == null || !state.started) {
return null;
}
final endedAt = DateTime.now().toUtc();
final summary = state.toSummary(endedAt);
if (summary != null) {
_controller.add(TripEvent(
type: TripEventType.tripEnd,
tripId: state.tripId,
timestamp: endedAt,
location: state.lastLocation,
summary: summary,
isMoving: false,
));
}
_store?.clear();
return summary;
}