Revert "Revert "don't show user avatars or display names in chats""

This reverts commit 07fa96cdc9.
pull/1384/head
ggurdin 1 year ago
parent 012b20b09f
commit f4a0fbaacb
No known key found for this signature in database
GPG Key ID: A01CB41737CBB478

@ -1,14 +1,12 @@
import 'dart:convert'; import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart';
import 'package:fluffychat/utils/date_time_extension.dart'; import 'package:fluffychat/utils/date_time_extension.dart';
import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/avatar.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.dart';
extension EventInfoDialogExtension on Event { extension EventInfoDialogExtension on Event {
void showInfoDialog(BuildContext context) => showAdaptiveBottomSheet( void showInfoDialog(BuildContext context) => showAdaptiveBottomSheet(
@ -49,15 +47,16 @@ class EventInfoDialog extends StatelessWidget {
children: [ children: [
ListTile( ListTile(
leading: Avatar( leading: Avatar(
mxContent: event.senderFromMemoryOrFallback.avatarUrl, // mxContent: event.senderFromMemoryOrFallback.avatarUrl,
name: event.senderFromMemoryOrFallback.calcDisplayname(), // name: event.senderFromMemoryOrFallback.calcDisplayname(),
name: "?",
client: event.room.client, client: event.room.client,
presenceUserId: event.senderId, // presenceUserId: event.senderId,
), ),
title: Text(L10n.of(context)!.sender), title: Text(L10n.of(context)!.sender),
subtitle: Text( // subtitle: Text(
'${event.senderFromMemoryOrFallback.calcDisplayname()} [${event.senderId}]', // '${event.senderFromMemoryOrFallback.calcDisplayname()} [${event.senderId}]',
), // ),
), ),
ListTile( ListTile(
title: Text(L10n.of(context)!.time), title: Text(L10n.of(context)!.time),

@ -263,9 +263,10 @@ class Message extends StatelessWidget {
final user = snapshot.data ?? final user = snapshot.data ??
event.senderFromMemoryOrFallback; event.senderFromMemoryOrFallback;
return Avatar( return Avatar(
mxContent: user.avatarUrl, // mxContent: user.avatarUrl,
name: user.calcDisplayname(), // name: user.calcDisplayname(),
presenceUserId: user.stateKey, // presenceUserId: user.stateKey,
name: "?",
presenceBackgroundColor: presenceBackgroundColor:
avatarPresenceBackgroundColor, avatarPresenceBackgroundColor,
onTap: () => onAvatarTab(event), onTap: () => onAvatarTab(event),
@ -288,10 +289,11 @@ class Message extends StatelessWidget {
: FutureBuilder<User?>( : FutureBuilder<User?>(
future: event.fetchSenderUser(), future: event.fetchSenderUser(),
builder: (context, snapshot) { builder: (context, snapshot) {
final displayname = snapshot.data // final displayname = snapshot.data
?.calcDisplayname() ?? // ?.calcDisplayname() ??
event.senderFromMemoryOrFallback // event.senderFromMemoryOrFallback
.calcDisplayname(); // .calcDisplayname();
const displayname = "?";
return Text( return Text(
displayname, displayname,
style: TextStyle( style: TextStyle(

@ -96,12 +96,16 @@ class MessageContent extends StatelessWidget {
ListTile( ListTile(
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
leading: Avatar( leading: Avatar(
mxContent: sender.avatarUrl, // mxContent: sender.avatarUrl,
name: sender.calcDisplayname(), // name: sender.calcDisplayname(),
presenceUserId: sender.stateKey, // presenceUserId: sender.stateKey,
name: "?",
client: event.room.client, client: event.room.client,
), ),
title: Text(sender.calcDisplayname()), title: const Text(
// sender.calcDisplayname(),
"?",
),
subtitle: Text(event.originServerTs.localizedTime(context)), subtitle: Text(event.originServerTs.localizedTime(context)),
trailing: const Icon(Icons.lock_outlined), trailing: const Icon(Icons.lock_outlined),
), ),
@ -265,9 +269,10 @@ class MessageContent extends StatelessWidget {
builder: (context, snapshot) { builder: (context, snapshot) {
final reason = final reason =
event.redactedBecause?.content.tryGet<String>('reason'); event.redactedBecause?.content.tryGet<String>('reason');
final redactedBy = snapshot.data?.calcDisplayname() ?? // final redactedBy = snapshot.data?.calcDisplayname() ??
event.redactedBecause?.senderId.localpart ?? // event.redactedBecause?.senderId.localpart ??
L10n.of(context)!.user; // L10n.of(context)!.user;
const redactedBy = "?";
return _ButtonContent( return _ButtonContent(
label: reason == null label: reason == null
? L10n.of(context)!.redactedBy(redactedBy) ? L10n.of(context)!.redactedBy(redactedBy)
@ -385,8 +390,9 @@ class MessageContent extends StatelessWidget {
builder: (context, snapshot) { builder: (context, snapshot) {
return _ButtonContent( return _ButtonContent(
label: L10n.of(context)!.userSentUnknownEvent( label: L10n.of(context)!.userSentUnknownEvent(
snapshot.data?.calcDisplayname() ?? // snapshot.data?.calcDisplayname() ??
event.senderFromMemoryOrFallback.calcDisplayname(), // event.senderFromMemoryOrFallback.calcDisplayname(),
"?",
event.type, event.type,
), ),
icon: '', icon: '',

@ -59,7 +59,8 @@ class ReplyContent extends StatelessWidget {
future: displayEvent.fetchSenderUser(), future: displayEvent.fetchSenderUser(),
builder: (context, snapshot) { builder: (context, snapshot) {
return Text( return Text(
'${snapshot.data?.calcDisplayname() ?? displayEvent.senderFromMemoryOrFallback.calcDisplayname()}:', // '${snapshot.data?.calcDisplayname() ?? displayEvent.senderFromMemoryOrFallback.calcDisplayname()}:',
'?:',
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: TextStyle( style: TextStyle(

@ -37,9 +37,10 @@ class SeenByRow extends StatelessWidget {
? seenByUsers.sublist(0, maxAvatars) ? seenByUsers.sublist(0, maxAvatars)
: seenByUsers) : seenByUsers)
.map( .map(
(user) => Avatar( (user) => const Avatar(
mxContent: user.avatarUrl, // mxContent: user.avatarUrl,
name: user.calcDisplayname(), // name: user.calcDisplayname(),
name: "?",
size: 16, size: 16,
), ),
), ),

@ -1,12 +1,11 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter/material.dart';
import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/config/themes.dart';
import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/chat.dart';
import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/avatar.dart';
import 'package:fluffychat/widgets/matrix.dart'; import 'package:fluffychat/widgets/matrix.dart';
import 'package:flutter/material.dart';
class TypingIndicators extends StatelessWidget { class TypingIndicators extends StatelessWidget {
final ChatController controller; final ChatController controller;
@ -56,10 +55,11 @@ class TypingIndicators extends StatelessWidget {
child: Stack( child: Stack(
children: [ children: [
if (typingUsers.isNotEmpty) if (typingUsers.isNotEmpty)
Avatar( const Avatar(
size: avatarSize, size: avatarSize,
mxContent: typingUsers.first.avatarUrl, // mxContent: typingUsers.first.avatarUrl,
name: typingUsers.first.calcDisplayname(), // name: typingUsers.first.calcDisplayname(),
name: "?",
), ),
if (typingUsers.length == 2) if (typingUsers.length == 2)
Padding( Padding(
@ -69,9 +69,10 @@ class TypingIndicators extends StatelessWidget {
mxContent: typingUsers.length == 2 mxContent: typingUsers.length == 2
? typingUsers.last.avatarUrl ? typingUsers.last.avatarUrl
: null, : null,
name: typingUsers.length == 2 // name: typingUsers.length == 2
? typingUsers.last.calcDisplayname() // ? typingUsers.last.calcDisplayname()
: '+${typingUsers.length - 1}', // : '+${typingUsers.length - 1}',
name: "?",
), ),
), ),
], ],

@ -39,9 +39,10 @@ class ParticipantListItem extends StatelessWidget {
), ),
title: Row( title: Row(
children: <Widget>[ children: <Widget>[
Expanded( const Expanded(
child: Text( child: Text(
user.calcDisplayname(), // user.calcDisplayname(),
"?",
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
), ),
@ -88,8 +89,9 @@ class ParticipantListItem extends StatelessWidget {
subtitle: Text(user.id), subtitle: Text(user.id),
leading: Avatar( leading: Avatar(
mxContent: user.avatarUrl, mxContent: user.avatarUrl,
name: user.calcDisplayname(), // name: user.calcDisplayname(),
presenceUserId: user.stateKey, // presenceUserId: user.stateKey,
name: "?",
), ),
), ),
); );

@ -1,11 +1,9 @@
import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:adaptive_dialog/adaptive_dialog.dart';
import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart';
import 'package:fluffychat/pangea/utils/get_chat_list_item_subtitle.dart';
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
import 'package:fluffychat/utils/room_status_extension.dart'; import 'package:fluffychat/utils/room_status_extension.dart';
import 'package:fluffychat/widgets/hover_builder.dart'; import 'package:fluffychat/widgets/hover_builder.dart';
import 'package:fluffychat/widgets/matrix.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart';
@ -240,51 +238,52 @@ class ChatListItem extends StatelessWidget {
softWrap: false, softWrap: false,
) )
// #Pangea // #Pangea
: FutureBuilder<String>( : const SizedBox(),
future: room.lastEvent != null // FutureBuilder<String>(
? GetChatListItemSubtitle().getSubtitle( // future: room.lastEvent != null
L10n.of(context)!, // ? GetChatListItemSubtitle().getSubtitle(
room.lastEvent, // L10n.of(context)!,
MatrixState.pangeaController, // room.lastEvent,
) // MatrixState.pangeaController,
: Future.value(L10n.of(context)!.emptyChat), // )
builder: (context, snapshot) { // : Future.value(L10n.of(context)!.emptyChat),
// Pangea# // builder: (context, snapshot) {
return Text( // // Pangea#
room.membership == Membership.invite // return Text(
? isDirectChat // room.membership == Membership.invite
? L10n.of(context)!.invitePrivateChat // ? isDirectChat
: L10n.of(context)!.inviteGroupChat // ? L10n.of(context)!.invitePrivateChat
// #Pangea // : L10n.of(context)!.inviteGroupChat
: snapshot.data ?? // // #Pangea
// Pangea# // : snapshot.data ??
room.lastEvent // // Pangea#
?.calcLocalizedBodyFallback( // room.lastEvent
MatrixLocals(L10n.of(context)!), // ?.calcLocalizedBodyFallback(
hideReply: true, // MatrixLocals(L10n.of(context)!),
hideEdit: true, // hideReply: true,
plaintextBody: true, // hideEdit: true,
removeMarkdown: true, // plaintextBody: true,
withSenderNamePrefix: !isDirectChat || // removeMarkdown: true,
directChatMatrixId != // withSenderNamePrefix: !isDirectChat ||
room.lastEvent?.senderId, // directChatMatrixId !=
) ?? // room.lastEvent?.senderId,
L10n.of(context)!.emptyChat, // ) ??
softWrap: false, // L10n.of(context)!.emptyChat,
maxLines: 1, // softWrap: false,
overflow: TextOverflow.ellipsis, // maxLines: 1,
style: TextStyle( // overflow: TextOverflow.ellipsis,
fontWeight: unread || room.hasNewMessages // style: TextStyle(
? FontWeight.bold // fontWeight: unread || room.hasNewMessages
: null, // ? FontWeight.bold
color: theme.colorScheme.onSurfaceVariant, // : null,
decoration: room.lastEvent?.redacted == true // color: theme.colorScheme.onSurfaceVariant,
? TextDecoration.lineThrough // decoration: room.lastEvent?.redacted == true
: null, // ? TextDecoration.lineThrough
), // : null,
); // ),
}, // );
), // },
// ),
), ),
const SizedBox(width: 8), const SizedBox(width: 8),
// #Pangea // #Pangea

@ -1,15 +1,13 @@
import 'package:fluffychat/utils/date_time_extension.dart';
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
import 'package:fluffychat/utils/url_launcher.dart';
import 'package:fluffychat/widgets/avatar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:flutter_linkify/flutter_linkify.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:matrix/matrix.dart'; import 'package:matrix/matrix.dart';
import 'package:fluffychat/utils/date_time_extension.dart';
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
import 'package:fluffychat/utils/url_launcher.dart';
import 'package:fluffychat/widgets/avatar.dart';
class ChatSearchMessageTab extends StatelessWidget { class ChatSearchMessageTab extends StatelessWidget {
final String searchQuery; final String searchQuery;
final Room room; final Room room;
@ -98,9 +96,10 @@ class ChatSearchMessageTab extends StatelessWidget {
} }
final event = events[i]; final event = events[i];
final sender = event.senderFromMemoryOrFallback; final sender = event.senderFromMemoryOrFallback;
final displayname = sender.calcDisplayname( // final displayname = sender.calcDisplayname(
i18n: MatrixLocals(L10n.of(context)!), // i18n: MatrixLocals(L10n.of(context)!),
); // );
const displayname = "?";
return _MessageSearchResultListTile( return _MessageSearchResultListTile(
sender: sender, sender: sender,
displayname: displayname, displayname: displayname,

@ -22,9 +22,10 @@ class UserBottomSheetView extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final user = controller.widget.user; final user = controller.widget.user;
final userId = (user?.id ?? controller.widget.profile?.userId)!; final userId = (user?.id ?? controller.widget.profile?.userId)!;
final displayname = (user?.calcDisplayname() ?? // final displayname = (user?.calcDisplayname() ??
controller.widget.profile?.displayName ?? // controller.widget.profile?.displayName ??
controller.widget.profile?.userId.localpart)!; // controller.widget.profile?.userId.localpart)!;
const displayname = "?";
final avatarUrl = user?.avatarUrl ?? controller.widget.profile?.avatarUrl; final avatarUrl = user?.avatarUrl ?? controller.widget.profile?.avatarUrl;
final client = Matrix.of(controller.widget.outerContext).client; final client = Matrix.of(controller.widget.outerContext).client;
@ -39,7 +40,7 @@ class UserBottomSheetView extends StatelessWidget {
title: Column( title: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text(displayname), const Text(displayname),
PresenceBuilder( PresenceBuilder(
userId: userId, userId: userId,
client: client, client: client,
@ -213,7 +214,7 @@ class UserBottomSheetView extends StatelessWidget {
foregroundColor: foregroundColor:
Theme.of(context).colorScheme.onSurface, Theme.of(context).colorScheme.onSurface,
), ),
label: Text( label: const Text(
displayname, displayname,
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,

@ -184,8 +184,8 @@ class MatrixLocals extends MatrixLocalizations {
@override @override
String redactedAnEvent(Event redactedEvent) { String redactedAnEvent(Event redactedEvent) {
return l10n.redactedAnEvent( return l10n.redactedAnEvent(
redactedEvent.redactedBecause?.senderFromMemoryOrFallback // redactedEvent.redactedBecause?.senderFromMemoryOrFallback
.calcDisplayname() ?? // .calcDisplayname() ??
l10n.user, l10n.user,
); );
} }
@ -198,7 +198,8 @@ class MatrixLocals extends MatrixLocalizations {
@override @override
String removedBy(Event redactedEvent) { String removedBy(Event redactedEvent) {
return l10n.redactedBy( return l10n.redactedBy(
redactedEvent.senderFromMemoryOrFallback.calcDisplayname(), // redactedEvent.senderFromMemoryOrFallback.calcDisplayname(),
"?",
); );
} }

@ -1,5 +1,4 @@
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.dart'; import 'package:matrix/matrix.dart';
@ -20,17 +19,21 @@ extension RoomStatusExtension on Room {
} else if (typingUsers.length == 1) { } else if (typingUsers.length == 1) {
typingText = L10n.of(context)!.isTyping; typingText = L10n.of(context)!.isTyping;
if (typingUsers.first.id != directChatMatrixID) { if (typingUsers.first.id != directChatMatrixID) {
typingText = typingText = L10n.of(context)!.userIsTyping(
L10n.of(context)!.userIsTyping(typingUsers.first.calcDisplayname()); // typingUsers.first.calcDisplayname(),
"?",
);
} }
} else if (typingUsers.length == 2) { } else if (typingUsers.length == 2) {
typingText = L10n.of(context)!.userAndUserAreTyping( typingText = L10n.of(context)!.userAndUserAreTyping(
typingUsers.first.calcDisplayname(), // typingUsers.first.calcDisplayname(),
typingUsers[1].calcDisplayname(), // typingUsers[1].calcDisplayname(),
"?", "?",
); );
} else if (typingUsers.length > 2) { } else if (typingUsers.length > 2) {
typingText = L10n.of(context)!.userAndOthersAreTyping( typingText = L10n.of(context)!.userAndOthersAreTyping(
typingUsers.first.calcDisplayname(), // typingUsers.first.calcDisplayname(),
"?",
(typingUsers.length - 1).toString(), (typingUsers.length - 1).toString(),
); );
} }

Loading…
Cancel
Save