Skip to content

Releases: Countly/countly-sdk-java

24.1.0

16 Feb 11:48
12a0949
Compare
Choose a tag to compare
  • !! Major breaking change !! The following method and its functionality is deprecated from the "UserEditor" interface and will not function anymore:

    • "setLocale(String)"
  • Added the user profiles feature interface, and it is accessible through "Countly::instance()::userProfile()" call.

  • Added the location feature interface, and it is accessible through "Countly::instance()::location()" call.

  • Added init time configuration for the location parameters:

    • "setLocation(String countryCode, String city, String location, String ipAddress)"
    • "setDisableLocation()"
  • Crash Reporting interface added and accessible through "Countly::instance()::crash()" call.

  • Added "disableUnhandledCrashReporting" function to the "Config" class to disable automatic uncaught crash reporting.

  • Added "setMaxBreadcrumbCount(int)" function to the "Config" class to change allowed max breadcrumb count.

  • Added the views feature interface, and it is accessible through "Countly::instance()::views()" call.

  • Added a configuration function to set global view segmentation to the "Config" class:

    • "views.setGlobalViewSegmentation(Map<String, Object>)"
  • Fixed a bug where setting custom user properties would not work.

  • Fixed a bug where setting organization of the user would not work.

  • Fixed a bug where sending a user profile picture with checksum was not possible.

  • Fixed a bug where running time calculation was sent as a milliseconds but should have been in seconds.

  • Deprecated "Countly::backendMode()" call, use "Countly::backendM" instead via "instance()" call.

  • Deprecated "Usage::addLocation(double, double)" call, use "Countly::location::setLocation" instead via "instance()" call.

  • Deprecated "Usage::addCrashReport()" call, use "Countly::crash" instead via "instance()" call.

  • The following methods are deprecated from the "UserEditor" interface:

    • "commit()" instead use "Countly::userProfile::save" via "instance()" call
    • "pushUnique(String, Object)" instead use "Countly::userProfile::pushUnique" via "instance()" call
    • "pull(String, Object)" instead use "Countly::userProfile::pull" via "instance()" call
    • "push(String, Object)" instead use "Countly::userProfile::push" via "instance()" call
    • "setOnce(String, Object)" instead use "Countly::userProfile::setOnce" via "instance()" call
    • "max(String, double)" instead use "Countly::userProfile::saveMax" via "instance()" call
    • "min(String, double)" instead use "Countly::userProfile::saveMin" via "instance()" call
    • "mul(String, double)" instead use "Countly::userProfile::multiply" via "instance()" call
    • "inc(String, int)" instead use "Countly::userProfile::incrementBy" via "instance()" call
    • "optOutFromLocationServices()" instead use "Countly::location::disableLocation" via "instance()" call
    • "setLocation(double, double)" instead use "Countly::location::setLocation" via "instance()" call
    • "setLocation(String)" instead use "Countly::location::setLocation" via "instance()" call
    • "setCountry(String)" instead use "Countly::location::setLocation" via "instance()" call
    • "setCity(String)" instead use "Countly::location::setLocation" via "instance()" call
    • "setGender(String)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "setBirthyear(int)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "setBirthyear(String)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "setEmail(String)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "setName(String)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "setUsername(String)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "setPhone(String)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "setPicturePath(String)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "setOrg(String)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "setCustom(String, Object)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "set(String, Object)" instead use "Countly::userProfile::setProperty" via "instance()" call
    • "picture(byte[])" instead use "Countly::userProfile::setProperty" via "instance()" call
  • Deprecated "View::start(bool)" call, use "Countly::views::startView" instead via "instance()" call.

  • Deprecated "View::stop(bool)" call, use "Countly::views::stopViewWithName" or "Countly::views::stopViewWithID" instead via "instance()" call.

  • Deprecated "Usage::view(String)" call, use "Countly::views::startView" instead via "instance()" call.

  • Deprecated "Usage::view(String, bool)" call, use "Countly::views::startView" instead via "instance()" call.

  • Deprecated "Countly::view(String)" call, use "Countly::views::startView" instead via "instance()" call.

  • Deprecated "Countly::view(String, bool)" call, use "Countly::views::startView" instead via "instance()" call.

23.10.1

15 Nov 12:16
8e35f43
Compare
Choose a tag to compare
  • Fixed a bug where getting the feedback widget list would fail if "salt" was enabled.

23.10.0

10 Nov 13:04
2ec9fa3
Compare
Choose a tag to compare
  • ! Minor breaking change ! Calling "init" twice will now not reinitialize the SDK. The call will be ignored

  • ! Minor breaking change ! 'bounce' and 'exit' segmentation values are now not sent from the SDK. They will be automatically applied on the server.

  • Session update time duration increased to 60 seconds from 30 seconds.

  • Adding remaining request queue size information to every request.

  • Adding application version information to every request.

  • Added the remote config feature.

  • Added the Remote Config module with A/B testing. It is accessible through "Countly::instance()::remoteConfig()" call.

  • Added configuration functions to configure Remote Config module on init:

    • 'enableRemoteConfigValueCaching' to enable caching of remote config values
    • 'enrollABOnRCDownload' to enroll A/B tests when remote config values downloaded
    • 'enableRemoteConfigAutomaticTriggers' to automatically download remote config values on init
    • 'remoteConfigRegisterGlobalCallback(RCDownloadCallback callback)' to register a remote config callback
  • Added the ability to set the user profile picture with a URL

  • Added the DeviceId interface. It is accessible through "Countly::instance()::deviceId()" call.

  • Added a way to get device id type by calling "Countly::deviceId::getType" via "instance()" call

  • The SDK now uses a different file for internal configuration. Old file will be deleted.

  • Fixed a bug where it was not possible to send a profile picture with binary data

  • Deprecated following functions from "Usage" interface and respective implementations:

    • "changeDeviceIdWithoutMerge" instead use "Countly::deviceId::changeWithoutMerge" via "instance()" call
    • "changeDeviceIdWithMerge" instead use "Countly::deviceId::changeWithMerge" via "instance()" call
    • "getDeviceId" instead use "Countly::deviceId::getID" via "instance()" call

23.8.0

06 Oct 10:24
e897ff9
Compare
Choose a tag to compare
  • !! Major breaking change !! The following methods and their functionality are deprecated from the "UserEditor" interface and will not function anymore:

    • "addToCohort(key)"
    • "removeFromCohort(key)"
  • Added the feedback widget feature. Added consent for it "Config.Feature.Feedback".

  • Feedback module is accessible through "Countly::instance()::feedback()" call.

  • Deprecated call "Countly::getSession" is removed

  • Deprecated call "resetDeviceId" is removed

  • Deprecated the init time configuration of 'setEventsBufferSize(eventsBufferSize)'. Introduced replacement 'setEventQueueSizeToSend(eventsQueueSize)'

  • Deprecated the init time configuration of 'setSendUpdateEachSeconds(sendUpdateEachSeconds)'. Introduced replacement 'setUpdateSessionTimerDelay(delay)'

  • In Countly class, the old "init(directory,config)" method is deprecated, use "init(config)" instead via "instance()" call.

  • Deprecated "Countly::stop(boolean)" call, use "Countly::halt" or "Countly::stop" instead via "instance()" call.

  • Deprecated "Countly::event" call, deprecated builder pattern. Use "Countly::events" instead via "instance()" call.

  • Deprecated "Countly::timedEvent(String)" call, use "Countly::events::startEvent" instead via "instance()" call.

  • Deprecated "Config::setUsePOST" and "Config::enableUsePOST" calls, use "Config::enableForcedHTTPPost" instead.

  • The following methods are deprecated from the "Event" interface:

    • "record"
    • "endAndRecord"
    • "addSegment"
    • "addSegments"
    • "setSegmentation"
    • "setSum"
    • "setCount"
    • "setDuration"
    • "isInvalid"

22.09.2

16 Mar 23:15
Compare
Choose a tag to compare
  • Fixed internal log calls that did not respect the configured log level and did not work with the log listener.

22.09.1

10 Mar 17:35
03ffd64
Compare
Choose a tag to compare
  • Adding a way to override metrics sent by "begin session" requests.
  • Fixed bug where "setApplicationVersion" would not set the application version in metrics
  • ! Minor breaking change ! The following methods and their functionality are deprecated from the "Config" class and will not function anymore:
    • "getApplicationName"
    • "setApplicationName"

22.09.0

07 Mar 18:21
c6d0061
Compare
Choose a tag to compare
  • The "resetDeviceId", "login", and "logout" have been deprecated.

  • ! Minor breaking change ! The following methods and their functionality are deprecated from the "Config" class and will not function anymore:

    • "enableTestMode"
    • "disableTestMode"
    • "isTestModeEnabled"
    • "setLoggingTag"
    • "setSdkName"
    • "setSdkVersion"
    • "getSdkName"
    • "getSdkVersion"
    • "isDeviceIdFallbackAllowed"
    • "setDeviceIdFallbackAllowed"
    • "overrideModule"
    • "getModuleOverride"
    • "getCrashReportingANRCheckingPeriod"
    • "setCrashReportingANRCheckingPeriod"
    • "disableANRCrashReporting"
  • ! Minor breaking change ! The following methods have been removed from the "Config" class:

    • "setAutoViewsTracking"
    • "setAutoSessionsTracking"
    • "setSessionAutoCloseAfter"
    • "isAutoViewsTrackingEnabled"
    • "isAutoSessionsTrackingEnabled"
    • "getSessionAutoCloseAfter"
    • "setSessionCooldownPeriod"
  • ! Minor breaking change ! The "TestMode" functionality is being removed from the SDK.

  • ! Minor breaking change ! The module override functionality is being removed from the SDK.

  • ! Minor breaking change ! It is not possible to set the logging tag anymore.

  • Fixed a bug where the wrong platform field value was being sent in the view request.

  • Updated JSON library version from "20180813" to "20230227".

20.11.5

16 Dec 14:39
Compare
Choose a tag to compare
  • Fixed a bug where the backend mode module produces "null pointer exceptions" in case not initialized.

20.11.4

01 Sep 14:22
ba1f013
Compare
Choose a tag to compare
  • Adding mitigations to an issue that would surface when stopping a view that was not started.

20.11.3

29 Jun 11:41
3cec3b1
Compare
Choose a tag to compare
  • Fixed a threading issue in the backend mode feature.