add media notification handling for offline videos (#1748)

* feat: add media notification handling for offline videos

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
JianGuo Wang
2025-11-17 17:35:00 +08:00
committed by GitHub
parent 377e430d74
commit ad931d7ea2
2 changed files with 22 additions and 0 deletions

View File

@@ -3,6 +3,8 @@ import 'package:PiliPlus/models_new/video/video_detail/stat_detail.dart';
import 'package:PiliPlus/pages/common/common_intro_controller.dart';
import 'package:PiliPlus/pages/download/controller.dart';
import 'package:PiliPlus/plugin/pl_player/models/play_repeat.dart';
import 'package:PiliPlus/services/service_locator.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/scheduler.dart' show SchedulerBinding;
@@ -41,6 +43,7 @@ class LocalIntroController extends CommonIntroController {
@override
void onClose() {
aidSet.clear();
videoPlayerServiceHandler?.onVideoDetailDispose(heroTag);
super.onClose();
}
@@ -62,6 +65,9 @@ class LocalIntroController extends CommonIntroController {
final currCid = videoDetailCtr.cid.value;
final index = list.indexWhere((e) => e.cid == currCid);
this.index.value = index;
if (Utils.isMobile) {
onVideoDetailChange(list[index]);
}
if (index != 0) {
SchedulerBinding.instance.addPostFrameCallback((_) {
try {
@@ -135,5 +141,12 @@ class LocalIntroController extends CommonIntroController {
..value.title = entry.showTitle
..refresh();
this.index.value = index;
if (Utils.isMobile) {
onVideoDetailChange(entry);
}
}
void onVideoDetailChange(BiliDownloadEntryInfo entry) {
videoPlayerServiceHandler?.onVideoDetailChange(entry, entry.cid, heroTag);
}
}