feat(playlist): 歌单变更与歌单内元数据实时刷新
两个边界场景: 1) 新建/重命名/删除歌单、加入/移除歌曲后,主页歌单页不刷新 2) 歌单详情页里歌曲补全元数据后,标题/封面不更新 - 新增 PlaylistEvents(void 事件) - PlaylistRepository 的创建/重命名/删除/批量加入/移除后 publish - 主页订阅后重新拉取歌单摘要 - 歌单详情页订阅 MetadataEvents,按 path 就地更新行
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
// lib/services/playlist_events.dart
|
||||
import 'dart:async';
|
||||
|
||||
/// 歌单数据变更事件(新建/重命名/删除/加歌/删歌/排序)。
|
||||
///
|
||||
/// 主页的歌单页、歌单详情页都靠它实时刷新,
|
||||
/// 不用等页面重建。
|
||||
class PlaylistEvents {
|
||||
static final PlaylistEvents _instance = PlaylistEvents._internal();
|
||||
factory PlaylistEvents() => _instance;
|
||||
PlaylistEvents._internal();
|
||||
|
||||
final StreamController<void> _controller =
|
||||
StreamController<void>.broadcast();
|
||||
|
||||
Stream<void> get stream => _controller.stream;
|
||||
|
||||
void publish() {
|
||||
_controller.add(null);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user