Migrating from Zendesk SDK version 2.x.x to 3.x.x
Zendesk SDK version 3.x.x removes the deprecated APIs from the legacy Messaging module. If your integration uses these APIs, you must migrate to the corresponding APIs exposed by the Zendesk module.
Minimum Android version
Zendesk SDK version 3.x.x requires Android API level 24 or later. Update your app's minSdkVersion to 24 or higher.
Coil dependency
Zendesk SDK version 3.x.x uses Coil version 3.0 or later. If your app declares Coil dependencies directly, update them to Coil 3.x and follow the Coil migration guide for any required package or API changes. Avoid mixing Coil 2.x and Coil 3.x dependencies in the same app.
Removed APIs
The Messaging entry point and its deprecated APIs have been removed. Use the Zendesk instance instead.
| Removed | Replacement |
|---|---|
Messaging.initialize(...) | Zendesk.initialize(...) |
Messaging.instance() | Zendesk.instance.messaging |
Messaging.invalidate() | Zendesk.instance.invalidate() |
Messaging.setDelegate(...) | Zendesk.instance.messaging.setDelegate(...) |
The deprecated MessagingDelegate, MessagingError, MessagingResult, SuccessCallback, and FailureCallback types are no longer available. Use the types exposed by the current Zendesk and Messaging APIs, and handle initialization failures as Throwable values.
Initialization
Use Zendesk.initialize and provide a messaging factory. The initialization callback now returns the Zendesk instance, and errors are returned as Throwable objects. See Initialize the SDK for more details.
Kotlin
Zendesk.initialize(context = this,channelKey = "<your_channel_key>",successCallback = { zendesk -> },failureCallback = { error -> },messagingFactory = DefaultMessagingFactory())
Java
Zendesk.INSTANCE.initialize(this,"<your_channel_key>",zendesk -> {},error -> {},new DefaultMessagingFactory());
Showing Messaging
To show the messaging screen, use the messaging property on the Zendesk instance:
Zendesk.instance.messaging.showMessaging(context)
Unread message count events
The deprecated currentUnreadCount property on UnreadMessageCountChanged is no longer available. Read the total unread message count from data.totalUnreadMessagesCount instead. See Unread message events.
event.data.totalUnreadMessagesCount