From 63bf4b5fa8ce166692fdf8781b7d8cbfbe9867a9 Mon Sep 17 00:00:00 2001 From: Bob Weinand Date: Sat, 15 Jul 2023 14:56:40 +0200 Subject: [PATCH] Add flutter support for extended bitrate --- flutter/lib/common/widgets/dialog.dart | 31 +++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/flutter/lib/common/widgets/dialog.dart b/flutter/lib/common/widgets/dialog.dart index 9f4eb1427..e42a2f01c 100644 --- a/flutter/lib/common/widgets/dialog.dart +++ b/flutter/lib/common/widgets/dialog.dart @@ -1220,7 +1220,8 @@ customImageQualityDialog(SessionID sessionId, String id, FFI ffi) async { qualityInitValue = quality != null && quality.isNotEmpty ? quality[0].toDouble() : 50.0; const qualityMinValue = 10.0; - const qualityMaxValue = 100.0; + const qualityMoreThresholdValue = 100.0; + const qualityMaxValue = 4000.0; if (qualityInitValue < qualityMinValue) { qualityInitValue = qualityMinValue; } @@ -1228,6 +1229,8 @@ customImageQualityDialog(SessionID sessionId, String id, FFI ffi) async { qualityInitValue = qualityMaxValue; } final RxDouble qualitySliderValue = RxDouble(qualityInitValue); + final moreQualityInitValue = qualityInitValue > qualityMoreThresholdValue; + final RxBool moreQualityChecked = RxBool(moreQualityInitValue); final debouncerQuality = Debouncer( Duration(milliseconds: 1000), onChanged: (double v) { @@ -1242,7 +1245,9 @@ customImageQualityDialog(SessionID sessionId, String id, FFI ffi) async { child: Slider( value: qualitySliderValue.value, min: qualityMinValue, - max: qualityMaxValue, + max: moreQualityChecked.value + ? qualityMaxValue + : qualityMoreThresholdValue, divisions: 18, onChanged: (double value) { qualitySliderValue.value = value; @@ -1256,11 +1261,31 @@ customImageQualityDialog(SessionID sessionId, String id, FFI ffi) async { style: const TextStyle(fontSize: 15), )), Expanded( - flex: 2, + flex: 1, child: Text( translate('Bitrate'), style: const TextStyle(fontSize: 15), )), + Expanded( + flex: 1, + child: Row( + children: [ + Checkbox( + value: moreQualityChecked.value, + onChanged: (bool? value) { + moreQualityChecked.value = value!; + if (!value && + qualitySliderValue.value > qualityMoreThresholdValue) { + qualitySliderValue.value = qualityMoreThresholdValue; + debouncerQuality.value = qualityMoreThresholdValue; + } + }, + ).marginOnly(right: 5), + Expanded( + child: Text(translate('More')), + ) + ], + )), ], )); // fps