calcDisplayname method

String calcDisplayname({
  1. bool? formatLocalpart,
  2. bool? mxidLocalPartFallback,
  3. MatrixLocalizations i18n = const MatrixDefaultLocalizations(),
})

Returns the displayname or the local part of the Matrix ID if the user has no displayname. If formatLocalpart is true, then the localpart will be formatted in the way, that all "_" characters are becomming white spaces and the first character of each word becomes uppercase. If mxidLocalPartFallback is true, then the local part of the mxid will be shown if there is no other displayname available. If not then this will return "Unknown user".

Implementation

String calcDisplayname({
  bool? formatLocalpart,
  bool? mxidLocalPartFallback,
  MatrixLocalizations i18n = const MatrixDefaultLocalizations(),
}) {
  formatLocalpart ??= room.client.formatLocalpart;
  mxidLocalPartFallback ??= room.client.mxidLocalPartFallback;
  final displayName = this.displayName;
  if (displayName != null && displayName.isNotEmpty) {
    return displayName;
  }
  final stateKey = this.stateKey;
  if (stateKey != null && mxidLocalPartFallback) {
    if (!formatLocalpart) {
      return stateKey.localpart ?? '';
    }
    final words = stateKey.localpart?.replaceAll('_', ' ').split(' ') ?? [];
    for (var i = 0; i < words.length; i++) {
      if (words[i].isNotEmpty) {
        words[i] = words[i][0].toUpperCase() + words[i].substring(1);
      }
    }
    return words.join(' ').trim();
  }
  return i18n.unknownUser;
}