include avatars on notifs
This commit is contained in:
parent
2beb6dcb9b
commit
74207e405b
4 changed files with 23 additions and 3 deletions
|
|
@ -1,6 +1,8 @@
|
||||||
import "dart:io";
|
import "dart:io";
|
||||||
|
|
||||||
import "package:flutter_local_notifications/flutter_local_notifications.dart";
|
import "package:flutter_local_notifications/flutter_local_notifications.dart";
|
||||||
|
// ignore: implementation_imports
|
||||||
|
import "package:flutter_local_notifications_linux/src/model/hint.dart";
|
||||||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||||
|
|
||||||
class NotificationsController
|
class NotificationsController
|
||||||
|
|
@ -75,7 +77,16 @@ class NotificationsController
|
||||||
),
|
),
|
||||||
iOS: .new(),
|
iOS: .new(),
|
||||||
macOS: .new(),
|
macOS: .new(),
|
||||||
linux: .new(icon: icon == null ? null : FilePathLinuxIcon(icon.path)),
|
linux: .new(
|
||||||
|
customHints: icon == null
|
||||||
|
? null
|
||||||
|
: [
|
||||||
|
.new(
|
||||||
|
name: "image-path",
|
||||||
|
value: LinuxHintStringValue(icon.path),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
windows: .new(),
|
windows: .new(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,11 +53,19 @@ class UnifiedPushController extends AsyncNotifier<bool> {
|
||||||
RoomsController.provider.select((rooms) => rooms[event.roomId]),
|
RoomsController.provider.select((rooms) => rooms[event.roomId]),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
final avatar = room?.metadata?.avatar;
|
||||||
|
final icon = avatar == null
|
||||||
|
? null
|
||||||
|
: await ref
|
||||||
|
.read(ClientController.provider.notifier)
|
||||||
|
.downloadMedia(.new(mxc: avatar, isAvatar: true));
|
||||||
|
|
||||||
await ref
|
await ref
|
||||||
.read(NotificationsController.provider.notifier)
|
.read(NotificationsController.provider.notifier)
|
||||||
.send(
|
.send(
|
||||||
id: event.eventId.hashCode & 0x7fffffff,
|
id: event.eventId.hashCode & 0x7fffffff,
|
||||||
title: room?.metadata?.name ?? "New Message",
|
title: room?.metadata?.name ?? "New Message",
|
||||||
|
icon: icon,
|
||||||
body: switch (event.content) {
|
body: switch (event.content) {
|
||||||
MessageContent(:final body) => body,
|
MessageContent(:final body) => body,
|
||||||
// TODO: Handle more types
|
// TODO: Handle more types
|
||||||
|
|
|
||||||
|
|
@ -520,7 +520,7 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "22.3.0"
|
version: "22.3.0"
|
||||||
flutter_local_notifications_linux:
|
flutter_local_notifications_linux:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_local_notifications_linux
|
name: flutter_local_notifications_linux
|
||||||
sha256: "9ca97e63776f29ab1b955725c09999fc2c150523269db150c39274f2a43c5a8b"
|
sha256: "9ca97e63776f29ab1b955725c09999fc2c150523269db150c39274f2a43c5a8b"
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,8 @@ dependencies:
|
||||||
material_ui: 1.1.0
|
material_ui: 1.1.0
|
||||||
unifiedpush: 6.2.0
|
unifiedpush: 6.2.0
|
||||||
unifiedpush_storage_shared_preferences: 1.0.0
|
unifiedpush_storage_shared_preferences: 1.0.0
|
||||||
flutter_local_notifications: ^22.3.0
|
flutter_local_notifications: 22.3.0
|
||||||
|
flutter_local_notifications_linux: 8.0.1
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
build_runner: 2.16.0
|
build_runner: 2.16.0
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue