Changelog: Twilio Talk Android SDK

Changelog: Twilio Talk Android SDK

We recommend using these links in your projects. As we patch bugs, these links will automatically be updated with the fixes.

Migrating from Beta to GA

Programmable Talk is now in GA. A number of cracking switches were introduced as part of the GA release. To see what has switched and to migrate from the latest Beta SDK to the fresh GA SDK, please read the GA Migration Guide for Android.

Migrating from IP Messaging to Programmable Talk

Programmable Talk is the fresh name of what was previously called IP Messaging. If you are an existing IP Messaging user, you will want to go after the Migration Guide for Android.

If you are looking for the archived IP Messaging Android changelog, it can be found here.

Switch Logs

Links are provided to specific patch versions here. We don’t recommend using these links unless you have a specific need for a certain patch of a release.

Programmable Talk Android 1.0.Ten (August 22, 2017)

Switches

  • Spectacle enhancements for client startup and data retrieval.

Programmable Talk Android 1.0.9 (July 25, 2017)

Bug Fixes

  • channel.join() listener will be called after joined channel has been totally synchronized.

Programmable Talk Android 1.0.8 (July Five, 2017)

Bug Fixes

  • Stationary issues related to thread management, which in many cases should lead to significant spectacle gains
  • Immobile crashes on Client shutdown.

Programmable Talk Android 1.0.7 (June 29, 2017)

Bug Fixes

  • Immobile an issue whereby setAllMessagesConsumed() in an empty channel could cause the SDK client to crash.

Programmable Talk Android 1.0.6 (June 21, 2017)

Bug Fixes

  • Immobile an issue whereby GCM/FCM unregistration callbacks were not reliably being called.

Programmable Talk Android 1.0.Five (June 20, 2017)

Bug Fixes

  • Motionless extra issues with some guidelines not correctly completing – i.e. no success callback nor failure was received. This release fixes cases not addressed by the previous release.
  • Updated documentation to address inconsistencies.
  • Immobilized a crash when passing null Properties to ChatClient.create() . An IllegalStateException will now be thrown instead.
  • Updated log messages to not mention non-existing Channel.synchronize() anymore.
  • Addressed status callback threading issues related to Member.getUserDescriptor()/.getAndSubscribeUser() .
  • Ensure that Channel listener’s synchronisation status callback instantaneously upon add in all cases.
  • Added creation of notification payload from FCM RemoteMessage contents.
  • Added a fresh helper method: Channel.SynchronizationStatus.isAtLeast() .

Programmable Talk Android 1.0.Four (June 8, 2017)

Bug Fixes

  • Motionless a bug whereby some directions did not correctly accomplish – i.e. no success callback nor failure was received. This release fixes cases not addressed by the previous release.
  • Immobilized a bug whereby SDK would crash in some circumstances while creating a Talk Client example.

Programmable Talk Android 1.0.Trio (June Two, 2017)

Bug Fixes

  • Immovable a bug whereby client initialization did not finished correctly – i.e. no success nor failure callback was received for client creation
  • Stationary a bug whereby some instructions did not correctly finish – i.e. no success callback nor failure was received

Programmable Talk Android 1.0.1 (May 24, 2017)

Bug Fixes

  • Immobile a bug whereby after a call to client.shutdown() sometimes caused Fresh Message shove registrations to be lost for the endpoint.

Programmable Talk Android 1.0.0 (May Two, 2017)

Switches are grouped by class to ease migration.

  • switched default log level from Log.DEBUG to Log.WARN
  • previously deprecated initialMessageCount setting has been eliminated
  • eliminated functions:
    • int getInitialMessageCount()
    • Builder ChatClient.Builder.setInitialMessageCount(int initialMessageCount)
  • UserInfo has been substituted with User/UserDescriptor and direct getting of UserInfo has been substituted with identity getters.
    • substituted UserInfo getMyUserInfo() with String getMyIdentity()
  • added fresh function to access user information Users getUsers()
  • added fresh functions:
    • void onUserSubscribed(User user)
    • void onUserUnsubscribed(User user)
  • switched functions:
    • renamed onChannelAdd to onChannelAdded
    • renamed onChannelJoin to onChannelJoined
    • renamed onChannelInvite to onChannelInvited
    • renamed onChannelDelete to onChannelDeleted
    • renamed onToastNotification to onNotification
    • renamed onToastSubscribed to onNotificationSubscribed
    • renamed onToastFailed to onNotificationFailed
    • substituted void onChannelChange(Channel) with void onChannelUpdated(Channel, Channel.UpdateReason reason)
    • substituted void onUserInfoChange(UserInfo userInfo, UserInfo.UpdateReason reason) with void onUserUpdated(User user, User.UpdateReason reason)
  • added fresh value for Channel.ChannelStatus enum:
    • UNKNOWN – channels returned in ChannelDescriptor do not have status information
  • added fresh Channel.UpdateReason enum to indicate reason for channel update, with values:
    • STATUS
    • LAST_CONSUMED_MESSAGE_INDEX
    • UNIQUE_NAME
    • FRIENDLY_NAME
    • ATTRIBUTES
  • eliminated function (you no longer need to explicitly synchronise channels):
    • void synchronize(CallbackListener<Channel>)
  • added fresh functions:
    • long getUnconsumedMessagesCount()
    • Channel.ChannelStatus getStatus()
  • renamed getPublicChannels to getPublicChannelsList
  • added fresh functions:
    • void getUserChannelsList(CallbackListener<Paginator<ChannelDescriptor>>)
    • List<Channel> getSubscribedChannels()
    • List<Member> getMembersByIdentity(String identity)
  • switched functions:
    • renamed onMessageAdd to onMessageAdded
    • renamed onMessageChange to onMessageUpdated
    • renamed onMessageDelete to onMessageDeleted
    • renamed onMemberJoin to onMemberJoined
    • renamed onMemberAdd to onMemberAdded
    • renamed onMemberChange to onMemberUpdated
    • renamed onMemberDelete to onMemberDeleted
    • renamed onSynchronizationChange to onSynchronizationChanged
  • added fresh functions:
    • int getStatus()
    • String toString()
  • switched functions:
    • renamed getErrorCode to getCode
    • renamed getErrorText to getMessage
  • added fresh functions:
    • void getUserDescriptor(CallbackListener<UserDescriptor> listener)
    • void getAndSubscribeUser(CallbackListener<User> listener)
  • switched function:
    • substituted UserInfo getUserInfo() with String getIdentity()
  • added fresh functions:
    • Channel getChannel()
    • Member getMember(String identity)
    • void add(Member member, StatusListener listener)
    • void invite(Member member, StatusListener listener)
    • void removeByIdentity(String identity, StatusListener listener)
  • switched functions:
    • substituted void getMembers(CallbackListener<Paginator<Member>> listener) with List<Member> getMembersList()
    • renamed removeMember to eliminate
  • renamed UserInfo to User class
  • added fresh functions:
    • void unsubscribe()
    • boolean isSubscribed()
  • added fresh class UserDescriptor with functions:
    • String getFriendlyName()
    • JSONObject getAttributes()
    • String getIdentity()
    • boolean isOnline()
    • boolean isNotifiable()
    • subscribe(CallbackListener<User> listener)
  • added fresh class Users with functions:
    • void getChannelUserDescriptors(String channelSid, CallbackListener<Paginator<UserDescriptor>> listener)
    • void getUserDescriptor(String identity, CallbackListener<UserDescriptor> listener)
    • void getAndSubscribeUser(String identity, CallbackListener<User> listener)
    • List<User> getSubscribedUsers()
    • User getMyUser()

Bug fixes

  • Getting non-existing message by index now decently fails.

Programmable Talk Android 0.12.Trio (May Nineteen, 2017)

Bug Fixes

  • Immobilized an issue whereby Shove Credential registrations were firing onSuccess on each state switch
  • Immobilized a race condition whereby on channel creation, onChannelAdded and onChannelJoined events failed to fire correctly

Programmable Talk Android 0.12.Two (March 30, 2017)

Switches

  • Added FCM support via ChatClient.registerFCMToken(), ChatClient.unregisterFCMToken()
  • Comeback a decent error if the internal token and a manual token update causes a mismatch
  • Expose extra error codes to client. ErrorInfo.CANNOT_GET_MESSAGE_BY_INDEX and ErrorInfo.MISMATCHING_TOKEN_UPDATE

Bug Fixes

  • Immobile an issue where a certain character caused a crash \v
  • Added missing Message.getTimeStampAsDate()

Programmable Talk Android 0.12.1 (February 23, 2017)

Switches

  • The endpoint_id identifier specified in access tokens is now automatically generated and persisted in the local app storage. The following should be observed with this switch:
    • endpoint_id is no longer a required identifier in your generated access tokens, you may omit it from this build forward
    • endpoint_id will be disregarded if specified with your access token
  • Fully asynchronous client init
    • Client listener onError() will be called if any service error happens during client creation.
    • Client will not be created in this case.
  • Initial message count is fully disregarded by init code, zero is always used – messages are loaded when a channel is loaded.
  • Security enhancements

Bug Fixes

  • Added missing Channel.getCreatedBy() and ChannelDescriptor.getCreatedBy() to come back creator’s identity
  • Immovable a bug whereby a constant CPU explosion was generated by the SDK client when initialized.

Programmable Talk Android 0.11.Two (December 1, 2016)

Switches

  • Added a call to the onClientSynchronization callback in the registered listener upon ChatClient.setListener() , passing the current client synchronization state

Programmable Talk Android 0.11.1 (November 22, 2016)

Bug Fixes

  • Immobile an issue where the getPublicChannels() caused a crash

Programmable Talk Android 0.11.0 (November 21, 2016)

Violating

  • Rename IP Messaging to Programmable Talk
  • IPMessagingClient is renamed to ChatClient
  • com.twilio.ipmessaging is renamed to com.twilio.talk
  • AccessManager is liquidated from SDK

ADDED

  • Channel.removeAllListeners() liquidates all added listeners.
  • Channel.getMessagesCount()
  • Channel.getUnconsumedMessagesCount()
  • Channel.getMembersCount()
  • Channels.getPublicChannels() comebacks ChannelDescriptor s, and this list is not updated in realtime.
  • onUserInfoUpdated added UpdateReason.

Switched

Violating Do not come back IPMessagingClient before it was fully initialised. IPMessagingClient.create() no longer comes back a value, you can obtain reference to created IPMessagingClient only in listener’s onSuccess() callback.

Cracking Channel.setListener() substituted with addListener() to support assigning numerous listeners

  • Violating Channel.removeListener() now accepts listener ptr to liquidate only that one
  • Violating Substitute custom-built CreateChannelListener in Channels.createChannel() with generic CallbackListener<Channel> . Listener’s onCreated(Channel) is therefore renamed onSuccess(Channel) .

    Violating IPMessagingClient.handleNotification() now accepts NotificationPayload instead of Map<String,String>

    Violating Messages.getMessageByIndex() has been switched to asynchronous interface.

    Cracking Members.getMembers() has been switched to asynchronous interface.

    Violating Channel invite logic switches.

    Cracking Constants interface is eliminated, StatusListener and CallbackListener<T> are standalone classes now.

    DELETED

    • Cracking Liquidated built-in AccessManager, IPMessagingClient.create() now accepts only String token. IPMessagingClient.updateToken() is provided to update it.
    • Use com.twilio:accessmanager-android:0.1.0 from jcenter

    Liquidated twilio-common from dependencies.

    Violating Liquidate previously obsoleted ChannelListener.onAttributesChange()

    Violating Liquidate previously deprecated Channels.createChannel() with attributes map.

    Violating Liquidate previously deprecated TwilioIPMessagingSDK

    Cracking Eliminate previously deprecated InitListener

    Cracking Eliminate previously deprecated Messages.getMessages()

    Need some help?

    We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.

    Related video:

  • Leave a Reply

    Your email address will not be published. Required fields are marked *