LIGHTSTREAMER CHANGELOG
SDK for Android Clients (Unified API Version)
3.0.0 build 97
Compatible with Lightstreamer Server since 6.1.
May not be compatible with code developed with the previous version; see compatibility notes below.
Released on 20 Jan 2017

Introduced the use of WebSockets both for streaming and for subscription and client message requests, which brings an overall performance improvement.
As a consequence, setForcedTransport now also supports the "WS", "WS-STREAMING", and "WS-POLLING" values and the predisposed setEarlyWSOpenEnabled method is now effective.
Since the use of WebSockets requires a larger memory footprint, an alternative "compact" version of the library, which gives up WebSocket support, is also available via Maven with name ls-android-client-compact.

Replaced the "maxBandwidth" property of the ConnectionOptions bean with two distinct properties: "requestedMaxBandwidth" and the read-only "realMaxBandwidth", so that the setting is made with the former, while the value applied by the Server is only reported by the latter, now including changes during session life. The extension affects the getter and setter names and also the invocations of onPropertyChange on the ClientListener (see the docs for details). COMPATIBILITY NOTE: Custom code using "maxBandwidth" in any of the mentioned forms has to be ported and recompiled. If the property is not used in any form, existing compiled code can still run against the new library.

Introduced a new callback, "onRealMaxFrequency", to the SubscriptionListener, to report the frequency constraint on the subscription as determined by the Server and their changes during subscription life. See the docs for details and special cases. COMPATIBILITY NOTE: Custom code has to be ported, by implementing the new method, and recompiled. Existing compiled code should still run against the new library: invocations to onRealMaxFrequency to the custom listener would cause an exception that would be caught internally.

Introduced a new property, "clientIp", in the ConnectionDetails bean; it is a read-only property with the related getter and keyword for onPropertyChange (see the docs for details).

Completed the implementation of methods whose implementation was only partial. This regards:

Removed a restriction on field names that can be supplied to a Subscription object within a "field list"; names made by numbers are now allowed. Obviously, the final validation on field names is made by the Metadata Adapter.

Fixed a bug on the implementation of disconnect(), whereby an ongoing loop of connection attempt was not interrupted in case of Server down or wrong address.

Revised the sendMessage implementation in the HTTP case, to limit recovery actions when messages are not to be ordered and a listener is not provided.
Revised sendMessage to accept 0 as a legal value for the "delayTimeout" argument; negative values will now be accepted to mean that the Server default timeout is to be used. COMPATIBILITY NOTE: Existing code using the 5-argument version of sendMessage and supplying 0 as "delayTimeout" must be modified to use -1 instead. Invocations to the 1-argument version don't have to be modified.

Added new error codes 66 and 68 to onServerError, onSubscriptionError, and onSecondLevelSubscriptionError, to report server-side issues; previously, upon such problems, the connection was just interrupted.
Added missing error code 60 to onServerError documentation; this error reports server-side licensing limitations.
Removed error code 20 from onSubscriptionError and onSecondLevelSubscriptionError documentation; when a subscription request cannot find the session, the session is just closed and recovered immediately.
Revised the documentation of the possible error codes.

Slightly delayed the availability of the "serverSocketName" property of the ConnectionDetails bean, which was already valued upon session start. COMPATIBILITY NOTE: Custom code using getServerSocketName right after a session start, should ensure that onPropertyChange for "serverSocketName" gets invoked first.

Added the support for non standard unicode names, if supplied as hostnames in the Server's <control_link_address> configuration element.

Removed useless requests to the Server for bandwidth change when the Server is not configured for bandwidth management.

Improved the management of setHttpExtraHeadersOnSessionCreationOnly, when true. Previously, the extra headers (supplied with setHttpExtraHeaders) were still sent, redundantly, on control requests.

Revised the default setting for the "ContentLength" property of ConnectionOptions, to allow the library to set it to the best value.

Clarified in the documentation the meaning of null in setRequestedMaxFrequency and setRequestedBufferSize. Extended setRequestedMaxFrequency to allow the setting also when the subscription is "active" and the current value is null.

Improved the documentation of various methods in regard to the special case of two-level subscriptions.
Detailed the documentation of the various property getters and setters in regard to the possible values.

Improved the Javadocs, by shortening the concise descriptions of some classes and methods.

2.0.4 build 94.1
Compatible with Lightstreamer Server since 6.0.1.
Compatible with code developed with the previous version.
Released on 23 Nov 2016

Fixed a bug, regarding only subscriptions in COMMAND mode, which caused unchanged fields to be redundantly indicated as changed. The bug didn't affect the returned data values.

2.0.3 build 94
Compatible with Lightstreamer Server since 6.0.1.
Compatible with code developed with the previous version.
Released on 14 Nov 2016

Fixed a bug which could have caused onSubscriptionError and onCommandSecondLevelSubscriptionError to report wrong error codes, that is, codes different from the documented ones.

Fixed the documentation of onClearSnapshot, which is only predisposed.

2.0.2 build 92
Compatible with Lightstreamer Server since 6.0.1.
Compatible with code developed with the previous version.
Released on 30 Aug 2016

Added meta-information on method argument names for interface classes, so that developer GUIs can take advantage of them.

2.0.1 build 88
Compatible with Lightstreamer Server since 6.0.1.
Compatible with code developed with the previous version.
Released on 22 Jul 2016

Clarified the documentation in regard to a few API methods that still have a partial implementation or are just predisposed and not implemented yet.

2.0.0 build 87
Compatible with Lightstreamer Server since 6.0.1.
May not be compatible with code developed with the previous version; see compatibility notes below.
Released on 10 May 2016

Changed the names of some properties in the ConnectionOptions bean. To resume:

This affects the getter and setter names and also the invocations of onPropertyChange on the ClientListener. COMPATIBILITY NOTE: Custom code using any of the mentioned properties has to be ported and any related binaries have to be recompiled.

Fixed potential NullPointerException which could be thrown when setting or updating fields and/or items list if logging is enabled at DEBUG level.

Changed the type and behavior of the getConnectTimeout/setConnectTimeout. This setting is now represented as a String in order to accept the "auto" value. If "auto" is specified the value used internally will be chosen (and possibly changed overtime) by the library itself. Note that "auto" is also the new default value.

To check and or modify the current value, a new CurrentConnectTimeout property, with its getter/setter pair in ConnectionOptions, is exposed. COMPATIBILITY NOTE: if the setConnectTimeout method is called by the client code, the given parameter must be modified to be a String. If the getConnectTimeout method is called by the client code its receiving variable must be converted to a String; moreover it is likely that getConnectTimeout calls should be replaced by getCurrentConnectTimeout ones. See the docs for further details.

Prevented reconnection attempts upon wrong answers from the Server.

Fixed an error in the log of the keepalive interval setting.

Fixed the documentation of onServerError and onStatusChange, to specify that onServerError is always preceded, not followed, by onStatusChange with DISCONNECTED.

Revised javadoc formatting style and fixed various typos in the javadocs.

2.0 a2 build 74
Compatible with Lightstreamer Server since 6.0.1.
May not be compatible with code developed with the previous version; see compatibility notes below.

Resorted to an external package for the log support. COMPATIBILITY NOTE: Custom code using the LoggerProvider interface should be revised, based on the new documentation; see setLoggerProvider.

Improved the handling of long polling.

Added missing documentation of setProxy in ConnectionOptions.

2.0 a1 build 66
Compatible with Lightstreamer Server since 6.0.1.
Made available as a prerelease on 16 Jul 2015

Introduced as an improved alternative to the SDK for Android Clients. The interface offered is completely different, and it is very similar to the one currently exposed by the SDK for JavaScript Clients.
see "sdk_client_android_alpha".