quickSettingsListBuilder method

Builder quickSettingsListBuilder()

Implementation

Builder quickSettingsListBuilder() {
  return Builder(
    builder: (context) {
      List<QuickActionItem> quickActions = QuickAction().getFromPrefs();
      quickSettings = [];
      for (int i = 0; i < quickActions.length; i++) {
        if (opened[i] == null) {
          opened[i] = false;
        }
        final version = quickActions[i].version.isNotEmpty
            ? quickActions[i].version
            : '0.0.0';
        final author = quickActions[i].author.isNotEmpty
            ? quickActions[i].author
            : 'you';
        quickSettings.add(Padding(
          padding: const EdgeInsets.only(left: 8.0, right: 8.0, top: 8.0),
          child: Column(
            children: [
              Expander(
                  initiallyExpanded: false,
                  header: RichText(
                    text: TextSpan(children: [
                      TextSpan(
                        text: quickActions[i].name,
                        style: TextStyle(
                          color: AppTheme().textColor,
                        ),
                      ),
                      TextSpan(
                        text: ' [v$version] ',
                        style: TextStyle(
                          color: AppTheme().textColor.withOpacity(0.5),
                        ),
                      ),
                      TextSpan(
                        text: '(by $author)',
                        style: TextStyle(
                          fontSize: 13.0,
                          color: AppTheme().color,
                        ),
                      ),
                    ]),
                  ),
                  trailing: Row(
                    children: [
                      IconButton(
                        icon: const Icon(FluentIcons.edit),
                        onPressed: () {
                          setState(() {
                            showInput = true;
                            nameController.text = quickActions[i].name;
                            contentController.text = quickActions[i].content;
                          });
                        },
                      ),
                      IconButton(
                        icon: const Icon(FluentIcons.delete),
                        onPressed: () {
                          // Open remove dialog
                          dialog(
                              item: quickActions[i],
                              title: 'deleteinstancequestion-text'
                                  .i18n([quickActions[i].name]),
                              body: 'deleteinstancebody-text'.i18n(),
                              submitText: 'delete-text'.i18n(),
                              submitInput: false,
                              submitStyle: ButtonStyle(
                                backgroundColor: ButtonState.all(Colors.red),
                                foregroundColor:
                                    ButtonState.all(Colors.white),
                              ),
                              onSubmit: (inputText) {
                                QuickAction.removeFromPrefs(quickActions[i]);
                                setState(() {});
                              });
                        },
                      ),
                    ],
                  ),
                  content: SizedBox(
                    height: MediaQuery.of(context).size.height * 0.5,
                    child: SingleChildScrollView(
                      child: Opacity(
                        opacity: 0.7,
                        child: SizedBox(
                            width: MediaQuery.of(context).size.width,
                            child: Padding(
                              padding: const EdgeInsets.only(
                                  left: 20.0, right: 20.0, bottom: 4.0),
                              child: SelectableText(quickActions[i].content),
                            )),
                      ),
                    ),
                  )),
            ],
          ),
        ));
      }
      if (quickSettings.isNotEmpty) {
        return Column(children: quickSettings);
      } else {
        return Padding(
          padding:
              EdgeInsets.only(top: MediaQuery.of(context).size.height / 2.5),
          child: Center(
            child: Text('addquickactioninfo-text'.i18n()),
          ),
        );
      }
    },
  );
}