2022-11-19 05:00:17 +00:00
|
|
|
enum NotificationType {
|
|
|
|
favorite,
|
|
|
|
follow,
|
|
|
|
follow_request,
|
|
|
|
mention,
|
|
|
|
reshare,
|
2022-11-30 19:32:40 +00:00
|
|
|
status,
|
|
|
|
unknown;
|
|
|
|
|
|
|
|
static NotificationType parse(String? text) {
|
|
|
|
if (text == null) {
|
|
|
|
return unknown;
|
|
|
|
}
|
|
|
|
|
|
|
|
return NotificationType.values.firstWhere(
|
|
|
|
(e) => e.name == text,
|
|
|
|
orElse: () => unknown,
|
|
|
|
);
|
|
|
|
}
|
2022-11-19 05:00:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
class UserNotification {
|
|
|
|
final String id;
|
2022-11-30 19:32:40 +00:00
|
|
|
final NotificationType type;
|
2022-11-30 00:56:14 +00:00
|
|
|
final String fromId;
|
2022-11-19 05:00:17 +00:00
|
|
|
final String fromName;
|
|
|
|
final String fromUrl;
|
|
|
|
final int timestamp;
|
|
|
|
final String iid;
|
2022-11-30 00:56:14 +00:00
|
|
|
final bool dismissed;
|
2022-11-19 05:00:17 +00:00
|
|
|
final String content;
|
|
|
|
final String link;
|
|
|
|
|
|
|
|
UserNotification({
|
|
|
|
required this.id,
|
|
|
|
required this.type,
|
2022-11-30 00:56:14 +00:00
|
|
|
required this.fromId,
|
2022-11-19 05:00:17 +00:00
|
|
|
required this.fromName,
|
|
|
|
required this.fromUrl,
|
|
|
|
required this.timestamp,
|
|
|
|
required this.iid,
|
2022-11-30 00:56:14 +00:00
|
|
|
required this.dismissed,
|
2022-11-19 05:00:17 +00:00
|
|
|
required this.content,
|
|
|
|
required this.link,
|
|
|
|
});
|
2022-11-22 04:46:34 +00:00
|
|
|
|
|
|
|
@override
|
|
|
|
String toString() {
|
2022-11-30 00:56:14 +00:00
|
|
|
return 'UserNotification{id: $id, seen: $dismissed, fromName: $fromName, content: $content}';
|
2022-11-22 04:46:34 +00:00
|
|
|
}
|
2022-11-19 05:00:17 +00:00
|
|
|
}
|