February 2018 Release
Service Cloud Snap-Ins for Android Release Notes
NOTE: The certificate for the server used for our original Snap-ins SDK repository just expired. We've changed the location of our repository. Workaround: Replace the salesforcesos.com
maven repository in your gradle scripts to
https://s3.amazonaws.com/salesforcesos.com/android/maven/release
This release (212.0.0) applies to the following component versions:
- Knowledge version 4.0.0
- Case Management version 4.0.0
- Live Agent Chat version 3.0.0
- SOS version 4.0.0
- Common version 6.0.0
For more info about the SDK, see the Snap-Ins SDK Product Page.
See the version release history to learn about past versions of the SDK.
New Features
- The Snap-ins SDK no longer requires the Salesforce Mobile SDK as a dependency. This reduces the footprint of the Snap-ins SDK in your app.
- Updated the authentication behavior so that the Salesforce Mobile SDK is optional when authenticating. See Authentication with the Snap-Ins SDK for Android.
- Minimum supported API version number is now 21 (Lollipop).
- Case Management: Updated the push notification behavior so that it no longer requires the Salesforce Mobile SDK. See Push Notifications with the Snap-Ins SDK for Android.
- Knowledge: Clearing or deleting the cache using
KnowledgeCore
now clears or deletes theOfflineResourceCache
in addition to the database. - Live Agent Chat: Added support for agent transfer. See Transfer Chats to an Agent.
- Live Agent Chat: Added new analytics for file transfers (requested, initiated, completed, failed, cancelled). See Analytics with the Snap-Ins SDK for Android.
- Live Agent Chat: Added a new Chat UI configuration option for hiding a customer's queue position while waiting for an agent:
ChatUIConfiguration.Builder.hideQueuePosition(boolean)
. - SOS: Updated OpenTok to version 2.12.1.
API Changes
- Added
AuthenticatedUser
andAuthTokenProvider
for authentication. See Authentication with the Snap-Ins SDK for Android. - Added
PushNotificationListener
to handle push notifications from your org. See Push Notifications with the Snap-Ins SDK for Android. - Knowledge: Removed
KnowledgeClient.cleanup()
andKnowledgeClient.addUserLogoutListener()
. - Knowledge: Replaced
KnowledgeConfiguration.withUserAccount
withKnowledgeConfiguration.withAuthConfig
. We now have a different authentication mechanism. See Authentication with the Snap-Ins SDK for Android. - Knowledge: Replaced
KnowledgeCore.deleteCacheForUser(Context, UserAccount)
withKnowledgeCore.deleteCacheForUser(Context, AuthenticatedUser)
. - Knowledge: Replaced
KnowledgeCore.clearCacheForUser(Context, UserAccount)
withKnowledgeCore.clearCacheForUser(Context, AuthenticatedUser)
. - Knowledge: Made changes to
OfflineResourceCache
.- Added
OfflineResourceConfig.builder()
, which returns aBuilder
instance for customizing the cache. - Added
OfflineResourceConfig.defaults()
, which returns anOfflineResourceCache
configured with default values. - Added
OfflineResourceCache.clearCache(Context, AuthenticatedUser)
for clearing an existing cache. - Added
OfflineResourceCache.deleteCache(Context, AuthenticatedUser)
for deleting an existing cache. - Added
OfflineResourceCache.deleteCache(Context)
for deleting existing caches for all users. - Removed
OfflineResourceConfig.withPath(Context, String)
. Cache files are now created automatically. - Removed
OfflineResourceConfig.fromContext(Context)
.
- Added
- Case Management: Changes to case-updated notifications, as the Case SDK no longer handles push notifications directly or displays notifications. See Push Notifications with the Snap-Ins SDK for Android.
- Added
notifyCaseUpdated(String)
toCaseUIClient
, which accepts a Case ID as a string. This enables an application to handle push notifications with their own implementation using theconnected-app
module. - Removed
CaseUIConfiguration.create(CaseConfiguration, int)
for specifying notification importance. CaseUI no longer creates Android notifications. - Removed
enablePush(int)
,isPushEnabled()
, andgetNotificationIcon()
fromCaseConfiguration
. - Removed
CaseClientCallbacks.handleBackgroundNotification(Bundle)
. - Removed
CaseClientCallbacks.handleForegroundNotification(Bundle)
.
- Added
- Case Management: Renamed
CreateCaseQuickActionRequest.getResource()
toCreateCaseQuickActionRequest.getQuickActionName()
. - Case Management: Replaced
CaseConfiguration.Builder.withUserAccount
withCaseConfiguration.Builder.withAuthConfig
. We now have a different authentication mechanism. See Authentication with the Snap-Ins SDK for Android. - Case Management: Removed
CaseUIClient.isAuthenticated()
. - SOS: Deprecated
SosConfiguration.builder()
. UseSosConfiguration.Builder()
instead.
Fixes
- Live Agent Chat: Fixed file transfer for remote images that are not saved on the device.
- Live Agent Chat: Improved TalkBack support on the minimized view during an active chat session.
- Live Agent Chat: Fixed an unresponsive "End Session" button when the session ends while the dialog is present on the screen.
- Live Agent Chat: Fixed a bug that prevented a session from ending promptly by the user if network connection is lost.
- SOS: Fixed a crash on some Lollipop devices that occurred during a screen orientation change from the onboarding view.
- Case Management: Fixed an issue where the post button remained enabled after posting a message to the case feed.
Known Issues
- The certificate for the server used for our Snap-ins SDK repository just expired. We've changed the location of our repository. Workaround: Replace the
salesforcesos.com
maven repository in your gradle scripts to:https://s3.amazonaws.com/salesforcesos.com/android/maven/release
- Live Agent Chat: Case creation via pre-chat entity mapping does not work when using Omni-Channel routing. Contact creation still works correctly. Workaround: Use Live Agent routing instead, or avoid creating cases with pre-chat fields. Note that Live Agent routing is currently only available in Salesforce Classic.
- Case Management: If the "Edit Read Only Fields" permission is turned on in your org, a community user can see (and seemingly edit) read only fields when creating a case. Workaround: Turn off the "Edit Read Only Fields" permission so that read only fields are not shown when creating a case. See this Knowledge article for more information.
Upgrade Tips
Authentication
Authentication has changed since the last version. It now uses AuthenticatedUser
and AuthTokenProvider
. Also, we replaced KnowledgeConfiguration.withUserAccount
with KnowledgeConfiguration.withAuthConfig
and CaseConfiguration.Builder.withUserAccount
with CaseConfiguration.Builder.withAuthConfig
. See Authentication with the Snap-Ins SDK for Android.
Push Notifications
We now use PushNotificationListener
to handle push notifications from your org. See Push Notifications with the Snap-Ins SDK for Android.
ProGuard
If assembling with ProGuard, you may encounter warnings about missing referenced classes javax.annotation.Nullable
and javax.annotation.ParametersAreNonnullByDefault
. Add the following dontwarn
rules to your ProGuard configuration:
-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.ParametersAreNonnullByDefault