design: Adjust chat settings design

pull/1022/head
krille-chan 2 years ago
parent e11195f4fc
commit e43a4ad65f
No known key found for this signature in database

@ -929,7 +929,9 @@
"type": "text", "type": "text",
"placeholders": {} "placeholders": {}
}, },
"hideUnknownEvents": "Hide unknown events", "hideRedactedMessages": "Hide redacted messages",
"hideRedactedMessagesBody": "If someone redacts a message, this message won't be visible in the chat anymore.",
"hideInvalidOrUnknownMessageFormats": "Hide invalid or unknown message formats",
"@hideUnknownEvents": { "@hideUnknownEvents": {
"type": "text", "type": "text",
"placeholders": {} "placeholders": {}
@ -1384,6 +1386,8 @@
"type": "text", "type": "text",
"placeholders": {} "placeholders": {}
}, },
"hideMemberChangesInPublicChats": "Hide member changes in public chats",
"hideMemberChangesInPublicChatsBody": "Do not show in the chat timeline if someone joins or leaves a public chat to improve readability.",
"overview": "Overview", "overview": "Overview",
"notifyMeFor": "Notify me for", "notifyMeFor": "Notify me for",
"passwordRecoverySettings": "Password recovery settings", "passwordRecoverySettings": "Password recovery settings",

@ -31,7 +31,10 @@ class SettingsChatView extends StatelessWidget {
trailing: const Icon(Icons.chevron_right_outlined), trailing: const Icon(Icons.chevron_right_outlined),
leading: const Icon(Icons.emoji_emotions_outlined), leading: const Icon(Icons.emoji_emotions_outlined),
), ),
const Divider(), Divider(
height: 1,
color: Theme.of(context).dividerColor,
),
SettingsSwitchListTile.adaptive( SettingsSwitchListTile.adaptive(
title: L10n.of(context)!.formattedMessages, title: L10n.of(context)!.formattedMessages,
subtitle: L10n.of(context)!.formattedMessagesDescription, subtitle: L10n.of(context)!.formattedMessagesDescription,
@ -40,23 +43,25 @@ class SettingsChatView extends StatelessWidget {
defaultValue: AppConfig.renderHtml, defaultValue: AppConfig.renderHtml,
), ),
SettingsSwitchListTile.adaptive( SettingsSwitchListTile.adaptive(
title: L10n.of(context)!.hideRedactedEvents, title: L10n.of(context)!.hideMemberChangesInPublicChats,
subtitle: L10n.of(context)!.hideMemberChangesInPublicChatsBody,
onChanged: (b) => AppConfig.hideUnimportantStateEvents = b,
storeKey: SettingKeys.hideUnimportantStateEvents,
defaultValue: AppConfig.hideUnimportantStateEvents,
),
SettingsSwitchListTile.adaptive(
title: L10n.of(context)!.hideRedactedMessages,
subtitle: L10n.of(context)!.hideRedactedMessagesBody,
onChanged: (b) => AppConfig.hideRedactedEvents = b, onChanged: (b) => AppConfig.hideRedactedEvents = b,
storeKey: SettingKeys.hideRedactedEvents, storeKey: SettingKeys.hideRedactedEvents,
defaultValue: AppConfig.hideRedactedEvents, defaultValue: AppConfig.hideRedactedEvents,
), ),
SettingsSwitchListTile.adaptive( SettingsSwitchListTile.adaptive(
title: L10n.of(context)!.hideUnknownEvents, title: L10n.of(context)!.hideInvalidOrUnknownMessageFormats,
onChanged: (b) => AppConfig.hideUnknownEvents = b, onChanged: (b) => AppConfig.hideUnknownEvents = b,
storeKey: SettingKeys.hideUnknownEvents, storeKey: SettingKeys.hideUnknownEvents,
defaultValue: AppConfig.hideUnknownEvents, defaultValue: AppConfig.hideUnknownEvents,
), ),
SettingsSwitchListTile.adaptive(
title: L10n.of(context)!.hideUnimportantStateEvents,
onChanged: (b) => AppConfig.hideUnimportantStateEvents = b,
storeKey: SettingKeys.hideUnimportantStateEvents,
defaultValue: AppConfig.hideUnimportantStateEvents,
),
if (PlatformInfos.isMobile) if (PlatformInfos.isMobile)
SettingsSwitchListTile.adaptive( SettingsSwitchListTile.adaptive(
title: L10n.of(context)!.autoplayImages, title: L10n.of(context)!.autoplayImages,
@ -64,7 +69,10 @@ class SettingsChatView extends StatelessWidget {
storeKey: SettingKeys.autoplayImages, storeKey: SettingKeys.autoplayImages,
defaultValue: AppConfig.autoplayImages, defaultValue: AppConfig.autoplayImages,
), ),
const Divider(), Divider(
height: 1,
color: Theme.of(context).dividerColor,
),
SettingsSwitchListTile.adaptive( SettingsSwitchListTile.adaptive(
title: L10n.of(context)!.sendOnEnter, title: L10n.of(context)!.sendOnEnter,
onChanged: (b) => AppConfig.sendOnEnter = b, onChanged: (b) => AppConfig.sendOnEnter = b,

@ -18,10 +18,6 @@ extension IsStateExtension on Event {
(!AppConfig.hideUnknownEvents || isEventTypeKnown) && (!AppConfig.hideUnknownEvents || isEventTypeKnown) &&
// remove state events that we don't want to render // remove state events that we don't want to render
(isState || !AppConfig.hideAllStateEvents) && (isState || !AppConfig.hideAllStateEvents) &&
// hide unimportant state events
(!AppConfig.hideUnimportantStateEvents ||
!isState ||
importantStateEvents.contains(type)) &&
// hide simple join/leave member events in public rooms // hide simple join/leave member events in public rooms
(!AppConfig.hideUnimportantStateEvents || (!AppConfig.hideUnimportantStateEvents ||
type != EventTypes.RoomMember || type != EventTypes.RoomMember ||
@ -29,14 +25,6 @@ extension IsStateExtension on Event {
content.tryGet<String>('membership') == 'ban' || content.tryGet<String>('membership') == 'ban' ||
stateKey != senderId); stateKey != senderId);
static const Set<String> importantStateEvents = {
EventTypes.Encryption,
EventTypes.RoomCreate,
EventTypes.RoomMember,
EventTypes.RoomTombstone,
EventTypes.CallInvite,
};
bool get isState => !{ bool get isState => !{
EventTypes.Message, EventTypes.Message,
EventTypes.Sticker, EventTypes.Sticker,

Loading…
Cancel
Save