diff --git a/lib/Frontend/pages/triggers.dart b/lib/Frontend/pages/triggers.dart index f2076028..ea7f85bd 100644 --- a/lib/Frontend/pages/triggers.dart +++ b/lib/Frontend/pages/triggers.dart @@ -129,7 +129,61 @@ class _TriggersState extends ConsumerState { }, ), ), - ...getTriggerOptions(triggersList[index]) + ListTile( + title: Text(deviceType()), + subtitle: SegmentedButton( + multiSelectionEnabled: true, + selected: triggersList[index].deviceType.toSet(), + onSelectionChanged: (Set value) { + setState(() => triggersList[index].deviceType = value.toList()); + ref.read(triggerListProvider.notifier).store(); + }, + segments: DeviceType.values.map>( + (DeviceType value) { + return ButtonSegment( + value: value, + label: Text(value.name), + ); + }, + ).toList(), + ), + ), + ...triggersList[index].actions.map( + (TriggerAction e) => ListTile( + title: Text(triggersList[index].triggerDefinition!.actionTypes.where((element) => e.uuid == element.uuid).first.translated), + subtitle: Text(ref.read(getActionFromUUIDProvider(e.action))?.name ?? triggerActionNotSet()), + trailing: IconButton( + icon: const Icon(Icons.edit), + onPressed: () async { + BaseAction? result = await showDialog( + context: context, + builder: (BuildContext context) { + return Dialog.fullscreen(child: ActionSelector(deviceType: triggersList[index].deviceType.toSet())); + }); + setState( + () { + e.action = result?.uuid; + ref.read(triggerListProvider.notifier).store(); + }, + ); + }, + ), + ), + ), + ButtonBar( + children: [ + TextButton( + onPressed: () { + setState(() { + ref.read(triggerListProvider).remove(triggersList[index]); + ref.read(triggerListProvider.notifier).store(); + Navigator.of(context).pop(); + }); + }, + child: const Text("Delete Trigger"), + ), + ], + ) ], ); }); @@ -160,52 +214,4 @@ class _TriggersState extends ConsumerState { ), ); } - - List getTriggerOptions(Trigger trigger) { - List results = []; - results.add( - ListTile( - title: Text(deviceType()), - subtitle: SegmentedButton( - multiSelectionEnabled: true, - selected: trigger.deviceType.toSet(), - onSelectionChanged: (Set value) { - setState(() => trigger.deviceType = value.toList()); - ref.read(triggerListProvider.notifier).store(); - }, - segments: DeviceType.values.map>( - (DeviceType value) { - return ButtonSegment( - value: value, - label: Text(value.name), - ); - }, - ).toList(), - ), - ), - ); - results.addAll( - trigger.actions.map( - (TriggerAction e) => ListTile( - title: Text(trigger.triggerDefinition!.actionTypes.where((element) => e.uuid == element.uuid).first.translated), - subtitle: Text(ref.read(getActionFromUUIDProvider(e.action))?.name ?? triggerActionNotSet()), - trailing: IconButton( - icon: const Icon(Icons.edit), - onPressed: () async { - BaseAction? result = await showDialog( - context: context, - builder: (BuildContext context) { - return Dialog.fullscreen(child: ActionSelector(deviceType: trigger.deviceType.toSet())); - }); - setState(() { - e.action = result?.uuid; - ref.read(triggerListProvider.notifier).store(); - }); - }, - ), - ), - ), - ); - return results; - } } diff --git a/lib/main.dart b/lib/main.dart index d11d20bc..baa9d685 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -109,7 +109,7 @@ Future main() async { options.enableAutoPerformanceTracing = true; options.enableAppHangTracking = true; options.beforeSend = beforeSend; - options.release = (await rootBundle.loadString('.git/HEAD')).trim(); + options.release = (await rootBundle.loadString('.git/ORIG_HEAD')).trim(); }, // Init your App. appRunner: () => runApp( diff --git a/pubspec.yaml b/pubspec.yaml index 525a23d3..64a3355b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -78,7 +78,7 @@ flutter: uses-material-design: true generate: true assets: - - .git/HEAD + - .git/ORIG_HEAD sentry: upload_debug_symbols: true upload_source_maps: true