diff --git a/fastlane/metadata/android/en-US/changelogs/19.txt b/fastlane/metadata/android/en-US/changelogs/19.txt new file mode 100644 index 0000000000000000000000000000000000000000..c20ed39173f1690cb6181457fe5d4c6cc0a061ab --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/19.txt @@ -0,0 +1 @@ +Use ActivityParameters widgets from flutter_custom_toolbox. diff --git a/fastlane/metadata/android/fr-FR/changelogs/19.txt b/fastlane/metadata/android/fr-FR/changelogs/19.txt new file mode 100644 index 0000000000000000000000000000000000000000..f732ebd3738d66fdff72e28b0cf0bb4b0684e030 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/19.txt @@ -0,0 +1 @@ +Utilisation des widgets ActivityParameters de flutter_custom_toolbox. diff --git a/lib/common/config/activity_page.dart b/lib/common/config/activity_page.dart index 54676921af9b12bef73a67cc608401eedc9ad98b..a8a322f3512db68bd937ccc9b4ea3011a2749ec3 100644 --- a/lib/common/config/activity_page.dart +++ b/lib/common/config/activity_page.dart @@ -1,19 +1,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; +import 'package:midisynth/cubit/activity/activity_cubit.dart'; +import 'package:midisynth/models/activity/activity.dart'; -import 'package:midisynth/common/ui/pages/editor.dart'; -import 'package:midisynth/common/ui/pages/home.dart'; -import 'package:midisynth/common/ui/pages/player.dart'; +import 'package:midisynth/ui/pages/editor.dart'; +import 'package:midisynth/ui/pages/home.dart'; +import 'package:midisynth/ui/pages/player.dart'; class ActivityPageItem { final String code; final Icon icon; - final Widget page; + final Widget Function({required Activity currentActivity})? builder; const ActivityPageItem({ required this.code, required this.icon, - required this.page, + required this.builder, }); } @@ -21,27 +23,33 @@ class ActivityPage { static const bool displayBottomNavBar = true; static const indexHome = 0; - static const pageHome = ActivityPageItem( + static final pageHome = ActivityPageItem( code: 'page_home', icon: Icon(UniconsLine.home), - page: PageHome(), + builder: ({required Activity currentActivity}) { + return PageHome(); + }, ); static const indexEditor = 1; - static const pageEditor = ActivityPageItem( + static final pageEditor = ActivityPageItem( code: 'page_editor', icon: Icon(UniconsLine.edit), - page: PageEditor(), + builder: ({required Activity currentActivity}) { + return PageEditor(); + }, ); static const indexPlayer = 2; - static const pagePlayer = ActivityPageItem( + static final pagePlayer = ActivityPageItem( code: 'page_player', icon: Icon(UniconsLine.play), - page: PagePlayer(), + builder: ({required Activity currentActivity}) { + return PagePlayer(); + }, ); - static const Map<int, ActivityPageItem> items = { + static final Map<int, ActivityPageItem> items = { indexHome: pageHome, indexEditor: pageEditor, indexPlayer: pagePlayer, @@ -54,6 +62,16 @@ class ActivityPage { } static Widget getWidget(int pageIndex) { - return items[pageIndex]?.page ?? pageHome.page; + return BlocBuilder<ActivityCubit, ActivityState>( + builder: (BuildContext context, ActivityState activityState) { + final Activity currentActivity = activityState.currentActivity; + + if (items.keys.contains(pageIndex)) { + return items[pageIndex]?.builder!(currentActivity: currentActivity) ?? Text('oups'); + } else { + return getWidget(defaultPageIndex); + } + }, + ); } } diff --git a/lib/common/cubit/nav/nav_cubit_pages.dart b/lib/common/cubit/nav/nav_cubit_pages.dart index 0dd60318a344508d859846e77513e91fc9ded506..8a17eeb02dd486fb2c556998c1e1129d7f625d10 100644 --- a/lib/common/cubit/nav/nav_cubit_pages.dart +++ b/lib/common/cubit/nav/nav_cubit_pages.dart @@ -17,6 +17,10 @@ class NavCubitPage extends HydratedCubit<int> { updateIndex(ActivityPage.indexHome); } + void goToPageEditor() { + updateIndex(ActivityPage.indexEditor); + } + @override int fromJson(Map<String, dynamic> json) { return ActivityPage.indexHome; diff --git a/lib/config/application_config.dart b/lib/config/application_config.dart index 590118862f9f00bc8d964d7b5b59b211345db9f8..a513c0fb46e5fbccb379f8af3074a2bbb37f0af7 100644 --- a/lib/config/application_config.dart +++ b/lib/config/application_config.dart @@ -1,3 +1,55 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; + +import 'package:midisynth/common/cubit/nav/nav_cubit_pages.dart'; + +import 'package:midisynth/cubit/activity/activity_cubit.dart'; + class ApplicationConfig { - static const String appTitle = 'MIDI Synth'; + // sequence length + static const String parameterCodeSequenceLength = 'sequenceLength'; + static const String sequenceLengthValueShort = 'short'; + static const String sequenceLengthValueMedium = 'medium'; + static const String sequenceLengthValueLong = 'long'; + + static final ApplicationConfigDefinition config = ApplicationConfigDefinition( + appTitle: 'MIDI Synth', + activitySettings: [ + // sequence length + ApplicationSettingsParameter( + code: parameterCodeSequenceLength, + values: [ + ApplicationSettingsParameterItemValue( + value: sequenceLengthValueShort, + ), + ApplicationSettingsParameterItemValue( + value: sequenceLengthValueMedium, + isDefault: true, + ), + ApplicationSettingsParameterItemValue( + value: sequenceLengthValueLong, + ), + ], + intValueGetter: (value) { + const Map<String, int> intValues = { + sequenceLengthValueShort: 8, + sequenceLengthValueMedium: 16, + sequenceLengthValueLong: 32, + }; + return intValues[parameterCodeSequenceLength] ?? 0; + }, + ), + ], + startNewActivity: (BuildContext context) { + BlocProvider.of<ActivityCubit>(context).startNewActivity(context); + BlocProvider.of<NavCubitPage>(context).goToPageEditor(); + }, + deleteCurrentActivity: (BuildContext context) { + BlocProvider.of<ActivityCubit>(context).deleteSavedActivity(); + }, + resumeActivity: (BuildContext context) { + BlocProvider.of<ActivityCubit>(context).resumeSavedActivity(); + BlocProvider.of<NavCubitPage>(context).goToPageEditor(); + }, + ); } diff --git a/lib/config/default_activity_settings.dart b/lib/config/default_activity_settings.dart deleted file mode 100644 index 4ae5ac89139d6292da8d9083c32ad482f3e3402a..0000000000000000000000000000000000000000 --- a/lib/config/default_activity_settings.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; - -class DefaultActivitySettings { - // available activity parameters codes - static const String parameterCodeSequenceLength = 'sequenceLength'; - static const List<String> availableParameters = [ - parameterCodeSequenceLength, - ]; - - // items count: available values - static const String sequenceLengthValueShort = 'short'; - static const String sequenceLengthValueMedium = 'medium'; - static const String sequenceLengthValueLong = 'long'; - static const List<String> allowedSequenceLengthValues = [ - sequenceLengthValueShort, - sequenceLengthValueMedium, - sequenceLengthValueLong, - ]; - // items count: default value - static const String defaultSequenceLengthValue = sequenceLengthValueMedium; - - // available values from parameter code - static List<String> getAvailableValues(String parameterCode) { - switch (parameterCode) { - case parameterCodeSequenceLength: - return DefaultActivitySettings.allowedSequenceLengthValues; - } - - printlog('Did not find any available value for activity parameter "$parameterCode".'); - return []; - } - - static int getSequenceLengthFromParameterValueCode(String parameterLevel) { - const Map<String, int> values = { - sequenceLengthValueShort: 8, - sequenceLengthValueMedium: 16, - sequenceLengthValueLong: 32, - }; - return values[parameterLevel] ?? - getSequenceLengthFromParameterValueCode( - DefaultActivitySettings.defaultSequenceLengthValue); - } -} diff --git a/lib/config/default_global_settings.dart b/lib/config/default_global_settings.dart deleted file mode 100644 index d92229c2e02064684ed4a2caeb272ff63325776a..0000000000000000000000000000000000000000 --- a/lib/config/default_global_settings.dart +++ /dev/null @@ -1,28 +0,0 @@ -import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; - -class DefaultGlobalSettings { - // available global parameters codes - static const String parameterCodeSkin = 'skin'; - static const List<String> availableParameters = [ - parameterCodeSkin, - ]; - - // skin: available values - static const String skinValueDefault = 'default'; - static const List<String> allowedSkinValues = [ - skinValueDefault, - ]; - // skin: default value - static const String defaultSkinValue = skinValueDefault; - - // available values from parameter code - static List<String> getAvailableValues(String parameterCode) { - switch (parameterCode) { - case parameterCodeSkin: - return DefaultGlobalSettings.allowedSkinValues; - } - - printlog('Did not find any available value for global parameter "$parameterCode".'); - return []; - } -} diff --git a/lib/cubit/activity/activity_cubit.dart b/lib/cubit/activity/activity_cubit.dart index dacfa6eb4487339f111a9fe056ccffa8dcf0c9d7..e31e7edd7328b33174536f1ec9753c0b90d2b258 100644 --- a/lib/cubit/activity/activity_cubit.dart +++ b/lib/cubit/activity/activity_cubit.dart @@ -2,8 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:midisynth/models/activity/activity.dart'; -import 'package:midisynth/models/settings/settings_activity.dart'; -import 'package:midisynth/models/settings/settings_global.dart'; part 'activity_state.dart'; @@ -23,7 +21,6 @@ class ActivityCubit extends HydratedCubit<ActivityState> { final Activity activity = Activity( // Settings activitySettings: state.currentActivity.activitySettings, - globalSettings: state.currentActivity.globalSettings, // State isRunning: state.currentActivity.isRunning, isStarted: state.currentActivity.isStarted, @@ -39,14 +36,13 @@ class ActivityCubit extends HydratedCubit<ActivityState> { updateState(activity); } - void startNewActivity({ - required ActivitySettings activitySettings, - required GlobalSettings globalSettings, - }) { + void startNewActivity(BuildContext context) { + final ActivitySettingsCubit activitySettingsCubit = + BlocProvider.of<ActivitySettingsCubit>(context); + final Activity newActivity = Activity.createNew( // Settings - activitySettings: activitySettings, - globalSettings: globalSettings, + activitySettings: activitySettingsCubit.state.settings, ); newActivity.dump(); @@ -55,6 +51,10 @@ class ActivityCubit extends HydratedCubit<ActivityState> { refresh(); } + bool canBeResumed() { + return state.currentActivity.canBeResumed; + } + void quitActivity() { state.currentActivity.isRunning = false; refresh(); diff --git a/lib/cubit/settings/settings_activity_cubit.dart b/lib/cubit/settings/settings_activity_cubit.dart deleted file mode 100644 index 9e9114da5a03e4b9c28f5d50466a229b59003ee5..0000000000000000000000000000000000000000 --- a/lib/cubit/settings/settings_activity_cubit.dart +++ /dev/null @@ -1,63 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; - -import 'package:midisynth/config/default_activity_settings.dart'; -import 'package:midisynth/models/settings/settings_activity.dart'; - -part 'settings_activity_state.dart'; - -class ActivitySettingsCubit extends HydratedCubit<ActivitySettingsState> { - ActivitySettingsCubit() - : super(ActivitySettingsState(settings: ActivitySettings.createDefault())); - - void setValues({ - String? sequenceLength, - }) { - emit( - ActivitySettingsState( - settings: ActivitySettings( - sequenceLength: sequenceLength ?? state.settings.sequenceLength, - ), - ), - ); - } - - String getParameterValue(String code) { - switch (code) { - case DefaultActivitySettings.parameterCodeSequenceLength: - return ActivitySettings.getSequenceLengthValueFromUnsafe( - state.settings.sequenceLength); - } - - return ''; - } - - void setParameterValue(String code, String value) { - final String sequenceLength = code == DefaultActivitySettings.parameterCodeSequenceLength - ? value - : getParameterValue(DefaultActivitySettings.parameterCodeSequenceLength); - - setValues( - sequenceLength: sequenceLength, - ); - } - - @override - ActivitySettingsState? fromJson(Map<String, dynamic> json) { - final String sequenceLength = - json[DefaultActivitySettings.parameterCodeSequenceLength] as String; - - return ActivitySettingsState( - settings: ActivitySettings( - sequenceLength: sequenceLength, - ), - ); - } - - @override - Map<String, dynamic>? toJson(ActivitySettingsState state) { - return <String, dynamic>{ - DefaultActivitySettings.parameterCodeSequenceLength: state.settings.sequenceLength, - }; - } -} diff --git a/lib/cubit/settings/settings_activity_state.dart b/lib/cubit/settings/settings_activity_state.dart deleted file mode 100644 index 2b2de42011634e81ae9e6f8bcaa1577f239c778b..0000000000000000000000000000000000000000 --- a/lib/cubit/settings/settings_activity_state.dart +++ /dev/null @@ -1,15 +0,0 @@ -part of 'settings_activity_cubit.dart'; - -@immutable -class ActivitySettingsState extends Equatable { - const ActivitySettingsState({ - required this.settings, - }); - - final ActivitySettings settings; - - @override - List<dynamic> get props => <dynamic>[ - settings, - ]; -} diff --git a/lib/cubit/settings/settings_global_cubit.dart b/lib/cubit/settings/settings_global_cubit.dart deleted file mode 100644 index a29435241f1fc5d5bd14302189940b191fd80cf8..0000000000000000000000000000000000000000 --- a/lib/cubit/settings/settings_global_cubit.dart +++ /dev/null @@ -1,59 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; - -import 'package:midisynth/config/default_global_settings.dart'; -import 'package:midisynth/models/settings/settings_global.dart'; - -part 'settings_global_state.dart'; - -class GlobalSettingsCubit extends HydratedCubit<GlobalSettingsState> { - GlobalSettingsCubit() : super(GlobalSettingsState(settings: GlobalSettings.createDefault())); - - void setValues({ - String? skin, - }) { - emit( - GlobalSettingsState( - settings: GlobalSettings( - skin: skin ?? state.settings.skin, - ), - ), - ); - } - - String getParameterValue(String code) { - switch (code) { - case DefaultGlobalSettings.parameterCodeSkin: - return GlobalSettings.getSkinValueFromUnsafe(state.settings.skin); - } - return ''; - } - - void setParameterValue(String code, String value) { - final String skin = (code == DefaultGlobalSettings.parameterCodeSkin) - ? value - : getParameterValue(DefaultGlobalSettings.parameterCodeSkin); - - setValues( - skin: skin, - ); - } - - @override - GlobalSettingsState? fromJson(Map<String, dynamic> json) { - final String skin = json[DefaultGlobalSettings.parameterCodeSkin] as String; - - return GlobalSettingsState( - settings: GlobalSettings( - skin: skin, - ), - ); - } - - @override - Map<String, dynamic>? toJson(GlobalSettingsState state) { - return <String, dynamic>{ - DefaultGlobalSettings.parameterCodeSkin: state.settings.skin, - }; - } -} diff --git a/lib/cubit/settings/settings_global_state.dart b/lib/cubit/settings/settings_global_state.dart deleted file mode 100644 index ebcddd700f252257223ca8e16c85202b04f3ff24..0000000000000000000000000000000000000000 --- a/lib/cubit/settings/settings_global_state.dart +++ /dev/null @@ -1,15 +0,0 @@ -part of 'settings_global_cubit.dart'; - -@immutable -class GlobalSettingsState extends Equatable { - const GlobalSettingsState({ - required this.settings, - }); - - final GlobalSettings settings; - - @override - List<dynamic> get props => <dynamic>[ - settings, - ]; -} diff --git a/lib/main.dart b/lib/main.dart index dc791d6a2604546e31c50ea96b87776f3011cd8a..6632f6dfc37186722ce3e1e0f01817534b009b27 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -9,8 +9,6 @@ import 'package:midisynth/common/cubit/nav/nav_cubit_screens.dart'; import 'package:midisynth/config/application_config.dart'; import 'package:midisynth/cubit/activity/activity_cubit.dart'; -import 'package:midisynth/cubit/settings/settings_activity_cubit.dart'; -import 'package:midisynth/cubit/settings/settings_global_cubit.dart'; import 'package:midisynth/ui/skeleton.dart'; void main() async { @@ -56,17 +54,14 @@ class MyApp extends StatelessWidget { BlocProvider<ActivityCubit>( create: (context) => ActivityCubit(), ), - BlocProvider<GlobalSettingsCubit>( - create: (context) => GlobalSettingsCubit(), - ), BlocProvider<ActivitySettingsCubit>( - create: (context) => ActivitySettingsCubit(), + create: (context) => ActivitySettingsCubit(appConfig: ApplicationConfig.config), ), ], child: BlocBuilder<ApplicationThemeModeCubit, ApplicationThemeModeState>( builder: (BuildContext context, ApplicationThemeModeState state) { return MaterialApp( - title: ApplicationConfig.appTitle, + title: ApplicationConfig.config.appTitle, home: const SkeletonScreen(), // Theme stuff diff --git a/lib/models/activity/activity.dart b/lib/models/activity/activity.dart index 2c6bf2f5fe1e20cc3695ba99a7bdd8f101870733..1504c482edb8fe4441979004106c2ecffacd2f25 100644 --- a/lib/models/activity/activity.dart +++ b/lib/models/activity/activity.dart @@ -1,14 +1,13 @@ import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; +import 'package:midisynth/config/application_config.dart'; + import 'package:midisynth/models/data/note.dart'; -import 'package:midisynth/models/settings/settings_activity.dart'; -import 'package:midisynth/models/settings/settings_global.dart'; class Activity { Activity({ // Settings required this.activitySettings, - required this.globalSettings, // State this.isRunning = false, @@ -25,7 +24,6 @@ class Activity { // Settings final ActivitySettings activitySettings; - final GlobalSettings globalSettings; // State bool isRunning; @@ -42,8 +40,7 @@ class Activity { factory Activity.createNull() { return Activity( // Settings - activitySettings: ActivitySettings.createDefault(), - globalSettings: GlobalSettings.createDefault(), + activitySettings: ActivitySettings.createDefault(appConfig: ApplicationConfig.config), // Base data notes: [], ); @@ -51,16 +48,13 @@ class Activity { factory Activity.createNew({ ActivitySettings? activitySettings, - GlobalSettings? globalSettings, }) { - final ActivitySettings newActivitySettings = - activitySettings ?? ActivitySettings.createDefault(); - final GlobalSettings newGlobalSettings = globalSettings ?? GlobalSettings.createDefault(); + final ActivitySettings newActivitySettings = activitySettings ?? + ActivitySettings.createDefault(appConfig: ApplicationConfig.config); return Activity( // Settings activitySettings: newActivitySettings, - globalSettings: newGlobalSettings, // State isRunning: true, // Base data @@ -77,7 +71,6 @@ class Activity { printlog('$Activity:'); printlog(' Settings'); activitySettings.dump(); - globalSettings.dump(); printlog(' State'); printlog(' isRunning: $isRunning'); printlog(' isStarted: $isStarted'); @@ -99,7 +92,6 @@ class Activity { return <String, dynamic>{ // Settings 'activitySettings': activitySettings.toJson(), - 'globalSettings': globalSettings.toJson(), // State 'isRunning': isRunning, 'isStarted': isStarted, diff --git a/lib/models/settings/settings_activity.dart b/lib/models/settings/settings_activity.dart deleted file mode 100644 index cea6dbebc56eb175c61716c969580e75560930ef..0000000000000000000000000000000000000000 --- a/lib/models/settings/settings_activity.dart +++ /dev/null @@ -1,45 +0,0 @@ -import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; - -import 'package:midisynth/config/default_activity_settings.dart'; - -class ActivitySettings { - final String sequenceLength; - - ActivitySettings({ - required this.sequenceLength, - }); - - // Getters to convert String to int - int get sequenceLengthValue => int.parse(sequenceLength); - - static String getSequenceLengthValueFromUnsafe(String sequenceLength) { - if (DefaultActivitySettings.allowedSequenceLengthValues.contains(sequenceLength)) { - return sequenceLength; - } - - return DefaultActivitySettings.defaultSequenceLengthValue; - } - - factory ActivitySettings.createDefault() { - return ActivitySettings( - sequenceLength: DefaultActivitySettings.defaultSequenceLengthValue, - ); - } - - void dump() { - printlog('$ActivitySettings:'); - printlog(' ${DefaultActivitySettings.parameterCodeSequenceLength}: $sequenceLength'); - printlog(''); - } - - @override - String toString() { - return '$ActivitySettings(${toJson()})'; - } - - Map<String, dynamic>? toJson() { - return <String, dynamic>{ - DefaultActivitySettings.parameterCodeSequenceLength: sequenceLength, - }; - } -} diff --git a/lib/models/settings/settings_global.dart b/lib/models/settings/settings_global.dart deleted file mode 100644 index ae9ed6e82ffaf1d36ff8dd742e8fa90503ca811b..0000000000000000000000000000000000000000 --- a/lib/models/settings/settings_global.dart +++ /dev/null @@ -1,42 +0,0 @@ -import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; - -import 'package:midisynth/config/default_global_settings.dart'; - -class GlobalSettings { - String skin; - - GlobalSettings({ - required this.skin, - }); - - static String getSkinValueFromUnsafe(String skin) { - if (DefaultGlobalSettings.allowedSkinValues.contains(skin)) { - return skin; - } - - return DefaultGlobalSettings.defaultSkinValue; - } - - factory GlobalSettings.createDefault() { - return GlobalSettings( - skin: DefaultGlobalSettings.defaultSkinValue, - ); - } - - void dump() { - printlog('$GlobalSettings:'); - printlog(' ${DefaultGlobalSettings.parameterCodeSkin}: $skin'); - printlog(''); - } - - @override - String toString() { - return '$GlobalSettings(${toJson()})'; - } - - Map<String, dynamic>? toJson() { - return <String, dynamic>{ - DefaultGlobalSettings.parameterCodeSkin: skin, - }; - } -} diff --git a/lib/common/ui/pages/editor.dart b/lib/ui/pages/editor.dart similarity index 100% rename from lib/common/ui/pages/editor.dart rename to lib/ui/pages/editor.dart diff --git a/lib/common/ui/pages/home.dart b/lib/ui/pages/home.dart similarity index 100% rename from lib/common/ui/pages/home.dart rename to lib/ui/pages/home.dart diff --git a/lib/common/ui/pages/player.dart b/lib/ui/pages/player.dart similarity index 100% rename from lib/common/ui/pages/player.dart rename to lib/ui/pages/player.dart diff --git a/pubspec.lock b/pubspec.lock index 1896dfc3582bc30a9743cfeb6b5a0e3e3b46fcd3..0d7744cbc920c4c2cb00c639e11ef7197325b30e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -122,11 +122,11 @@ packages: dependency: "direct main" description: path: "." - ref: "0.4.0" - resolved-ref: eb9c090bd00d73324eab8737f74b3339cc24c9e8 + ref: "0.5.0" + resolved-ref: b8164a50489ba981ea57d9f02e2334f09cb8c6a7 url: "https://git.harrault.fr/android/flutter-toolbox.git" source: git - version: "0.4.0" + version: "0.5.0" flutter_lints: dependency: "direct dev" description: diff --git a/pubspec.yaml b/pubspec.yaml index a21a4fa4a4d4a872d26097a543af86af61d4e92d..8aa372d6bd27632b3d5e2bd333da8ae6cec3b4e7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: MIDI Synth publish_to: "none" -version: 0.3.2+18 +version: 0.4.0+19 environment: sdk: "^3.0.0" @@ -16,7 +16,7 @@ dependencies: flutter_custom_toolbox: git: url: https://git.harrault.fr/android/flutter-toolbox.git - ref: 0.4.0 + ref: 0.5.0 # specific # (none)