Releases: livekit/client-sdk-android
v2.25.3
Patch Changes
-
docs(audio): clarify that
AudioSwitchHandler.selectDevice()is sticky and overridespreferredDeviceList. Document that callers who only need a different priority order should setpreferredDeviceListinstead, and thatselectDevice(null)clears a sticky selection. - #941 (@daxiondi) -
fix: resume joinContinuation when LEAVE received during reconnect handshake to avoid reconnection loop hanging issue - #934 (@YashJainSC)
-
Fixed silent loss of reliable data when DataChannel.send returned false and when buffered items were replayed across multiple resumes. - #921 (@adrian-niculescu)
-
Fix byte streams not sending the name of the bytestream - #939 (@davidliu)
-
Update AudioSwitch to handle potential exception when unregistering audio device listeners - #944 (@davidliu)
v2.25.2
Patch Changes
-
Fix Room.connect not properly throwing ConnectException for websocket connection failures during Room.join() - #926 (@davidliu)
-
Fix reconnect potentially getting cancelled by websocket failure - #926 (@davidliu)
-
Fixed RTCEngine.addTrack leaking pendingTrackResolvers entries on timeout or caller cancellation, which previously caused subsequent publishes of the same track to fail with DuplicateTrackException until the connection was torn down. - #920 (@adrian-niculescu)
-
Fix exception when resending data channel messages after a resume - #923 (@davidliu)
v2.25.1
v2.25.0
Minor Changes
Patch Changes
-
Fix potential leak for StreamSender caused by exceptions - #913 (@davidliu)
-
Update audio handling to use AudioManager communication device APIs on S and above - #910 (@davidliu)
-
Rethrow cancellation exceptions for coroutines - #913 (@davidliu)
-
Implement changing preferred audio device list on AudioSwitchHandler mid-call - #910 (@davidliu)
v2.24.1
v2.24.0
Minor Changes
Patch Changes
-
Fix resume not working sometimes after connection loss/gain - #894 (@davidliu)
-
Fix transcription attributes not converting correctly - #889 (@davidliu)
-
Specifically keep native libwebrtc methods from being obfuscated - #893 (@davidliu)
-
Properly cancel jobs awaiting on DataChannel low buffer instead of completing on dispose - #897 (@davidliu)
-
Fix exception not being caught when using LocalParticipant.publishData - #897 (@davidliu)
v2.23.5
v2.23.4
v2.23.3
Patch Changes
-
Fixed ScreenCaptureConnection suspending forever when bindService fails and crashing when resuming canceled continuations. - #838 (@adrian-niculescu)
-
Migrate from Klaxon decoding to kotlinx-serialization for AgentAttribute deserialization - #851 (@davidliu)
-
perf: Skip Klaxon parsing for empty agent attribute maps - #849 (@YashJainSC)
v2.23.2
Patch Changes
-
Fix exception when parsing AgentAttribute inputs and outputs - #847 (@davidliu)
-
Properly reset network callback manager after disconnect - #841 (@davidliu)
-
Fixed audio focus not being abandoned on pre-O devices due to mismatched listener instance. - #837 (@adrian-niculescu)
-
Fixed file descriptor leak in ByteStreamSender where Source was not closed after reading. - #839 (@adrian-niculescu)
-
Fixed data race in
CameraEventsDispatchHandlerby usingCopyOnWriteArraySetfor thread-safe iteration. - #822 (@adrian-niculescu) -
Fixed Room getting stuck in CONNECTING state after failed connect attempts. - #836 (@adrian-niculescu)
-
Fix thread visibility issues in SignalClient that could cause messages to be silently dropped. - #819 (@adrian-niculescu)
-
Fix race condition when sending sync state before tracks are subscribed - #831 (@davidliu)
-
Don't throw on invalid values for Agent enum types - #847 (@davidliu)
-
Add overload for TokenSource.fromEndpoint that accepts a string for the url - #844 (@davidliu)