Skip to content

Commit aa6d021

Browse files
committed
Add option to show homeserver in the timeline
1 parent 1edddaa commit aa6d021

4 files changed

Lines changed: 31 additions & 1 deletion

File tree

commet/lib/config/preferences.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,9 @@ class Preferences {
301301
BoolPreference showRoomPreviewsInSpaceSidebar =
302302
BoolPreference("show_room_previews_in_space_sidebar", defaultValue: true);
303303

304+
BoolPreference showHomeserverInTimeline =
305+
BoolPreference("show_homeserver_in_timeline", defaultValue: false);
306+
304307
BoolPreference autoFocusMessageTextBox = BoolPreference(
305308
"auto_focus_message_textbox",
306309
defaultGetter: () => Layout.mobile ? false : true,

commet/lib/ui/molecules/timeline_events/events/timeline_event_view_message.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ class _TimelineEventViewMessageState extends State<TimelineEventViewMessage>
126126
return TimelineEventLayoutMessage(
127127
senderName: senderName,
128128
senderColor: senderColor,
129+
senderId: preferences.showHomeserverInTimeline.value ? senderId : null,
129130
senderAvatar: senderAvatar,
130131
showSender: showSender,
131132
formattedContent: formattedContent,

commet/lib/ui/molecules/timeline_events/layouts/timeline_event_layout_message.dart

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class TimelineEventLayoutMessage extends StatelessWidget {
1010
{super.key,
1111
required this.senderName,
1212
required this.senderColor,
13+
this.senderId,
1314
this.senderAvatar,
1415
this.formattedContent,
1516
this.attachments,
@@ -26,6 +27,7 @@ class TimelineEventLayoutMessage extends StatelessWidget {
2627
this.avatarBuilder,
2728
this.showSender = true});
2829
final String senderName;
30+
final String? senderId;
2931
final Color senderColor;
3032
final ImageProvider? senderAvatar;
3133
final Widget? formattedContent;
@@ -70,7 +72,15 @@ class TimelineEventLayoutMessage extends StatelessWidget {
7072
Row(
7173
mainAxisAlignment: MainAxisAlignment.spaceBetween,
7274
children: [
73-
name(),
75+
Row(
76+
mainAxisAlignment: MainAxisAlignment.start,
77+
spacing: 3,
78+
children: [
79+
name(),
80+
if(senderId != null)
81+
tiamat.Text.labelLow(senderId!.split(":")[1], color: Color.from(alpha: 1.0, red: 0.5, green: 0.5, blue: 0.5),)
82+
]
83+
),
7484
if (timestamp != null)
7585
tiamat.Text.labelLow(timestamp!),
7686
],

commet/lib/ui/pages/settings/categories/app/appearance_settings_page.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,16 @@ class _AppearanceSettingsPageState extends State<AppearanceSettingsPage> {
5858
desc:
5959
"Description for enabling using the preview list in the space sidebar");
6060

61+
String get labelShowUserHomeServerInMessage => Intl.message(
62+
"Homeserver in timeline",
63+
name: "labelShowUserHomeServerInMessage",
64+
desc: "Label for showing homeserver in message rendering");
65+
66+
String get labelShowUserHomeServerInMessageDescription => Intl.message(
67+
"Show the homeserver of a user next to their name in the timeline",
68+
name: "labelShowUserHomeServerInMessage",
69+
desc: "Label for showing homeserver in message rendering");
70+
6171
@override
6272
void initState() {
6373
super.initState();
@@ -128,6 +138,12 @@ class _AppearanceSettingsPageState extends State<AppearanceSettingsPage> {
128138
preference: preferences.usePlaceholderRoomAvatars,
129139
title: labelUseRoomAvatarPlaceholders,
130140
description: labelUseRoomAvatarPlaceholdersDescription,
141+
),
142+
const Seperator(),
143+
BooleanPreferenceToggle(
144+
preference: preferences.showHomeserverInTimeline,
145+
title: labelShowUserHomeServerInMessage,
146+
description: labelShowUserHomeServerInMessageDescription,
131147
)
132148
],
133149
),

0 commit comments

Comments
 (0)