fluffychat/lib/config/app_config.dart

100 lines
4.2 KiB
Dart
Raw Normal View History

2021-01-24 16:38:25 +01:00
import 'dart:ui';
import 'package:matrix/matrix.dart';
2020-12-11 14:14:33 +01:00
abstract class AppConfig {
2020-12-18 11:43:13 +01:00
static String _applicationName = 'FluffyChat';
static String get applicationName => _applicationName;
static String? _applicationWelcomeMessage;
static String? get applicationWelcomeMessage => _applicationWelcomeMessage;
2021-06-06 16:55:31 +02:00
static String _defaultHomeserver = 'matrix.org';
2020-12-18 11:43:13 +01:00
static String get defaultHomeserver => _defaultHomeserver;
static double bubbleSizeFactor = 1;
2021-11-13 13:06:36 +01:00
static double fontSizeFactor = 1;
2022-05-18 08:54:50 +02:00
static const Color chatColor = primaryColor;
2022-05-18 12:13:59 +02:00
static Color? colorSchemeSeed = primaryColor;
2021-11-13 13:06:36 +01:00
static const double messageFontSize = 15.75;
2020-12-11 14:14:33 +01:00
static const bool allowOtherHomeservers = true;
static const bool enableRegistration = true;
2021-01-24 16:38:25 +01:00
static const Color primaryColor = Color(0xFF5625BA);
2021-01-31 23:54:33 +01:00
static const Color primaryColorLight = Color(0xFFCCBDEA);
static const Color secondaryColor = Color(0xFF41a2bc);
2021-11-05 09:53:27 +01:00
static String _privacyUrl =
'https://gitlab.com/famedly/fluffychat/-/blob/main/PRIVACY.md';
2020-12-18 11:43:13 +01:00
static String get privacyUrl => _privacyUrl;
2021-11-05 09:53:27 +01:00
static const String enablePushTutorial =
'https://www.reddit.com/r/fluffychat/comments/qn6liu/enable_push_notifications_without_google_services/';
2021-01-18 22:59:02 +01:00
static const String appId = 'im.fluffychat.FluffyChat';
2021-02-01 12:12:28 +01:00
static const String appOpenUrlScheme = 'im.fluffychat';
static String _webBaseUrl = 'https://fluffychat.im/web';
static String get webBaseUrl => _webBaseUrl;
2020-12-23 10:20:24 +01:00
static const String sourceCodeUrl = 'https://gitlab.com/famedly/fluffychat';
2020-12-11 14:14:33 +01:00
static const String supportUrl =
2020-12-23 10:15:25 +01:00
'https://gitlab.com/famedly/fluffychat/issues';
2020-12-11 14:14:33 +01:00
static const bool enableSentry = true;
static const String sentryDns =
2022-04-07 13:46:49 +02:00
'https://8591d0d863b646feb4f3dda7e5dcab38@o256755.ingest.sentry.io/5243143';
static bool renderHtml = true;
2020-12-11 14:14:33 +01:00
static bool hideRedactedEvents = false;
static bool hideUnknownEvents = true;
static bool showDirectChatsInSpaces = true;
static bool separateChatTypes = false;
static bool autoplayImages = true;
2021-08-24 20:43:21 +02:00
static bool sendOnEnter = false;
2022-02-19 11:58:21 +01:00
static bool experimentalVoip = false;
2020-12-12 17:01:59 +01:00
static const bool hideTypingUsernames = false;
2020-12-12 09:27:17 +01:00
static const bool hideAllStateEvents = false;
2020-12-11 14:14:33 +01:00
static const String inviteLinkPrefix = 'https://matrix.to/#/';
2021-11-22 19:19:18 +01:00
static const String deepLinkPrefix = 'im.fluffychat://chat/';
static const String schemePrefix = 'matrix:';
2020-12-11 14:14:33 +01:00
static const String pushNotificationsChannelId = 'fluffychat_push';
static const String pushNotificationsChannelName = 'FluffyChat push channel';
static const String pushNotificationsChannelDescription =
'Push notifications for FluffyChat';
static const String pushNotificationsAppId = 'chat.fluffy.fluffychat';
2021-01-14 18:00:16 +01:00
static const String pushNotificationsGatewayUrl =
2021-03-12 07:55:53 +01:00
'https://push.fluffychat.im/_matrix/push/v1/notify';
2020-12-11 14:14:33 +01:00
static const String pushNotificationsPusherFormat = 'event_id_only';
2021-01-20 19:53:19 +01:00
static const String emojiFontName = 'Noto Emoji';
static const String emojiFontUrl =
'https://github.com/googlefonts/noto-emoji/';
2021-11-13 13:06:36 +01:00
static const double borderRadius = 16.0;
2021-05-23 13:11:55 +02:00
static const double columnWidth = 360.0;
2020-12-18 11:43:13 +01:00
static void loadFromJson(Map<String, dynamic> json) {
if (json['chat_color'] != null) {
try {
2022-05-18 12:13:59 +02:00
colorSchemeSeed = Color(json['chat_color']);
} catch (e) {
Logs().w(
'Invalid color in config.json! Please make sure to define the color in this format: "0xffdd0000"',
e);
}
}
2020-12-18 11:43:13 +01:00
if (json['application_name'] is String) {
_applicationName = json['application_name'];
}
if (json['application_welcome_message'] is String) {
_applicationWelcomeMessage = json['application_welcome_message'];
}
if (json['default_homeserver'] is String) {
_defaultHomeserver = json['default_homeserver'];
}
if (json['privacy_url'] is String) {
_webBaseUrl = json['privacy_url'];
}
if (json['web_base_url'] is String) {
_privacyUrl = json['web_base_url'];
2020-12-18 11:43:13 +01:00
}
if (json['render_html'] is bool) {
renderHtml = json['render_html'];
}
if (json['hide_redacted_events'] is bool) {
hideRedactedEvents = json['hide_redacted_events'];
}
if (json['hide_unknown_events'] is bool) {
hideUnknownEvents = json['hide_unknown_events'];
}
}
2020-12-11 14:14:33 +01:00
}