stopRecording method
Implementation
Future<CockpitRecordingResult> stopRecording() {
final stopping = _recordingStop;
if (stopping != null) return stopping;
final session = _activeRecordingSession;
if (session == null) {
return Future<CockpitRecordingResult>.value(
CockpitRecordingResult(
state: CockpitRecordingState.failed,
failureReason: 'recordingNotActive',
),
);
}
final recorder = nativeRecording;
late final Future<CockpitRecordingResult> operation;
operation =
Future<CockpitRecordingResult>.sync(
() => recorder.stopRecording(session: session),
).whenComplete(() {
if (identical(_activeRecordingSession, session)) {
_activeRecordingSession = null;
}
if (identical(_recordingStop, operation)) {
_recordingStop = null;
}
});
_recordingStop = operation;
return operation;
}