# Dialog choice

A decision block that lets the user select from a list of choices.

The fiber will pause until the user has made a choice, cancelled the dialog or the timeout expired.

If an array is set as choices, then its elements are used as labels. If a dictionary is set, then the values are used as labels. A number or text is used as the label for a single choice. If null, then no choices will be shown.

The sift function can be used to filter the selected choices.

Note! The selected indices/keys output variable is assigned an array even when only a single choice is possible. To get the first or single choice index/key use the subscript operator, e.g.: `selected[0]` or `choices[selected[0]]`.

## Input arguments

- Title — dialog title, default is no title.
- Choices — possible choices, show as a list.
- Pre-select — an array with indices/keys of choices that should be pre-selected, default is none.
- Multi-select — whether to allow selection of multiple choices, default is false.
- No selection — whether to allow no selection, only applicable for multiple choice.
- Sort — whether the displayed choices should be sorted in alphabetical order, default is true.
- Timeout — time until the notification/dialog is automatically canceled, may be inaccurate as it’s affected power save features such as “doze”, default is no timeout.
- Notification channel — UUID of notification channel used for shown notification, default is the flow default or Flow.
- Show window — whether to show the dialog window directly without having to tap the notification. Requires the “appear atop of other apps or parts of the screen” privilege on Android 10+.

## Output variables

- Selected indices/keys — variable to assign an array with the selected indices/keys.