refactor: Bring back notification web sound but make configurable
This commit is contained in:
parent
61c71d87f1
commit
0a59598188
4 changed files with 18 additions and 2 deletions
|
|
@ -68,7 +68,8 @@ enum AppSettings<T> {
|
||||||
tos<String>('chat.fluffy.tos_url', 'https://fluffychat.im/en/tos'),
|
tos<String>('chat.fluffy.tos_url', 'https://fluffychat.im/en/tos'),
|
||||||
sendTimelineEventTimeout<int>('chat.fluffy.send_timeline_event_timeout', 15),
|
sendTimelineEventTimeout<int>('chat.fluffy.send_timeline_event_timeout', 15),
|
||||||
lastSeenSupportBanner<int>('chat.fluffy.last_seen_support_banner', 0),
|
lastSeenSupportBanner<int>('chat.fluffy.last_seen_support_banner', 0),
|
||||||
supportBannerOptOut<bool>('chat.fluffy.support_banner_opt_out', false);
|
supportBannerOptOut<bool>('chat.fluffy.support_banner_opt_out', false),
|
||||||
|
webNotificationSound<bool>('chat.fluffy.web_notification_sound', true);
|
||||||
|
|
||||||
final String key;
|
final String key;
|
||||||
final T defaultValue;
|
final T defaultValue;
|
||||||
|
|
|
||||||
|
|
@ -2797,5 +2797,6 @@
|
||||||
"startVideoCall": "Start video call",
|
"startVideoCall": "Start video call",
|
||||||
"joinVoiceCall": "Join voice call",
|
"joinVoiceCall": "Join voice call",
|
||||||
"joinVideoCall": "Join video call",
|
"joinVideoCall": "Join video call",
|
||||||
"live": "Live"
|
"live": "Live",
|
||||||
|
"playSoundOnNotification": "Play sound on notification"
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
|
import 'package:fluffychat/config/setting_keys.dart';
|
||||||
import 'package:fluffychat/config/themes.dart';
|
import 'package:fluffychat/config/themes.dart';
|
||||||
import 'package:fluffychat/l10n/l10n.dart';
|
import 'package:fluffychat/l10n/l10n.dart';
|
||||||
import 'package:fluffychat/pages/settings_notifications/push_rule_extensions.dart';
|
import 'package:fluffychat/pages/settings_notifications/push_rule_extensions.dart';
|
||||||
import 'package:fluffychat/widgets/layouts/max_width_body.dart';
|
import 'package:fluffychat/widgets/layouts/max_width_body.dart';
|
||||||
|
import 'package:fluffychat/widgets/settings_switch_list_tile.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:matrix/matrix.dart';
|
import 'package:matrix/matrix.dart';
|
||||||
|
|
||||||
|
|
@ -47,6 +50,11 @@ class SettingsNotificationsView extends StatelessWidget {
|
||||||
return SelectionArea(
|
return SelectionArea(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
|
if (kIsWeb)
|
||||||
|
SettingsSwitchListTile.adaptive(
|
||||||
|
title: L10n.of(context).playSoundOnNotification,
|
||||||
|
setting: AppSettings.webNotificationSound,
|
||||||
|
),
|
||||||
if (pushRules != null)
|
if (pushRules != null)
|
||||||
for (final category in pushCategories) ...[
|
for (final category in pushCategories) ...[
|
||||||
ListTile(
|
ListTile(
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,10 @@ import 'package:matrix/matrix.dart';
|
||||||
import 'package:universal_html/html.dart' as html;
|
import 'package:universal_html/html.dart' as html;
|
||||||
|
|
||||||
extension LocalNotificationsExtension on MatrixState {
|
extension LocalNotificationsExtension on MatrixState {
|
||||||
|
static final html.AudioElement _audioPlayer = html.AudioElement()
|
||||||
|
..src = 'assets/assets/sounds/notification.ogg'
|
||||||
|
..load();
|
||||||
|
|
||||||
Future<void> showLocalNotification(Event event) async {
|
Future<void> showLocalNotification(Event event) async {
|
||||||
final l10n = L10n.of(context);
|
final l10n = L10n.of(context);
|
||||||
final roomId = event.room.id;
|
final roomId = event.room.id;
|
||||||
|
|
@ -69,6 +73,8 @@ extension LocalNotificationsExtension on MatrixState {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppSettings.webNotificationSound.value) _audioPlayer.play();
|
||||||
|
|
||||||
html.Notification(
|
html.Notification(
|
||||||
title,
|
title,
|
||||||
body: body,
|
body: body,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue