diff --git a/lib/config/app_config.dart b/lib/config/app_config.dart index 63d5a2307..472e633b2 100644 --- a/lib/config/app_config.dart +++ b/lib/config/app_config.dart @@ -4,10 +4,13 @@ import 'package:matrix/matrix.dart'; abstract class AppConfig { static String _applicationName = 'FluffyChat'; + static String get applicationName => _applicationName; static String? _applicationWelcomeMessage; + static String? get applicationWelcomeMessage => _applicationWelcomeMessage; static String _defaultHomeserver = 'matrix.org'; + static String get defaultHomeserver => _defaultHomeserver; static double fontSizeFactor = 1; static const Color chatColor = primaryColor; @@ -20,6 +23,7 @@ abstract class AppConfig { static const Color secondaryColor = Color(0xFF41a2bc); static String _privacyUrl = 'https://github.com/krille-chan/fluffychat/blob/main/PRIVACY.md'; + static String get privacyUrl => _privacyUrl; static const String website = 'https://fluffychat.im'; static const String enablePushTutorial = @@ -31,6 +35,7 @@ abstract class AppConfig { static const String appId = 'im.fluffychat.FluffyChat'; static const String appOpenUrlScheme = 'im.fluffychat'; static String _webBaseUrl = 'https://fluffychat.im/web'; + static String get webBaseUrl => _webBaseUrl; static const String sourceCodeUrl = 'https://github.com/krille-chan/fluffychat'; @@ -62,9 +67,6 @@ abstract class AppConfig { static const String schemePrefix = 'matrix:'; static const String pushNotificationsChannelId = 'fluffychat_push'; static const String pushNotificationsAppId = 'chat.fluffy.fluffychat'; - static const String pushNotificationsGatewayUrl = - 'https://push.fluffychat.im/_matrix/push/v1/notify'; - static const String pushNotificationsPusherFormat = 'event_id_only'; static const double borderRadius = 18.0; static const double columnWidth = 360.0; static final Uri homeserverList = Uri( diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart index 13b7350ec..05ccef14e 100644 --- a/lib/config/setting_keys.dart +++ b/lib/config/setting_keys.dart @@ -45,7 +45,15 @@ enum AppSettings { audioRecordingEchoCancel('audioRecordingEchoCancel', false), audioRecordingNoiseSuppress('audioRecordingNoiseSuppress', true), audioRecordingBitRate('audioRecordingBitRate', 64000), - audioRecordingSamplingRate('audioRecordingSamplingRate', 44100); + audioRecordingSamplingRate('audioRecordingSamplingRate', 44100), + pushNotificationsGatewayUrl( + 'pushNotificationsGatewayUrl', + 'https://push.fluffychat.im/_matrix/push/v1/notify', + ), + pushNotificationsPusherFormat( + 'pushNotificationsPusherFormat', + 'event_id_only', + ); final String key; final T defaultValue; @@ -55,6 +63,7 @@ enum AppSettings { extension AppSettingsBoolExtension on AppSettings { bool getItem(SharedPreferences store) => store.getBool(key) ?? defaultValue; + Future setItem(SharedPreferences store, bool value) => store.setBool(key, value); } @@ -62,12 +71,14 @@ extension AppSettingsBoolExtension on AppSettings { extension AppSettingsStringExtension on AppSettings { String getItem(SharedPreferences store) => store.getString(key) ?? defaultValue; + Future setItem(SharedPreferences store, String value) => store.setString(key, value); } extension AppSettingsIntExtension on AppSettings { int getItem(SharedPreferences store) => store.getInt(key) ?? defaultValue; + Future setItem(SharedPreferences store, int value) => store.setInt(key, value); } @@ -75,6 +86,7 @@ extension AppSettingsIntExtension on AppSettings { extension AppSettingsDoubleExtension on AppSettings { double getItem(SharedPreferences store) => store.getDouble(key) ?? defaultValue; + Future setItem(SharedPreferences store, double value) => store.setDouble(key, value); } diff --git a/lib/utils/background_push.dart b/lib/utils/background_push.dart index d854de976..b3eb6276b 100644 --- a/lib/utils/background_push.dart +++ b/lib/utils/background_push.dart @@ -21,9 +21,10 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; +import 'package:fluffychat/utils/push_helper.dart'; +import 'package:fluffychat/widgets/fluffy_chat_app.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; - import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_new_badger/flutter_new_badger.dart'; @@ -32,8 +33,6 @@ import 'package:matrix/matrix.dart'; import 'package:unifiedpush/unifiedpush.dart'; import 'package:unifiedpush_ui/unifiedpush_ui.dart'; -import 'package:fluffychat/utils/push_helper.dart'; -import 'package:fluffychat/widgets/fluffy_chat_app.dart'; import '../config/app_config.dart'; import '../config/setting_keys.dart'; import '../widgets/matrix.dart'; @@ -186,7 +185,8 @@ class BackgroundPush { currentPushers.first.lang == 'en' && currentPushers.first.data.url.toString() == gatewayUrl && currentPushers.first.data.format == - AppConfig.pushNotificationsPusherFormat && + AppSettings.pushNotificationsPusherFormat + .getItem(matrix!.store) && mapEquals( currentPushers.single.data.additionalProperties, {"data_message": pusherDataMessageFormat}, @@ -226,7 +226,8 @@ class BackgroundPush { lang: 'en', data: PusherData( url: Uri.parse(gatewayUrl!), - format: AppConfig.pushNotificationsPusherFormat, + format: AppSettings.pushNotificationsPusherFormat + .getItem(matrix!.store), additionalProperties: {"data_message": pusherDataMessageFormat}, ), kind: 'http', @@ -315,7 +316,8 @@ class BackgroundPush { } } await setupPusher( - gatewayUrl: AppConfig.pushNotificationsGatewayUrl, + gatewayUrl: + AppSettings.pushNotificationsGatewayUrl.getItem(matrix!.store), token: _fcmToken, ); } @@ -427,7 +429,10 @@ class BackgroundPush { } class UPFunctions extends UnifiedPushFunctions { - final List features = [/*list of features*/]; + final List features = [ + /*list of features*/ + ]; + @override Future getDistributor() async { return await UnifiedPush.getDistributor();