feat: 重构 Reminder Notification 系统并更新应用包名

This commit is contained in:
qzl
2026-03-30 18:36:57 +08:00
parent 9fb2a6857b
commit 91bf3c3f96
90 changed files with 5133 additions and 3017 deletions
@@ -17,6 +17,14 @@ class InboxApi {
final response = await _client.patch('$_prefix/$messageId/read');
return InboxMessageResponse.fromJson(response.data);
}
Future<Stream<String>> streamEvents({String? lastEventId}) {
final headers = <String, String>{'Accept': 'text/event-stream'};
if (lastEventId != null && lastEventId.isNotEmpty) {
headers['Last-Event-ID'] = lastEventId;
}
return _client.getSseLines('$_prefix/stream', headers: headers);
}
}
class InboxMessageResponse {
@@ -4,7 +4,10 @@ import '../../../../data/cache/cached_repository.dart';
import '../models/inbox_message.dart';
abstract class InboxRepository {
Future<List<InboxMessage>> getMessages({bool? isRead});
Future<List<InboxMessage>> getMessages({
bool? isRead,
bool forceRefresh = false,
});
Future<InboxMessage> markAsRead(String messageId);
}
@@ -26,9 +29,13 @@ class InboxRepositoryImpl extends CachedRepository<List<InboxMessage>>
);
@override
Future<List<InboxMessage>> getMessages({bool? isRead}) async {
Future<List<InboxMessage>> getMessages({
bool? isRead,
bool forceRefresh = false,
}) async {
return getOrLoad(
key: _messagesKey(isRead),
forceRefresh: forceRefresh,
loadFromRemote: () => _loadMessagesFromRemote(isRead: isRead),
);
}