fix(search): guard stale refresh callbacks
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user