feat: Option to hide redacted and unknown events
This commit is contained in:
parent
29d6d7a793
commit
d500476fbc
16 changed files with 118 additions and 38 deletions
|
|
@ -2,6 +2,7 @@ import 'package:famedlysdk/famedlysdk.dart';
|
|||
import 'package:flutter_matrix_html/flutter_html.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import '../utils/url_launcher.dart';
|
||||
import '../config/setting_keys.dart';
|
||||
|
||||
import 'matrix.dart';
|
||||
|
||||
|
|
@ -59,10 +60,10 @@ class HtmlMessage extends StatelessWidget {
|
|||
);
|
||||
},
|
||||
setCodeLanguage: (String key, String value) async {
|
||||
await matrix.store.setItem('code_language.$key', value);
|
||||
await matrix.store.setItem('${SettingKeys.codeLanguage}.$key', value);
|
||||
},
|
||||
getCodeLanguage: (String key) async {
|
||||
return await matrix.store.getItem('code_language.$key');
|
||||
return await matrix.store.getItem('${SettingKeys.codeLanguage}.$key');
|
||||
},
|
||||
getPillInfo: (String identifier) async {
|
||||
if (room == null) {
|
||||
|
|
|
|||
|
|
@ -72,9 +72,6 @@ class Message extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (event.type == EventTypes.Unknown) {
|
||||
return Container();
|
||||
}
|
||||
if (![EventTypes.Message, EventTypes.Sticker, EventTypes.Encrypted]
|
||||
.contains(event.type)) {
|
||||
return StateMessage(event);
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ import '../utils/beautify_string_extension.dart';
|
|||
import '../utils/famedlysdk_store.dart';
|
||||
import '../views/key_verification.dart';
|
||||
import '../utils/platform_infos.dart';
|
||||
import '../config/app_config.dart';
|
||||
import '../config/setting_keys.dart';
|
||||
import 'avatar.dart';
|
||||
|
||||
class Matrix extends StatefulWidget {
|
||||
|
|
@ -72,7 +74,6 @@ class MatrixState extends State<Matrix> {
|
|||
|
||||
String activeRoomId;
|
||||
File wallpaper;
|
||||
bool renderHtml = false;
|
||||
|
||||
String jitsiInstance = 'https://meet.jit.si/';
|
||||
|
||||
|
|
@ -304,18 +305,26 @@ class MatrixState extends State<Matrix> {
|
|||
}
|
||||
if (store != null) {
|
||||
store
|
||||
.getItem('chat.fluffy.jitsi_instance')
|
||||
.getItem(SettingKeys.jitsiInstance)
|
||||
.then((final instance) => jitsiInstance = instance ?? jitsiInstance);
|
||||
store.getItem('chat.fluffy.wallpaper').then((final path) async {
|
||||
store.getItem(SettingKeys.wallpaper).then((final path) async {
|
||||
if (path == null) return;
|
||||
final file = File(path);
|
||||
if (await file.exists()) {
|
||||
wallpaper = file;
|
||||
}
|
||||
});
|
||||
store.getItem('chat.fluffy.renderHtml').then((final render) async {
|
||||
renderHtml = render == '1';
|
||||
});
|
||||
store
|
||||
.getItemBool(SettingKeys.renderHtml, AppConfig.renderHtml)
|
||||
.then((value) => AppConfig.renderHtml = value);
|
||||
store
|
||||
.getItemBool(
|
||||
SettingKeys.hideRedactedEvents, AppConfig.hideRedactedEvents)
|
||||
.then((value) => AppConfig.hideRedactedEvents = value);
|
||||
store
|
||||
.getItemBool(
|
||||
SettingKeys.hideUnknownEvents, AppConfig.hideUnknownEvents)
|
||||
.then((value) => AppConfig.hideUnknownEvents = value);
|
||||
}
|
||||
if (kIsWeb) {
|
||||
onFocusSub = html.window.onFocus.listen((_) => webHasFocus = true);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import 'package:matrix_link_text/link_text.dart';
|
|||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import '../utils/url_launcher.dart';
|
||||
import '../config/app_config.dart';
|
||||
import 'html_message.dart';
|
||||
import 'matrix.dart';
|
||||
import 'message_download_content.dart';
|
||||
|
|
@ -43,7 +44,7 @@ class MessageContent extends StatelessWidget {
|
|||
case MessageTypes.Text:
|
||||
case MessageTypes.Notice:
|
||||
case MessageTypes.Emote:
|
||||
if (Matrix.of(context).renderHtml &&
|
||||
if (AppConfig.renderHtml &&
|
||||
!event.redacted &&
|
||||
event.isRichMessage) {
|
||||
String html = event.content['formatted_body'];
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
|
||||
import 'html_message.dart';
|
||||
import 'matrix.dart';
|
||||
import '../config/app_config.dart';
|
||||
|
||||
class ReplyContent extends StatelessWidget {
|
||||
final Event replyEvent;
|
||||
|
|
@ -22,7 +22,7 @@ class ReplyContent extends StatelessWidget {
|
|||
? replyEvent.getDisplayEvent(timeline)
|
||||
: replyEvent;
|
||||
if (displayEvent != null &&
|
||||
Matrix.of(context).renderHtml &&
|
||||
AppConfig.renderHtml &&
|
||||
[EventTypes.Message, EventTypes.Encrypted]
|
||||
.contains(displayEvent.type) &&
|
||||
[MessageTypes.Text, MessageTypes.Notice, MessageTypes.Emote]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'matrix.dart';
|
||||
import '../config/setting_keys.dart';
|
||||
|
||||
enum Themes {
|
||||
light,
|
||||
|
|
@ -175,14 +176,12 @@ class ThemeSwitcherWidgetState extends State<ThemeSwitcherWidget> {
|
|||
BuildContext context;
|
||||
|
||||
Future loadSelection(MatrixState matrix) async {
|
||||
var item = await matrix.store.getItem('theme') ?? 'system';
|
||||
var item = await matrix.store.getItem(SettingKeys.theme) ?? 'system';
|
||||
selectedTheme = Themes.values.firstWhere(
|
||||
(e) => e.toString() == 'Themes.' + item,
|
||||
orElse: () => Themes.system);
|
||||
|
||||
amoledEnabled = (await matrix.store.getItem('amoled_enabled') ?? 'false')
|
||||
.toLowerCase() ==
|
||||
'true';
|
||||
amoledEnabled = await matrix.store.getItemBool(SettingKeys.amoledEnabled);
|
||||
|
||||
switchTheme(matrix, selectedTheme, amoledEnabled);
|
||||
return;
|
||||
|
|
@ -229,11 +228,12 @@ class ThemeSwitcherWidgetState extends State<ThemeSwitcherWidget> {
|
|||
}
|
||||
|
||||
Future saveThemeValue(MatrixState matrix, Themes value) async {
|
||||
await matrix.store.setItem('theme', value.toString().split('.').last);
|
||||
await matrix.store
|
||||
.setItem(SettingKeys.theme, value.toString().split('.').last);
|
||||
}
|
||||
|
||||
Future saveAmoledEnabledValue(MatrixState matrix, bool value) async {
|
||||
await matrix.store.setItem('amoled_enabled', value.toString());
|
||||
await matrix.store.setItem(SettingKeys.amoledEnabled, value.toString());
|
||||
}
|
||||
|
||||
void setup() async {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue