// Author: fruit.com.cn import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../core/data/models/drama.dart'; import '../../core/data/services/catalog_controller.dart'; import '../../core/data/services/download_controller.dart'; import '../../core/data/services/wallet_controller.dart'; import 'player_view.dart'; /// 目录卡片统一入口:补齐详情后直接进入全屏播放页。 Future playDramaFromCatalog( BuildContext context, Drama drama, { String? episodeId, }) async { final catalog = context.read(); final wallet = context.read(); final downloads = context.read(); var playable = drama; try { playable = await catalog.requireDetail(drama); } catch (_) { // 取详情失败就用卡片自带的可播预览集起播。 } if (!context.mounted) return; final index = episodeId == null ? 0 : playable.episodes.indexWhere((episode) => episode.id == episodeId); await Navigator.of(context).push( MaterialPageRoute( builder: (_) => PlayerPage( drama: playable, initialIndex: index < 0 ? 0 : index, wallet: wallet, downloads: downloads, ), ), ); }