From 2213003ffbb9eda6acae716045392f57001777d4 Mon Sep 17 00:00:00 2001 From: Codel1417 Date: Sun, 26 Jan 2025 14:02:14 -0500 Subject: [PATCH] prevent move list actions from interrupting moves --- lib/Frontend/pages/move_list.dart | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/lib/Frontend/pages/move_list.dart b/lib/Frontend/pages/move_list.dart index 266853b1..5de74d70 100644 --- a/lib/Frontend/pages/move_list.dart +++ b/lib/Frontend/pages/move_list.dart @@ -92,12 +92,23 @@ class _MoveListViewState extends ConsumerState { if (HiveProxy.getOrDefault(settings, haptics, defaultValue: hapticsDefault)) { HapticFeedback.selectionClick(); } - for (BaseStatefulDevice element in ref.watch(knownDevicesProvider).values.where((element) => allMoveLists[index].deviceCategory.contains(element.baseDeviceDefinition.deviceType))) { - if (HiveProxy.getOrDefault(settings, kitsuneModeToggle, defaultValue: kitsuneModeDefault)) { - await Future.delayed(Duration(milliseconds: Random().nextInt(kitsuneDelayRange))); - } - runAction(allMoveLists[index], element); - } + ref + .watch(knownDevicesProvider) + .values + .where( + (element) => allMoveLists[index].deviceCategory.contains(element.baseDeviceDefinition.deviceType), + ) + .where( + (element) => element.deviceState.value == DeviceState.standby, + ) + .forEach( + (element) async { + if (HiveProxy.getOrDefault(settings, kitsuneModeToggle, defaultValue: kitsuneModeDefault)) { + await Future.delayed(Duration(milliseconds: Random().nextInt(kitsuneDelayRange))); + } + runAction(allMoveLists[index], element); + }, + ); }, ); },