dispose method
Implementation
Future<void> dispose() async {
if (_isDisposed) {
log('⚠️ Ya se llamó dispose anteriormente');
return;
}
log('🗑️ Iniciando dispose de RemoteControl...');
_isDisposed = true;
// 1. Cerrar WebSocket
try {
_channel?.sink.close();
_isConnected = false;
log('✅ WebSocket cerrado');
} catch (e) {
log('⚠️ Error cerrando WebSocket: $e');
}
// 2. Cerrar StreamController de forma segura
try {
if (_commandController != null && !_commandController!.isClosed) {
await _commandController!.close();
log('✅ StreamController cerrado');
}
} catch (e) {
log('⚠️ Error cerrando StreamController: $e');
}
// 3. Detener captura de pantalla
try {
await stopScreenCapture();
log('✅ Screen capture detenido');
} catch (e) {
log('⚠️ Error deteniendo screen capture: $e');
}
// Cancelar timer de inactividad
_cancelInactivityTimer();
log('✅ Dispose completado');
}