setAssistantSettings method

Future<void> setAssistantSettings()

Implementation

Future<void> setAssistantSettings() async {
  UsageSettings? usageSettings = assistant.value?.usageSettings;
  if (usageSettings != null) {
    isAttachmentAvailable.value = usageSettings.canAttach;
    isActionBarAlwaysVisible.value = usageSettings.actionBarAlwaysVisible;
    isWebSearchAvailable.value = usageSettings.canWebSearch;
    isMentionAvailable.value = usageSettings.canTag;
    if ((pupauConfig?.isAnonymous ?? false) &&
        assistant.value?.usageSettings?.canAnonymous == false) {
      PupauEventService.instance.emitPupauEvent(
        PupauEvent(
          type: UpdateConversationType.error,
          payload: {
            "error":
                "Anonymous conversations are not allowed for this assistant. Please use a different assistant or create a new conversation.",
            "assistantId": assistantId,
            "assistantType": assistant.value?.type ?? AssistantType.assistant,
          },
        ),
      );
      await showCustomBasicDialog(
        Strings.anonymousConversationsNotAllowed.tr,
      );
      manageForceBack();
    }
  }
  if (pupauConfig?.conversationStarters.isNotEmpty ?? false) {
    conversationStarters.value = pupauConfig?.conversationStarters ?? [];
  } else {
    List<String> chatEngagementPrompts =
        assistant.value?.apiKeyConfig?.chatEngagementPrompts ?? [];
    if (chatEngagementPrompts.isNotEmpty) {
      conversationStarters.value = chatEngagementPrompts;
    }
  }
  conversationStarters.refresh();
  showNerdStats.value = pupauConfig?.showNerdStats ?? false;
  update();
}