Subscription permission API (#68)

* signal

* request

* implement

* rename event

* ref

* adjustments based on review

* override subscribed

* move events emit

* fix subscription state

* minor change

* update example for permissions demo

* format & subscriptionState as computed property

* prepare macos build

* unsubscribed event when subscription not allowed
This commit is contained in:
Hiroshi Horie
2022-01-10 23:48:44 +07:00
committed by GitHub
parent 9a37129504
commit aef1fd8804
12 changed files with 259 additions and 24 deletions
+18
View File
@@ -186,6 +186,13 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
updates: msg.subscribedQualityUpdate.subscribedQualities,
));
break;
case lk_rtc.SignalResponse_Message.subscriptionPermissionUpdate:
events.emit(SignalSubscriptionPermissionUpdateEvent(
participantSid: msg.subscriptionPermissionUpdate.participantSid,
trackSid: msg.subscriptionPermissionUpdate.trackSid,
allowed: msg.subscriptionPermissionUpdate.allowed,
));
break;
default:
logger.warning('skipping unsupported signal message');
}
@@ -296,6 +303,17 @@ extension SignalClientRequests on SignalClient {
),
));
void sendUpdateSubscriptionPermissions({
required bool allParticipants,
required List<lk_rtc.TrackPermission> trackPermissions,
}) =>
_sendRequest(lk_rtc.SignalRequest(
subscriptionPermissions: lk_rtc.UpdateSubscriptionPermissions(
allParticipants: allParticipants,
trackPermissions: trackPermissions,
),
));
void sendLeave() => _sendRequest(lk_rtc.SignalRequest(
leave: lk_rtc.LeaveRequest(),
));