feat(flutter): 播放页互动数量与评论面板收紧

This commit is contained in:
Zhou Weidong committed 2026-10-20 12:06:21 +08:00
1 parent e39aa766ac
commit bed6bbb75b
13 files changed
+265 -59

No files matched your search

+16 -3
View File
@@ -83,6 +83,9 @@ class _PlayerPageState extends State<PlayerPage> with WidgetsBindingObserver {
bool _chromeVisible = true;
double _playbackSpeed = 1.0;
/// 收藏切换后的本地增量:基准是详情快照,切换成功按服务端状态 ±1。
final Map<String, int> _favoriteDelta = {};
@override
void initState() {
super.initState();
@@ -127,6 +130,14 @@ class _PlayerPageState extends State<PlayerPage> with WidgetsBindingObserver {
setState(() => _chromeVisible = false);
}
/// 收藏状态确认后同步右侧计数(总数没有独立计数接口,按 ±1 跟随)。
void _applyFavoriteDelta(String dramaId, {required bool nowSaved}) {
setState(() {
_favoriteDelta[dramaId] =
(_favoriteDelta[dramaId] ?? 0) + (nowSaved ? 1 : -1);
});
}
@override
Widget build(BuildContext context) {
return ListenableBuilder(
@@ -377,9 +388,11 @@ class _PlayerPageState extends State<PlayerPage> with WidgetsBindingObserver {
episode: episode,
controller: ready ? videoPort!.controller : null,
liked: interactions.isLiked(drama.id),
likeCount: interactions.likeCount(drama.id),
commentCount: null,
favoriteCount: null,
likeCount: interactions.likeCount(drama.id) ?? drama.likeCount,
commentCount: drama.commentCount,
favoriteCount: drama.favoriteCount == null
? null
: drama.favoriteCount! + (_favoriteDelta[drama.id] ?? 0),
saved: context.watch<FavoriteController>().isSaved(drama.id),
playing: logic.session.userWantsPlay,
playbackSpeed: _playbackSpeed,