Releases: launchdarkly/android-client-sdk
Releases · launchdarkly/android-client-sdk
2.14.0
[2.14.0] - 2020-12-17
Added
- Added
LDConfig.Builder.setPollUri
configuration setter that is equivalent to the now deprecatedsetBaseUri
. - Added
LDConfig.getPollUri
configuration getter that is equivalent to the now deprecatedgetPollUri
. - Added
LDClient.doubleVariation
for getting floating point flag values as adouble
. This is preferred over the now deprecatedfloatVariation
.
Fixed
- Improved event summarization logic to avoid potential runtime exceptions. Thanks to @yzheng988 for reporting (#105).
- Internal throttling logic would sometimes delay new poll or stream connections even when there were no recent connections. This caused switching active user contexts using
identify
to sometimes delay retrieving the most recent flags, and therefore delay the completion of the returnedFuture
.
Changed
- The maximum delay the internal throttling logic could delay a flag request has been reduced to 60 seconds.
Deprecated
- Deprecated
LDConfig.Builder.setBaseUri
andLDConfig.getBaseUri
, please usesetPollUri
andgetPollUri
instead. - Deprecated
LDClient.floatVariation
, please usedoubleVariation
for evaluating flags with floating point values.
2.13.0
[2.13.0] - 2020-08-07
Added
- Allow specifying additional headers to be included on HTTP requests to LaunchDarkly services using
LDConfig.Builder.setAdditionalHeaders
. This feature is to enable certain proxy configurations, and is not needed for normal use.
2.12.0
[2.12.0] - 2020-05-29
Added
- Added a new configuration option,
maxCachedUsers
to LDConfig. This option allows configuration of the limit to how many users have their flag values cached locally in the device's SharedPreferences.
Fixed
- Fixed a NPE that could occur when calling a variation methods with a flag key that does not exist locally or is of the wrong type. This issue could only occur if a null fallback value was provided.
- Previously, the SDK manifest required the SET_ALARM permission. This permission was never used, so it has been removed.
Changed
- For polling requests, the SDK uses OkHttp with a cache configured. Previously the cache directory was set to the main application cache directory. This has been changed to a subdirectory of the application cached directory.
Deprecated
- Packages that contained only deprecated classes.
flagstore
,flagstore.sharedprefs
,gson
,response
, andtls
.
2.11.0
[2.11.0] - 2020-02-28
Added
- The SDK now periodically sends diagnostic data to LaunchDarkly, describing the version and configuration of the SDK, the Android API SDK version number, and performance statistics. No credentials, Android device IDs, or other identifiable values are included. This behavior can be disabled with
LDConfig.Builder.setDiagnosticOptOut(boolean)
or configured withLDConfig.Builder.setDiagnosticRecordingInterval(int)
. - New
LDConfig.Builder
field setterssetWrapperName(String)
andsetWrapperVersion(String)
. These allow a library wrapping the SDK (for example, the React Native SDK) to identify itself for usage data.
Fixed
- Fixed an issue where in some cases the future associated with an
init
oridentify
call would never complete if the network status or foreground state changed before the future had completed. Also improved test coverage of this behavior.
Deprecated
UserSummaryEventSharedPreferences
,SummaryEventSharedPreferences
,FeatureFlagFetcher
,Util
, andDebounce
. These classes were only intended for internal SDK use, and will be removed in the next major release to reduce the number of exposed classes.
2.10.0
[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 asLDUser
setters that tookLDCountryCode
as an argument. TheString
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
[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
[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 byLDClient.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
[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.