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.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.LDClient.track(String, JsonElement, Double) for recording numeric metrics.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.identify() was called rapidly.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.identify call.identify() on LDClient instances.com.launchdarkly:launchdarkly-android-client to com.launchdarkly:launchdarkly-android-client-sdkThere 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.
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.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.ConnectionInformation functionality to example application.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.getVersion() returns the version string of the SDK.boolVariation, intVariation, and floatVariation to always return null if fallback argument was null.ClassCastException crash on some devices due to old version of OkHttp.Authorization request headersLDClient on non-main threadsFuture returned by LDClient.init()Date HTTP header parsing specifies US localeClassCastException when calling variation methods due to internal storage schema changes between releases 2.3.x and 2.4.0.LDUser.Builder.custom() no longer returns UnsupportedOperationException.LDClient#identify(LDUser) now returns a Future<Void> so that the app can be notified when flag values have been refreshed for the updated user.com.noveogroup.android:android-logger dependency that prevented some consuming apps from assembling.inlineUsersInEvents. For more details, see Analytics Data Stream Reference.setInlineUsersInEvents in LDConfig. When true includes the full user (excluding private attributes) in analytics feature and custom events. When false includes only the userKey. Default: false.Timber dependency to version 4.7.0.setOnline() method may be throttled if called too frequently.