From ba54373adad263b57e92ee50693e0a8ff3e98f11 Mon Sep 17 00:00:00 2001 From: Dzmitry Rymarau Date: Mon, 19 Dec 2022 13:38:23 +0300 Subject: [PATCH] release: 0.11.0 (#37) --- CHANGELOG.md | 22 ++++++++++++++++++- README.md | 20 ++++++++--------- .../sdk/sample/conference/ConferenceAction.kt | 4 ++-- .../sample/conference/ConferenceWorkflow.kt | 2 ++ .../di/WebRtcMediaConnectionFactoryModule.kt | 8 +++---- settings.gradle.kts | 2 +- 6 files changed, 40 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31b8afb9e..3959f0071 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,25 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [0.11.0] - 2022-12-15 + +### Added +- `WebRtcMediaConnectionFactory.Builder` to improve experience for both Java and Kotlin users +- `MediaConnection.setPresentationRemoteVideoTrackEnabled` that allows to configure whether the `MediaConnection` should be receiving remote presentation +- `MediaConnection.setMainRemoteAudioTrackEnabled`/`MediaConnection.setMainRemoteVideoTrackEnabled` to control whether the main remote audio/video should be enabled +- `MediaConnection.setMaxBitrate` that controls maximum bitrate for each video stream +- Several new properties on `RequestTokenResponse` and `Registration` +- Ability to retrieve registered devices via `Registration.getRegisteredDevices` + +### Changed +- Kotlin to 1.7.20 +- `EglBase` is now nullable +- Deprecate `WebRtcMediaConnectionFactory` constructor, please migrate to `Builder` +- **BREAKING**: `MediaConnection.setMainAudioTrack`/`MediaConnection.setMainVideoTrack` no longer enable remote audio/video by default. Please use `MediaConnection.setMainRemoteAudioTrackEnabled`/`MediaConnection.setMainRemoteVideoTrackEnabled` to enable them + +### Fixed +- Microphone mute state not being restored after `LocalAudioTrack.dispose` call + ## [0.10.0] - 2022-09-23 ### Added @@ -159,7 +178,8 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Initial release -[Unreleased]: https://github.com/pexip/pexip-android-sdk/compare/0.10.0...HEAD +[Unreleased]: https://github.com/pexip/pexip-android-sdk/compare/0.11.0...HEAD +[0.11.0]: https://github.com/pexip/pexip-android-sdk/releases/tag/0.11.0 [0.10.0]: https://github.com/pexip/pexip-android-sdk/releases/tag/0.10.0 [0.9.0]: https://github.com/pexip/pexip-android-sdk/releases/tag/0.9.0 [0.8.0]: https://github.com/pexip/pexip-android-sdk/releases/tag/0.8.0 diff --git a/README.md b/README.md index 4c002773f..6383410d6 100644 --- a/README.md +++ b/README.md @@ -24,23 +24,23 @@ And add modules that you need: ```kotlin dependencies { // A fluent wrapper for Infinity Client REST API - implementation("com.pexip.sdk:sdk-api-infinity:0.10.0") + implementation("com.pexip.sdk:sdk-api-infinity:0.11.0") // A set of tools for interacting with an Infinity conference - implementation("com.pexip.sdk:sdk-conference-infinity:0.10.0") + implementation("com.pexip.sdk:sdk-conference-infinity:0.11.0") // A set of tools for interacting with an Infinity registration - implementation("com.pexip.sdk:sdk-registration-infinity:0.10.0") + implementation("com.pexip.sdk:sdk-registration-infinity:0.11.0") // A `MediaConnection` implementation build on top of WebRTC - implementation("com.pexip.sdk:sdk-media-webrtc:0.10.0") + implementation("com.pexip.sdk:sdk-media-webrtc:0.11.0") // A set of extensions that add coroutines support for Infinity Client REST API - implementation("com.pexip.sdk:sdk-api-coroutines:0.10.0") + implementation("com.pexip.sdk:sdk-api-coroutines:0.11.0") // A set of extensions that add coroutines support for Conference object - implementation("com.pexip.sdk:sdk-conference-coroutines:0.10.0") + implementation("com.pexip.sdk:sdk-conference-coroutines:0.11.0") // A set of extensions that add coroutines support for Registration object - implementation("com.pexip.sdk:sdk-registration-coroutines:0.10.0") + implementation("com.pexip.sdk:sdk-registration-coroutines:0.11.0") // A set of extensions that add coroutines support for MediaConnection object - implementation("com.pexip.sdk:sdk-media-coroutines:0.10.0") + implementation("com.pexip.sdk:sdk-media-coroutines:0.11.0") // A composable that wraps SurfaceViewRenderer - implementation("com.pexip.sdk:sdk-media-webrtc-compose:0.10.0") + implementation("com.pexip.sdk:sdk-media-webrtc-compose:0.11.0") } ``` @@ -58,7 +58,7 @@ dependencyResolutionManagement { } versionCatalogs { register("pexipSdk") { - from("com.pexip.sdk:sdk-catalog:0.10.0") + from("com.pexip.sdk:sdk-catalog:0.11.0") } } } diff --git a/sample/src/main/kotlin/com/pexip/sdk/sample/conference/ConferenceAction.kt b/sample/src/main/kotlin/com/pexip/sdk/sample/conference/ConferenceAction.kt index 1cf1b7013..22ea702db 100644 --- a/sample/src/main/kotlin/com/pexip/sdk/sample/conference/ConferenceAction.kt +++ b/sample/src/main/kotlin/com/pexip/sdk/sample/conference/ConferenceAction.kt @@ -118,9 +118,9 @@ class OnConferenceEvent(private val conferenceEvent: ConferenceEvent) : Conferen if (conferenceEvent is PresentationStartConferenceEvent) { state.connection.setPresentationVideoTrack(null) state.screenCaptureVideoTrack?.dispose() - state.connection.startPresentationReceive() + state.connection.setPresentationRemoteVideoTrackEnabled(true) } else if (conferenceEvent is PresentationStopConferenceEvent) { - state.connection.stopPresentationReceive() + state.connection.setPresentationRemoteVideoTrackEnabled(false) } state = state.copy( presentation = presentation, diff --git a/sample/src/main/kotlin/com/pexip/sdk/sample/conference/ConferenceWorkflow.kt b/sample/src/main/kotlin/com/pexip/sdk/sample/conference/ConferenceWorkflow.kt index 8c38cce33..1742ffe5c 100644 --- a/sample/src/main/kotlin/com/pexip/sdk/sample/conference/ConferenceWorkflow.kt +++ b/sample/src/main/kotlin/com/pexip/sdk/sample/conference/ConferenceWorkflow.kt @@ -159,6 +159,8 @@ class ConferenceWorkflow @Inject constructor( try { renderState.connection.setMainVideoTrack(renderProps.cameraVideoTrack) renderState.connection.setMainAudioTrack(renderProps.microphoneAudioTrack) + renderState.connection.setMainRemoteAudioTrackEnabled(true) + renderState.connection.setMainRemoteVideoTrackEnabled(true) renderState.connection.start() awaitCancellation() } finally { diff --git a/sample/src/main/kotlin/com/pexip/sdk/sample/di/WebRtcMediaConnectionFactoryModule.kt b/sample/src/main/kotlin/com/pexip/sdk/sample/di/WebRtcMediaConnectionFactoryModule.kt index 0026141cc..172ce1698 100644 --- a/sample/src/main/kotlin/com/pexip/sdk/sample/di/WebRtcMediaConnectionFactoryModule.kt +++ b/sample/src/main/kotlin/com/pexip/sdk/sample/di/WebRtcMediaConnectionFactoryModule.kt @@ -15,8 +15,8 @@ object WebRtcMediaConnectionFactoryModule { @Provides @Singleton - fun Application.provideMediaConnectionFactory(eglBase: EglBase) = WebRtcMediaConnectionFactory( - context = this, - eglBase = eglBase - ) + fun Application.provideMediaConnectionFactory(eglBase: EglBase) = + WebRtcMediaConnectionFactory.Builder(this) + .eglBase(eglBase) + .build() } diff --git a/settings.gradle.kts b/settings.gradle.kts index e6fea9a31..6c7848047 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,7 +26,7 @@ dependencyResolutionManagement { } versionCatalogs { register("pexipSdk") { - from("com.pexip.sdk:sdk-catalog:0.10.0") + from("com.pexip.sdk:sdk-catalog:0.11.0") } } }