From f597c0b45d52006dba9e4b8393674dd3c3c60f6d Mon Sep 17 00:00:00 2001 From: Mattia Pini Date: Tue, 25 Jan 2022 10:39:59 +0100 Subject: [PATCH] Fix #1, #2 and #4 Fix stepValue not saved during footswitch cofiguration Fix numpad not closing when Confirm/Done button on keyboard pressed Add Midi value on below Midi value off on footswitch configuration Add missing Midi channel value in footswitch configuration --- lib/ui/component/custom_textfield.dart | 2 + .../footswitch_configuration.dart | 51 ++++++++++++++++--- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/lib/ui/component/custom_textfield.dart b/lib/ui/component/custom_textfield.dart index 907284a..5892942 100644 --- a/lib/ui/component/custom_textfield.dart +++ b/lib/ui/component/custom_textfield.dart @@ -66,6 +66,8 @@ class _CustomNumberFieldState extends State { if (interval >= widget.minNumber && interval <= widget.maxNumber) { widget.onNumberChanged(interval); } + // close the keyboard on Done pressed + FocusManager.instance.primaryFocus?.unfocus(); }, maxLength: 3, maxLines: 1, diff --git a/lib/ui/footswitch_page/footswitch_configuration/footswitch_configuration.dart b/lib/ui/footswitch_page/footswitch_configuration/footswitch_configuration.dart index dc68c3b..b936b4e 100644 --- a/lib/ui/footswitch_page/footswitch_configuration/footswitch_configuration.dart +++ b/lib/ui/footswitch_page/footswitch_configuration/footswitch_configuration.dart @@ -184,8 +184,10 @@ class FootswitchEventWidget extends StatelessWidget { TextStyle(color: AppColors.textColor, fontSize: 14), ), CustomNumberField( - (interval) => footswitchEvent.copyWith( - stepValue: interval, positiveStep: interval >= 0), + (interval) => onConfigurationChanged( + footswitchEvent.copyWith( + stepValue: interval, + positiveStep: interval >= 0)), minNumber: -127, maxNumber: 127, text: footswitchEvent.stepValue.toString(), @@ -239,6 +241,24 @@ class FootswitchEventWidget extends StatelessWidget { ], ), marginWidget, + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'Midi Value on:', + style: + TextStyle(color: AppColors.textColor, fontSize: 14), + ), + CustomNumberField( + (value) => onConfigurationChanged( + footswitchEvent.copyWith(midiValueOff: value)), + minNumber: 0, + maxNumber: 127, + text: footswitchEvent.midiValueOn.toString(), + ) + ], + ), + marginWidget, if (showRepeat) Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -302,19 +322,36 @@ class FootswitchEventWidget extends StatelessWidget { ], ), marginWidget, + if (footswitchEvent.eventType != EventType.ON_OFF) ...[ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'Midi value:', + style: TextStyle(color: AppColors.textColor, fontSize: 14), + ), + CustomNumberField( + (value) => onConfigurationChanged( + footswitchEvent.copyWith(midiValueOn: value)), + text: footswitchEvent.midiValueOn.toString()), + ], + ), + marginWidget, + ], Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - 'Midi value:', + 'Midi channel:', style: TextStyle(color: AppColors.textColor, fontSize: 14), ), CustomNumberField( - (value) => onConfigurationChanged( - footswitchEvent.copyWith(midiValueOn: value)), - text: footswitchEvent.midiValueOn.toString()), + (value) => onConfigurationChanged( + footswitchEvent.copyWith(midiChannel: value)), + text: footswitchEvent.midiChannel.toString(), + ) ], - ), + ) ], ); }