getCallersName static method

Future<String> getCallersName(
  1. List<String?> callUsers, [
  2. bool addYou = false
])

Implementation

static Future<String> getCallersName(List<String?> callUsers,
    [bool addYou = false]) async {
  LogMessage.d("getCallersName callUsers", callUsers);
  if (callUsers.isEmpty) {
    return "";
  }
  var membersName = StringBuffer();
  if (addYou) {
    membersName.write(callUsers.length <= 1 ? "You and " : "You, ");
  }
  var isMaxMemberNameNotReached = true;
  var spaceAvailable = true;
  for (var i = 0; i < callUsers.length; i++) {
    if (callUsers[i] != null) {
      var pair = await AppUtils.getNameAndProfileDetails(callUsers[i]!);
      if (i == 0) {
        membersName.write(pair.item1);
        var actualMemberName = AppUtils.getActualMemberName(membersName);
        membersName = actualMemberName.item1;
        isMaxMemberNameNotReached = actualMemberName.item2;
        spaceAvailable = membersName.toString().characters.length <
            Constants.maxNameLength;
        // LogMessage.d("getCallersName $i", "pair.item1 : ${pair.item1} actualMemberName : $membersName isMaxMemberNameNotReached : $isMaxMemberNameNotReached spaceAvailable : $spaceAvailable");
      } else if (spaceAvailable && isMaxMemberNameNotReached && i == 1) {
        membersName.write(", ${pair.item1}");
        var actualMemberName = AppUtils.getActualMemberName(membersName);
        membersName = actualMemberName.item1;
        isMaxMemberNameNotReached = actualMemberName.item2;
        spaceAvailable = membersName.toString().characters.length <
            Constants.maxNameLength;
        // LogMessage.d("getCallersName $i", "pair.item1 : ${pair.item1} actualMemberName : $membersName isMaxMemberNameNotReached : $isMaxMemberNameNotReached spaceAvailable : $spaceAvailable");
      } else if (spaceAvailable && isMaxMemberNameNotReached && i == 2) {
        membersName.write(", ${pair.item1}");
        var actualMemberName = AppUtils.getActualMemberName(membersName);
        membersName = actualMemberName.item1;
        spaceAvailable = membersName.toString().characters.length <
            Constants.maxNameLength;
        // LogMessage.d("getCallersName $i", "pair.item1 : ${pair.item1} actualMemberName : $membersName isMaxMemberNameNotReached : $isMaxMemberNameNotReached spaceAvailable : $spaceAvailable");
      } else {
        membersName.write(" (+${(callUsers.length - i)})");
        // LogMessage.d("getCallersName $i else", "pair.item1 : ${pair.item1} actualMemberName : $membersName isMaxMemberNameNotReached : $isMaxMemberNameNotReached spaceAvailable : $spaceAvailable");
        break;
      }
    } else {
      break;
    }
  }
  LogMessage.d("getCallersName membersName", membersName);
  return membersName.toString();
}