Make native debug symbols compatible with Crashlytics. See README.md in debug symbols archive for more information.
Improve initializing of video calling functionality. Clients not using video calling should expect memory consumption improvement.See how the Sinch In-app Voice and Video SDK for Android is evolving and find out about new features and bug fixes.
Creating a SinchClient with empty FCM or HMS registration token is now forbidden (IllegalArgumentException is thrown).
6.1.2
Minimise number of calls to Sinch Platform REST API.
Improve handling of default audio device during call when Bluetooth device is connected.
Distribute Kotlin documentation (dokkaHtml format). Documentation is available inside 'docs/reference' folder of the SDK archive and online at
https://download.sinch.com/android/latest/reference/index.html
. If you still need documentation in Javadoc format it is available as a part of the Sinch SDK archive inside 'docs' folder.
6.0.2
Fix sample applications crash when during the call app was moved to background and then, back into the foreground.
Refactor SDK files into Kotlin. All API methods that could throw IllegalArgumentException when passing null values
are now handled on language level and @NonNull / @Nullable annotations when referencing from Java.
SDK can still be used in Java Android applications. Only extra step required is that you add 'org.jetbrains.kotlin:kotlin-stdlib' library
inside your build.gradle file. See samples for reference.
5.10.15
Improve handling of default audio device during call when Bluetooth device is connected.
Improve AudioController disable / enable speaker logic when Bluetooth device is connected
5.9.4
Fix issue that could cause native crash when initializing WebRTC library.
Improve caching of instance data. Clients should expect to have onCredentialsRequired callback being executed less often.
5.8.2
Fix issue causing audio not being streamed properly when callee didn't initially grant microphone permissions.
5.7.3
Add automatic hang up when call is lingering in failed state for too long.
5.6.5
Improve creating the call when application is not in foreground.
5.5.24
Remove SinchHelpers class.
Add SinchPush class responsible for handling logic connected with delivering push messages for incoming calls.
Add SinchClient.builder() and UserController.builder() to access SinchClient and UserController builders respectively.
Remove deprecated SinchClient.startListeningOnActiveConnection() and SinchClient.stopListeningOnActiveConnection().
Add SinchClient.unregisterPushToken(PushTokenUnregistrationCallback). Client no longer needs to create UserCojjntroller to remove the push token.
Add PushTokenUnregistrationCallback informing about push token unregistration events.
Fix bug connected with logging audio routing changes.
Add possibility to specify CLI while creating each outgoing call. See updated CallController call initialization methods for reference.
Remove SinchClientBuilder.callerIdentifier() method that assigned a common CLI to entire Sinch client instance.
Introduce MediaConstrains object for in app calling.
Combine CallController.callUserVideo() and CallController.callUser() methods into single CallController.callUser(MediaConstraints).
To initiate a video call create a MediaConstraint object passing 'true' into the constructor. See samples directory for fully working examples.
Rename CallClient to CallController.
Fix exception handling configuration for ProGuard code obfuscation. SinchClientBuilder.build() and
UserControllerBuilder.build() can throw IOException. Clients should update their applications to handle
these exceptions. See samples for possible implementation.
Update buildscript sample files.
Rename PushProfile to PushConfiguration
5.4.2
Fix minor bugs connected with automatic routing functionality
5.3.5
Add audio routing logging.
5.2.4
Fix issue that prevented user that did not start Sinch client for over a year authenticating on Sinch backend.
5.1.6
Fix authorization problems connected with incorrect timestamp parsing when running on 32-bit simulator.
5.0.2
Refactor SinchClientBuilder to follow UserControllerBuilder pattern for specifying Push Profile configuration.
Add FcmPushProfileBuilder allowing to specify
senderID - Firebase sender ID to be used by the Sinch SDK for sending push notifications
registrationToken - FCM registration token for this device
Remove Firebase and Firebase Messaging dependency. Sinch SDK is no longer responsible for acquiring FCM registration tokens using its sender ID.
Client should use FcmPushProfileBuilder while creating SinchClient and UserController instances, to provide parameters
(Firebase sender ID and FCM registration token) needed to initialize FCM Managed Push functionality. Client is also responsible
for re-registering Push Profile whenever FCM token changes. See FcmListenerService.java at sinch-rtc-sample-video-push to see
possible code implementation of above.
Remove SinchClient.setSupportManagedPush(boolean). Managed push functionality is currently automatically enabled if
PushProfile is defined while building SinchClient instance. If SinchClient instance is built without defining any push profile the
functionality is disabled.
Fix issue that prevented user that did not start Sinch client for over a year authenticating on Sinch backend.
4.11.3
Fix screenshot and filter video sample applications threading issues.
4.10.18
Update WebRTC to M96.
4.9.21
Refactor
AudioController.enableAutomaticAudioRouting()
to accept
AudioController.AudioRoutingConfig
parameter.
Fix potential crash in the JNI layer that could happen if null-body reply is unexpectedly returned
from the backend.
4.8.6
Add
android:exported
attribute to the internal service manifest in conformance with new Android S+ rules (Android 12).
4.7.3
Fix crash on Huawei devices that support Google Play Services when Huawei HMS Messaging is used.
4.6.8
Fix crash in the
AudioManagerInternal
caused by unregistering of not-yet-registered Wired Headset Receiver.
4.5.8
Stop storing Sinch FCM token in SharedPreferences. Sometimes when the new FCM token is acquired, if
update of the SharedPreferences fails/slow - the old FCM token is sent again to the Sinch backend.
4.4.5
Removed
SinchClient.setMediaHandover(boolean)
,
SinchClientBuilder.enableMediaHandover(boolean)
, and
Call.setMediaHandover()
. Media handover and reconnection behaviour is now handled internally.
4.3.9
Check CAMERA permission before video capture starts to avoid crash in case the user revoked permission.
If not granted - black video. If granted during the call, video can be resumed with call to
Call.resumeVideo()
.
The responsibility to ensure that CAMERA permission is granted lies on the application.
Fixed crash when setting video frame listeners during audio-only call.
Removed
Beta.setMediaHandoverConfig(SinchClient client, MediaHandoverConfig config)
and
MediaHandoverConfig
class as a whole.
Media handover behaviour is now handled internally.
4.2.5
Fixed memory leak in LocalVideoFrameListener and RemoteVideoFrameListener implementations.
4.1.4
Switch to new release tools and process.
4.0.7
Fixed crash in SinchClient when the client is terminated during incoming call processing.
Added VideoController
setLocalVideoResizeBehaviour()
to allow full-screen local video experience.
4.0.6
Failure of internal database initialization at SinchClient/UserController creation time will now cause IOException,
instead of failing silently.
Fixed rare crash in SinchClient that happened during 'fast' start after graceful termination.
Updated sample application with SinchClient lifecycle management comments.
4.0.5
Aligned SinchClient registration experience with UserController's one by extending SinchClientListener
interface and providing a way to register a user with the HMS Push Token via SinchClient by adding
Huawei HMS specific methods to SinchClientBuilder:
hmsDeviceToken(String deviceToken);
hmsApplicationId(String applicationId);
Extended SinchClientListener interface by both UserRegistrationCallback and PushTokenRegistrationCallback interfaces.
Removed SinchClientListener.onRegistrationCredentialsRequired(SinchClient client, ClientRegistration registrationCallback)
in favor of inherited UserRegistrationCallback.onCredentialsRequired(ClientRegistration registrationCallback).
Renamed PushTokenRegistrationCallback methods to follow the same naming pattern: