Merge pull request #571 from pangeachat/revert-anonymous

Revert "don't show user avatars or display names in chats"
This commit is contained in:
ggurdin 2024-08-12 14:49:27 -04:00 committed by GitHub
commit 368eae1014
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 114 additions and 129 deletions

View file

@ -1,12 +1,14 @@
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/utils/adaptive_bottom_sheet.dart';
import 'package:fluffychat/utils/date_time_extension.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 {
void showInfoDialog(BuildContext context) => showAdaptiveBottomSheet(
@ -47,16 +49,15 @@ class EventInfoDialog extends StatelessWidget {
children: [
ListTile(
leading: Avatar(
// mxContent: event.senderFromMemoryOrFallback.avatarUrl,
// name: event.senderFromMemoryOrFallback.calcDisplayname(),
name: "?",
mxContent: event.senderFromMemoryOrFallback.avatarUrl,
name: event.senderFromMemoryOrFallback.calcDisplayname(),
client: event.room.client,
// presenceUserId: event.senderId,
presenceUserId: event.senderId,
),
title: Text(L10n.of(context)!.sender),
// subtitle: Text(
// '${event.senderFromMemoryOrFallback.calcDisplayname()} [${event.senderId}]',
// ),
subtitle: Text(
'${event.senderFromMemoryOrFallback.calcDisplayname()} [${event.senderId}]',
),
),
ListTile(
title: Text(L10n.of(context)!.time),

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,13 +1,15 @@
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_gen/gen_l10n/l10n.dart';
import 'package:flutter_linkify/flutter_linkify.dart';
import 'package:go_router/go_router.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 {
final String searchQuery;
final Room room;
@ -96,10 +98,9 @@ class ChatSearchMessageTab extends StatelessWidget {
}
final event = events[i];
final sender = event.senderFromMemoryOrFallback;
// final displayname = sender.calcDisplayname(
// i18n: MatrixLocals(L10n.of(context)!),
// );
const displayname = "?";
final displayname = sender.calcDisplayname(
i18n: MatrixLocals(L10n.of(context)!),
);
return _MessageSearchResultListTile(
sender: sender,
displayname: displayname,

View file

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

View file

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

View file

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