setSourceEnabled method Null safety

Future<void> setSourceEnabled(
  1. TrackSource source,
  2. bool enabled
)

Implementation

Future<void> setSourceEnabled(TrackSource source, bool enabled) async {
  logger.fine('setSourceEnabled(source: $source, enabled: $enabled)');
  final pub = getTrackPublicationBySource(source) as LocalTrackPublication?;
  if (pub != null) {
    if (enabled) {
      await pub.unmute();
    } else {
      if (source == TrackSource.screenShareVideo) {
        await unpublishTrack(pub.sid);
      } else {
        await pub.mute();
      }
    }
  } else if (enabled) {
    if (source == TrackSource.camera) {
      final track = await LocalVideoTrack.createCameraTrack();
      await publishVideoTrack(track);
    } else if (source == TrackSource.microphone) {
      final track = await LocalAudioTrack.create();
      await publishAudioTrack(track);
    } else if (source == TrackSource.screenShareVideo) {
      final track = await LocalVideoTrack.createScreenTrack();
      await publishVideoTrack(track);
    }
  }
}