fix(search): guard stale refresh callbacks

This commit is contained in:
edde746
2026-05-24 07:37:02 +02:00
parent f1a02ade17
commit eeaa831cc2
7 changed files with 102 additions and 34 deletions
+4 -4
View File
@@ -100,7 +100,7 @@ Future<MediaNavigationResult> navigateToMediaItem(
case MediaKind.clip:
case MediaKind.episode:
final result = await navigateToVideoPlayer(context, metadata: mi, isOffline: isOffline);
if (result == true) {
if (result == true && context.mounted) {
onRefresh?.call(mi.id);
}
return MediaNavigationResult.navigated;
@@ -108,7 +108,7 @@ Future<MediaNavigationResult> navigateToMediaItem(
case MediaKind.movie:
if (playDirectly) {
final result = await navigateToVideoPlayer(context, metadata: mi, isOffline: isOffline);
if (result == true) {
if (result == true && context.mounted) {
onRefresh?.call(mi.id);
}
return MediaNavigationResult.navigated;
@@ -133,7 +133,7 @@ Future<MediaNavigationResult> navigateToMediaItem(
context,
mediaDetailRoute(metadata: showStub, isOffline: isOffline, initialSeasonIndex: mi.index),
);
if (result == true) {
if (result == true && context.mounted) {
onRefresh?.call(mi.id);
}
return MediaNavigationResult.navigated;
@@ -152,7 +152,7 @@ Future<MediaNavigationResult> _showDetail(
void Function(String)? onRefresh,
) async {
final result = await Navigator.push<bool>(context, mediaDetailRoute(metadata: mi, isOffline: isOffline));
if (result == true) {
if (result == true && context.mounted) {
onRefresh?.call(mi.id);
}
return MediaNavigationResult.navigated;
+1 -1
View File
@@ -174,7 +174,7 @@ Future<bool?> navigateToVideoPlayerWithRefresh(
appLogger.d('Returned from playback, refreshing metadata');
if (!isOffline && onRefresh != null) {
if (!isOffline && onRefresh != null && context.mounted) {
onRefresh();
}