chore: Make push gateway configurable

Signed-off-by: Krille <c.kussowski@famedly.com>
pull/1701/head
Krille 6 months ago
parent 03ea244e64
commit 92db578365
No known key found for this signature in database
GPG Key ID: E067ECD60F1A0652

@ -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(

@ -45,7 +45,15 @@ enum AppSettings<T> {
audioRecordingEchoCancel<bool>('audioRecordingEchoCancel', false),
audioRecordingNoiseSuppress<bool>('audioRecordingNoiseSuppress', true),
audioRecordingBitRate<int>('audioRecordingBitRate', 64000),
audioRecordingSamplingRate<int>('audioRecordingSamplingRate', 44100);
audioRecordingSamplingRate<int>('audioRecordingSamplingRate', 44100),
pushNotificationsGatewayUrl<String>(
'pushNotificationsGatewayUrl',
'https://push.fluffychat.im/_matrix/push/v1/notify',
),
pushNotificationsPusherFormat<String>(
'pushNotificationsPusherFormat',
'event_id_only',
);
final String key;
final T defaultValue;
@ -55,6 +63,7 @@ enum AppSettings<T> {
extension AppSettingsBoolExtension on AppSettings<bool> {
bool getItem(SharedPreferences store) => store.getBool(key) ?? defaultValue;
Future<void> setItem(SharedPreferences store, bool value) =>
store.setBool(key, value);
}
@ -62,12 +71,14 @@ extension AppSettingsBoolExtension on AppSettings<bool> {
extension AppSettingsStringExtension on AppSettings<String> {
String getItem(SharedPreferences store) =>
store.getString(key) ?? defaultValue;
Future<void> setItem(SharedPreferences store, String value) =>
store.setString(key, value);
}
extension AppSettingsIntExtension on AppSettings<int> {
int getItem(SharedPreferences store) => store.getInt(key) ?? defaultValue;
Future<void> setItem(SharedPreferences store, int value) =>
store.setInt(key, value);
}
@ -75,6 +86,7 @@ extension AppSettingsIntExtension on AppSettings<int> {
extension AppSettingsDoubleExtension on AppSettings<double> {
double getItem(SharedPreferences store) =>
store.getDouble(key) ?? defaultValue;
Future<void> setItem(SharedPreferences store, double value) =>
store.setDouble(key, value);
}

@ -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<String> features = [/*list of features*/];
final List<String> features = [
/*list of features*/
];
@override
Future<String?> getDistributor() async {
return await UnifiedPush.getDistributor();

Loading…
Cancel
Save