From 732c09eec1fbc225f0acfb5164f6bc27019570df Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Fri, 27 Feb 2026 09:11:16 +0100 Subject: [PATCH] fix: cancel status stream subscription on dispose Closes #571 --- lib/providers/multi_server_provider.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/providers/multi_server_provider.dart b/lib/providers/multi_server_provider.dart index 7ad6cfe9..35737917 100644 --- a/lib/providers/multi_server_provider.dart +++ b/lib/providers/multi_server_provider.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:flutter/foundation.dart'; import '../services/plex_client.dart'; @@ -20,6 +22,7 @@ class LiveTvServerInfo { class MultiServerProvider extends ChangeNotifier { final MultiServerManager _serverManager; final DataAggregationService _aggregationService; + StreamSubscription? _statusSubscription; /// Whether any connected server has Live TV / DVR bool _hasLiveTv = false; @@ -31,7 +34,7 @@ class MultiServerProvider extends ChangeNotifier { MultiServerProvider(this._serverManager, this._aggregationService) { // Listen to server status changes - _serverManager.statusStream.listen((_) { + _statusSubscription = _serverManager.statusStream.listen((_) { notifyListeners(); // Re-check live TV availability when servers come online checkLiveTvAvailability(); @@ -145,6 +148,7 @@ class MultiServerProvider extends ChangeNotifier { @override void dispose() { + _statusSubscription?.cancel(); _serverManager.dispose(); super.dispose(); }