void _addData()

in frontend/frontend-flutter/lib/main.dart [263:338]


  void _addData(String data, bool isHistory) {
    List<MostPopularQ>? mostPopularQuestionsList = <MostPopularQ>[];
    int lenghtTmp = 0;
    String timeString = "";

    timeString = displayDateTime();

    if (data.length == 0) return;
    print("Main: _addData : BEFORE ADD : nodes.length = ${nodes.length}");
    print("Main: _addData : BEFORE ADD : data = ${data}");
    print("Main: _addData : BEFORE ADD : nodes = ${nodes}");
    if (isHistory)
      nodes.add(TreeNode(timeString + "|||" + data)); //displayDateTime()
    else
      nodes.add(TreeNode(data));

    //add questions to mostPopularQuestionsMap
    if (mostPopularQuestionsMap!.containsKey(data)) {
      print('Main: _addData : mostPopularQuestionsMap contains $data');
      print(
          'Main: _addData : mostPopularQuestionsMap : BEFORE INCREMENT : (mostPopularQuestionsMap![data] as MostPopularQ).count =  ${(mostPopularQuestionsMap![data] as MostPopularQ).count}');
      mostPopularQuestionsMap![data]!.count =
          mostPopularQuestionsMap![data]!.count + 1;
      mostPopularQuestionsMap![data]!.time = timeString;
      print(
          'Main: _addData : mostPopularQuestionsMap : AFTER INCREMENT : (mostPopularQuestionsMap![data] as MostPopularQ).count =  ${(mostPopularQuestionsMap![data] as MostPopularQ).count}');
    } else {
      print('Main: _addData : mostPopularQuestionsMap does not contain $data');
      mostPopularQuestionsMap![data] = MostPopularQ(data, 1, timeString);
    }

    var sortedByValueMap = Map.fromEntries(
        mostPopularQuestionsMap!.entries.toList()
          ..sort((e1, e2) => e2.value.count.compareTo(e1.value.count)));

    print(
        'Main: _addData : sortedByValueMap.length = ${sortedByValueMap.length}');
    print('Main: _addData : sortedByValueMap = $sortedByValueMap');

    int countEntries = 0;

    for (var entry in sortedByValueMap.entries) {
      mostPopularQuestionsList!.add(entry.value);
      if (countEntries == 2 || countEntries == sortedByValueMap.length - 1)
        break;
      countEntries++;
    }

    //countEntries = 0;

    print(
        "Main: _addData : BEFORE FILLING : mostPopularQuestionsList.length = ${mostPopularQuestionsList.length}");
    print(
        "Main: _addData : BEFORE FILLING : mostPopularQuestionsList = ${mostPopularQuestionsList}");

    lenghtTmp = mostPopularQuestionsList.length;

    //Fill mostPopularQuestionsList with dummy entries if there are not 3 most popular questions
    for (int i = 0; i <= (2 - lenghtTmp); i++) {
      mostPopularQuestionsList!.add(MostPopularQ("", 0, ""));
    }

    print(
        "Main: _addData : AFTER FILLING : mostPopularQuestionsList.length = ${mostPopularQuestionsList.length}");
    print(
        "Main: _addData : AFTER FILLING : mostPopularQuestionsList = ${mostPopularQuestionsList}");

    //Update the 3 most popular questions
    BlocProvider.of<UpdatePopularQuestionsCubit>(context)
        .updateMostPopularQuestions(
            mostPopularQuestionsList: mostPopularQuestionsList!,
            time: timeString);

    print("Main: _addData :  AFTER  : nodes.length = ${nodes.length}");
    print("Main: _addData :  AFTER  : nodes = ${nodes}");
  }