Skip to content

Commit

Permalink
Refactor SpinifySubscriptionMixin to use specific implementation clas…
Browse files Browse the repository at this point in the history
…ses for client and server subscriptions
  • Loading branch information
PlugFox committed Jun 11, 2024
1 parent 86cd2fc commit 0d3f7bb
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions lib/src/subscription_impl.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,16 @@ abstract base class SpinifySubscriptionBase implements SpinifySubscription {
return target;
}

final StreamController<SpinifyChannelEvent> _stateController =
StreamController<SpinifyChannelEvent>.broadcast();
SpinifySubscriptionState _state =
SpinifySubscriptionState.unsubscribed(code: 0, reason: 'initial state');
final StreamController<SpinifySubscriptionState> _stateController =
StreamController<SpinifySubscriptionState>.broadcast();

final StreamController<SpinifyChannelEvent> _eventController =
StreamController<SpinifyChannelEvent>.broadcast();

@override
SpinifySubscriptionState get state => throw UnimplementedError();
SpinifySubscriptionState get state => _state;

@override
SpinifySubscriptionStateStream get states => throw UnimplementedError();
Expand All @@ -59,6 +61,11 @@ abstract base class SpinifySubscriptionBase implements SpinifySubscription {
// TODO(plugfox): update since position
}

@mustCallSuper
void setState(SpinifySubscriptionState state) {
_stateController.add(_state = state);
}

@mustCallSuper
void close() {
_stateController.close().ignore();
Expand Down

0 comments on commit 0d3f7bb

Please sign in to comment.