Skip to content

Releases: launchdarkly/android-client-sdk

2.10.0

30 Jan 18:20
2c523ca

Choose a tag to compare

[2.10.0] - 2020-01-30

Added

  • The SDK now specifies a uniquely identifiable request header when sending events to LaunchDarkly to ensure that events are only processed once, even if the SDK sends them two times due to a failed initial attempt.

Deprecated

  • All classes in sub-packages, which were only intended for use by the SDK. These classes will be removed in the next major release.
  • LDCountryCode, as well as LDUser setters that took LDCountryCode as an argument. The String overloads should be used instead, as these will be removed in the next major release. Until that release the additional validation on the country fields will remain, see the Javadoc for more information.

2.9.1

03 Jan 21:14
4af59d0

Choose a tag to compare

[2.9.1] - 2020-01-03

Fixed:

  • Removed possibility of fatal SecurityException on Samsung devices that would be triggered when the SDK attempted to register an alarm to trigger a future poll when the application process already had 500 alarms registered. This limit is only present on Samsung's versions of Android Lollipop and later. The SDK will now catch this error if it occurs to prevent killing the host application.
  • Rarely, the client would deliver its initial "identify" event to LaunchDarkly immediately rather than waiting for the configured flush interval.
  • Fixed some malformed Javadoc comments.

2.9.0

25 Oct 21:07
89d944d

Choose a tag to compare

[2.9.0] - 2019-10-25

Added

  • Added support for new LaunchDarkly experimentation features. See LDClient.track(String, JsonElement, Double) for recording numeric metrics.
  • Substantially improved test coverage for SDK behavior in different Application states (network connectivity and backgrounding).

Fixed

  • The Future returned by LDClient.identify could not complete as intended for certain connectivity states. When in a background state this could not complete until the next background polling cycle, or never if background polling was disabled.

2.8.5

29 Jul 22:44
e52f4ef

Choose a tag to compare

[2.8.5] - 2019-07-29

Added:

  • Added a CircleCI badge to the project readme.

Fixed

  • Fix a bug introduced in 2.8.0 that could cause the SDK to enter a bad state where it would no longer connect to the flag stream if identify() was called rapidly.
  • Reverted an unintentional behavior change introduced in 2.8.0 when LDClient.init is given zero as the timeout argument. Before 2.8.0, this would not wait for initialization and return the client immediately. For 2.8.0-2.8.4 this was changed to wait indefinitely for initialization, 2.8.5 restores the earlier behavior.

2.8.4

14 Jun 19:58
c67be5d

Choose a tag to compare

[2.8.4] - 2019-06-14

Fixed

  • Deadlock when waiting on main thread for identify call.
  • ConcurrentModificationException caused by PollingUpdater or ConnectivityReceiver iterating over LDClient instances during initialization.

2.8.3

22 May 20:51
1a177c5

Choose a tag to compare

[2.8.3] - 2019-05-22

Added

  • Improved error handling on flag store migration.

Fixed

  • ClassCastException when migrating flag store from certain early Android SDK versions.

2.8.2

14 May 20:33
667ef8a

Choose a tag to compare

[2.8.2] - 2019-05-14

Fixed

  • Thread leak (introduced in 2.8.0) when calling identify() on LDClient instances.

2.8.1

06 May 19:14
46ab262

Choose a tag to compare

[2.8.1] - 2019-05-06

Changed

  • Changed the artifact id from com.launchdarkly:launchdarkly-android-client to com.launchdarkly:launchdarkly-android-client-sdk
  • Changed repository references to use the new URL

There are no other changes in this release. Substituting com.launchdarkly:launchdarkly-android-client version 2.8.0 with com.launchdarkly:launchdarkly-android-client-sdk version 2.8.1 will not affect functionality.

2.8.0

03 May 22:15
34acc20

Choose a tag to compare

[2.8.0] - 2019-05-03

Added

  • LDAllFlagsListener interface that can be registered to a LDClient instance. The SDK will call the listener's onChange method whenever it receives an update, passing a list of any flag keys that were updated to the listener.
  • Class ConnectionInformation that contains information about the current status of the SDK. This class can be retrieved with the method getConnectionInformation on a LDClient instance and contains information on the current connectivity mode, timestamps of most recent successful and unsuccessful connections to LaunchDarkly, as well as information on the most recent connection failure (if any).
  • LDStatusListener interface that can be registered to a LDClient instance. The interface has a method onConnectionModeChanged that will be called when the LDClient instance transitions between connectivity modes (due to foreground status changes, network connectivity changing, or explicitly being set). The listener also has a method onInternalFailure that will be called when the instance experiences a failure updating it's flag store. The SDK is expected to recover from these failures, the listener is supplied to allow more informed monitoring of any underlying reasons the flag store may be not up to date.
  • Demo of new ConnectionInformation functionality to example application.

Removed

  • Internal usages of Guava

Fixed

  • Potential issue that could cause dropping of flag updates if SDK received updates in close succession.
  • SDK will no longer assume that the application is started in the foreground, which can be untrue if started by Android's ActivityManager in response to a broadcast.

2.7.0

02 Apr 23:00
64bbb2f

Choose a tag to compare

[2.7.0] - 2019-04-02

Added

  • The new configuration option setEvaluationReasons(true) causes LaunchDarkly to report information about how each feature flag value was determined; you can access this information with the new client methods boolVariationDetail, stringVariationDetail, etc. The new methods return an object that contains both the flag value and a "reason" object which will tell you, for instance, if the user was individually targeted for the flag or was matched by one of the flag's rules, or if the flag returned the default value due to an error. For more information, see the SDK Reference Guide on evaluation reasons.
  • The new client method getVersion() returns the version string of the SDK.

Fixed

  • Bug causing boolVariation, intVariation, and floatVariation to always return null if fallback argument was null.
  • Potential issue where environment versions for flag updates could compare incorrectly due to floating point coercion.
  • Summary events for unknown flags (flags evaluated without any stored value, variation, or version) now include the returned value as intended.
  • Inaccurate events caused by data for flag version and variation being unsynchronized with flag value.
  • Bug causing some events to be dropped from summary counts due to data race in sending and updating summary events.
  • Potential ClassCastException crash on some devices due to old version of OkHttp.
  • Improved documentation comments throughout.
  • Crash on migration when no primary mobile key is specified.

Removed

  • CircleCI V1 config file