From 09401a64e8af3c35a1e9da5b6a1ac241557365d7 Mon Sep 17 00:00:00 2001 From: Plague Fox Date: Thu, 13 Jun 2024 04:01:45 +0400 Subject: [PATCH] Refactor SpinifyImpl to improve handling of server subscriptions in SpinifySubscriptionMixin --- lib/src/spinify_impl.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/src/spinify_impl.dart b/lib/src/spinify_impl.dart index a8153e3..3799a9b 100644 --- a/lib/src/spinify_impl.dart +++ b/lib/src/spinify_impl.dart @@ -408,7 +408,7 @@ base mixin SpinifySubscriptionMixin on SpinifyBase, SpinifyCommandMixin { final event = reply.event; _eventController.add(event); if (event is SpinifySubscribe) { - // Add server subscription to the registry. + // Add server subscription to the registry on subscribe event. _serverSubscriptionRegistry.putIfAbsent( event.channel, () => SpinifyServerSubscriptionImpl( @@ -424,10 +424,11 @@ base mixin SpinifySubscriptionMixin on SpinifyBase, SpinifyCommandMixin { ..onEvent(event) ..setState(SpinifySubscriptionState.subscribed()); } else if (event is SpinifyUnsubscribe) { - // Remove server subscription from the registry. + // Remove server subscription from the registry on unsubscribe event. _serverSubscriptionRegistry.remove(event.channel) ?..onEvent(event) ..setState(SpinifySubscriptionState.unsubscribed()); + // Unsubscribe client subscription on unsubscribe event. _clientSubscriptionRegistry[event.channel] ?..onEvent(event) ..setState(SpinifySubscriptionState.unsubscribed());