fix(player): 解锁状态登录期内共享,重进播放页不再丢解锁
解锁记录原本是播放页实例的私有集合,退出再进入会先闪一次锁定态,还会 被 selectLocked 提前释放播放器。改为进程内共享的 UnlockedEpisodeRegistry, 由全局注入并在登录态变化时清空;播放器三处渲染分支统一走同一判定, 会话锁态只约束当前页,避免相邻预加载页被误判为锁定。
This commit is contained in:
1 parent
a4d08e7c1e
commit
57f84c45bd
6 files changed
+103
-18
No files matched your search
@@ -5,6 +5,7 @@ import '../../core/data/repositories/playback_repository.dart';
|
||||
import '../../core/data/services/android_picture_in_picture.dart';
|
||||
import '../../core/data/services/download_controller.dart';
|
||||
import '../../core/data/services/playback_position_cache.dart';
|
||||
import '../../core/data/services/unlocked_episode_registry.dart';
|
||||
import '../../core/data/services/wallet_controller.dart';
|
||||
import 'player_logic.dart';
|
||||
|
||||
@@ -13,6 +14,7 @@ class PlayerBinding {
|
||||
required WatchHistoryRepository history,
|
||||
required PlaybackRepository playback,
|
||||
required PlaybackPositionCache positionCache,
|
||||
UnlockedEpisodeRegistry? unlockedEpisodes,
|
||||
WalletController? wallet,
|
||||
DownloadController? downloads,
|
||||
bool Function()? isSignedIn,
|
||||
@@ -20,6 +22,7 @@ class PlayerBinding {
|
||||
history: history,
|
||||
playback: playback,
|
||||
positionCache: positionCache,
|
||||
unlockedEpisodes: unlockedEpisodes,
|
||||
pictureInPicture: AndroidPictureInPicture(),
|
||||
wallet: wallet,
|
||||
downloads: downloads,
|
||||
|
||||
Reference in new issue
Block a user