feat(playlist): 歌单变更与歌单内元数据实时刷新

两个边界场景:
1) 新建/重命名/删除歌单、加入/移除歌曲后,主页歌单页不刷新
2) 歌单详情页里歌曲补全元数据后,标题/封面不更新

- 新增 PlaylistEvents(void 事件)
- PlaylistRepository 的创建/重命名/删除/批量加入/移除后 publish
- 主页订阅后重新拉取歌单摘要
- 歌单详情页订阅 MetadataEvents,按 path 就地更新行
This commit is contained in:
2026-11-01 16:32:35 +08:00
parent 653c1f5563
commit e10be527cb
4 changed files with 65 additions and 0 deletions
+21
View File
@@ -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);
}
}