diff --git a/flutter/lib/desktop/widgets/remote_toolbar.dart b/flutter/lib/desktop/widgets/remote_toolbar.dart index 88638f0b1..240add919 100644 --- a/flutter/lib/desktop/widgets/remote_toolbar.dart +++ b/flutter/lib/desktop/widgets/remote_toolbar.dart @@ -478,7 +478,7 @@ class _RemoteToolbarState extends State { toolbarItems.add(_ChatMenu(id: widget.id, ffi: widget.ffi)); toolbarItems.add(_VoiceCallMenu(id: widget.id, ffi: widget.ffi)); } - toolbarItems.add(_RecordMenu(ffi: widget.ffi)); + toolbarItems.add(_RecordMenu()); toolbarItems.add(_CloseMenu(id: widget.id, ffi: widget.ffi)); return Column( mainAxisSize: MainAxisSize.min, @@ -1370,12 +1370,11 @@ class _ResolutionsMenuState extends State<_ResolutionsMenu> { } for (final r in resolutions) { - if (r.width == _localResolution!.width && - r.height == _localResolution!.height) { + if (r.width == _localResolution!.width && r.height == _localResolution!.height) { return r; } } - + return null; } @@ -1646,17 +1645,16 @@ class _VoiceCallMenu extends StatelessWidget { } class _RecordMenu extends StatelessWidget { - final FFI ffi; - const _RecordMenu({Key? key, required this.ffi}) : super(key: key); + const _RecordMenu({Key? key}) : super(key: key); @override Widget build(BuildContext context) { - var ffiModel = Provider.of(context); + var ffi = Provider.of(context); var recordingModel = Provider.of(context); final visible = - recordingModel.start || ffiModel.permissions['recording'] != false; + recordingModel.start || ffi.permissions['recording'] != false; if (!visible) return Offstage(); - final menuButton = _IconMenuButton( + return _IconMenuButton( assetName: 'assets/rec.svg', tooltip: recordingModel.start ? 'Stop session recording' @@ -1669,14 +1667,6 @@ class _RecordMenu extends StatelessWidget { ? _ToolbarTheme.hoverRedColor : _ToolbarTheme.hoverBlueColor, ); - return ChangeNotifierProvider.value( - value: ffi.qualityMonitorModel, - child: Consumer( - builder: (context, model, child) => Offstage( - // If already started, AV1->Hidden/Stop, Other->Start, same as actual - offstage: model.data.codecFormat == 'AV1', - child: menuButton, - ))); } } diff --git a/libs/scrap/src/common/record.rs b/libs/scrap/src/common/record.rs index 2893cbf18..9de70ae14 100644 --- a/libs/scrap/src/common/record.rs +++ b/libs/scrap/src/common/record.rs @@ -101,9 +101,6 @@ impl DerefMut for Recorder { impl Recorder { pub fn new(mut ctx: RecorderContext) -> ResultType { - if ctx.format == CodecFormat::AV1 { - bail!("not support av1 recording"); - } ctx.set_filename()?; let recorder = match ctx.format { CodecFormat::VP8 | CodecFormat::VP9 => Recorder { diff --git a/src/ui/header.tis b/src/ui/header.tis index a6cb2645d..838514234 100644 --- a/src/ui/header.tis +++ b/src/ui/header.tis @@ -144,7 +144,7 @@ class Header: Reactor.Component { {svg_action} {svg_display} {svg_keyboard} - {recording_enabled && qualityMonitorData[4] != "AV1" ? {recording ? svg_recording_on : svg_recording_off} : ""} + {recording_enabled ? {recording ? svg_recording_on : svg_recording_off} : ""} {this.renderKeyboardPop()} {this.renderDisplayPop()} {this.renderActionPop()} diff --git a/src/ui/remote.tis b/src/ui/remote.tis index 022d43668..a99cd188b 100644 --- a/src/ui/remote.tis +++ b/src/ui/remote.tis @@ -522,7 +522,6 @@ handler.updateQualityStatus = function(speed, fps, delay, bitrate, codec_format) bitrate ? qualityMonitorData[3] = bitrate:null; codec_format ? qualityMonitorData[4] = codec_format:null; qualityMonitor.update(); - if (codec_format) header.update(); } handler.setPermission = function(name, enabled) {