1.71.0 (November 17, 2022)

  • Remove TCF v1 support.
  • Supporting url and resource name from logoUrl configuration parameter.

1.70.2 (October 27, 2022)

  • SetupUI was not working properly with specific Android project configurations, throwing an exception.
AndroidJavaException: java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onStart(androidx.lifecycle.LifecycleOwner)"

1.70.1 (October 21, 2022)

  • Fix Toggle colors not changing for older APIs (< 24).
  • Fix Toggle state not updated on click when the view holder is recycled for older APIs (< 27).

1.70.0 (October 19, 2022)

  • Optimize display of Purpose legal description.
  • Update kotlin plugin from 1.5.31 to 1.7.20.
  • Update appcompat library from 1.3.1 to 1.4.2.
  • Update material library from 1.4.0 to 1.6.1.
  • Improve AndroidTV performance.
  • Prevent crash when Application is brought back from background and the Didomi SDK is not initialized from the Application class.
  • Fix device language not correctly handled for Hebrew and Indonesian.

1.69.0 (September 16, 2022)

  • Add ability to enable sticky buttons on the notice (see Sticky Buttons).
  • Disable location query from device GPS when the location permissions are granted (we now rely only on our API to get the user location and to provide the matching regulation).
  • Update link to IAB TCF v2 from the vendor detail page.
  • Prevent CCPA "Sell my data" toggle neutral state.

1.68.0 (September 13, 2022)

CCPA support is still in beta, please contact [email protected] if you are interested to participate

1.67.0 (September 8, 2022)

  • Accessibility improvements on the vendors list
  • Improved accessibility on buttons displayed on the notice.
  • Consent asked events was using all required purposes as both consent and legitimate interest.
  • Fix toggle buttons behaviour when using purpose categories

1.66.0 (August 26, 2022)

  • Improve accessibility of close buttons and headings on Preferences screens.
  • Fix missing button padding on some devices for AndroidTV.
  • Fix a lifecycle issue causing not initialized properties errors (e.g. Fatal Exception: kotlin.UninitializedPropertyAccessExceptionlateinit property themeProvider has not been initialized).

1.65.0 (August 8, 2022)

  • Add ability to enable fullscreen mode (see Fullscreen mode for more details).
  • Handle device storage disclosure as link (instead of json) from IAB vendor list.
  • Improve accessibility of Preferences screen.
  • Add missing bottom bar for Vendor details page.
  • Fix crash when displaying details of vendor with an incorrect device storage disclosure URL (java.lang.NullPointerException: Attempt to invoke virtual method 'boolean io.didomi.sdk.models.DeviceStorageDisclosure.isValid()' on a null object reference)

1.64.0 (July 21, 2022)

  • Query purposes for current language in order to always provide up-to-date translations.
  • Add new events for language change (see languageUpdated and languageupdatedfailed for more details).
updateSelectedLanguage is now asynchronous.
setUser(null) is no more available. The correct call is clearUser() (see clearUser for more details).
  • Fix layout on additional data processing page.
  • Disable neutral state when controlled value is legitimate interest.

1.63.0 (June 27, 2022)

  • Handle mutli-account for Cross-device feature (see Multi-account for more details).
  • Allow to customize font family of title and description in notice and preferences screen (see Custom Font Family for more details).
  • Hide bulk action in purposes and vendors screens when there is only one item in the list.
  • Allow to call reset() method while SDK is not initialized.

1.62.0 (June 10, 2022)

  • Add an optional title field in notice (see Texts for more details)
  • Allow to customize font size, color and alignment of title and description in notice and preferences screen (seenotice, preferences for more details)
  • Prevent notice text scrolling outside of pop-up window

1.61.1 (May 30, 2022)

  • Fix possible crash when app and notice were restored after staying a very long time in the background.

1.61.0 (May 17, 2022)

  • When notice was displayed to the user but no choice was made yet, the IAB consent string contained an incorrect list of enabled legitimate interest purposes.
  • Vendor device storage disclosure list was not displayed on devices below API 21.

1.60.0 (April 27, 2022)

  • Update design for tablets.
  • Add new languages support (Norwegian, Brazilian, Azerbaijani, Bengali, Filipino/Tagalog, Hebrew, Hindi, Indonesian, Macedonian, Swahili).
New languages must be enabled from the Console once they are available.
Bug fixes:
  • Remove Purpose and Vendor bulk action when only essential/required purposes are used.
  • Incorrect toggles animation while scrolling
  • Fix issues when legitimate interest purposes are set as essential
  • Fix a crash on Android TV preferences screen when using essential purposes

1.59.1 (April 4, 2022)

  • Migrate Didomi class to Kotlin
  • Improve banner notice layout
  • Add a default background color for secondary buttons
  • Fix dependencies conflict with some libraries, producing the error java.lang.VerifyError: Verifier rejected class

1.59.0 (April 4, 2022)

This version can produce crashes and should not be used

1.58.0 (March 18, 2022)

  • Improve accessibility of User Information screen
  • Update ConstraintLayout dependency from 2.1.2 to 2.1.3
  • Prevent glitch during Preferences screen animation for tablets
  • Revert toggle change animation for purposes screen
  • Prevent invisible toggle track for some application themes

1.57.0 (March 11, 2022)

  • Allow multiple initializations of the SDK.
  • Use Support Library for vector drawables (no more bitmaps generated for older APIs).
  • Toggle and Switch components were migrated to Kotlin.
  • Keep white background for the notice on Dark Mode.
  • Remove empty space on the top of the notice with some themes (disable Dialog Title).

1.56.0 (March 4, 2022)

  • Remove unnecessary permission ACCESS_WIFI_STATE.
  • Improve accessibility for purposes and partners screens.
  • Layout optimisation for CTV Vendors detail screens (layout simplification, use selector for components colors).
  • Improve alignment in purposes list with optional icon.

1.55.0 (February 7, 2022)

From this version, the Didomi SDK does no longer require jcenter() in the project repositories list.
  • Vendor model class was migrated to Kotlin
  • Embed a library which was hosted on deprecated JCenter repository, so JCenter is no longer required for building app
  • Added the didomi_ prefix before all Didomi SDK resource ids (layouts, drawables, colors, dimensions...) to prevent conflicts with app or other libraries resources
  • Fix possible crash related to application lifecycle (lateinit property model has not been initialized)

1.54.0 (January 2022)

Bug fixes:
  • The user consent update date was not correctly updated
  • syncDone event was not called if last synchronization was still recent

1.53.0 (January 2022)

  • Improve accessibility for the notice and purposes screens
  • Migrate Didomi event classes to Kotlin
Bug fixes:
  • Code javadoc was not published with the release

1.52.0 (December 2021)

  • Optimize focus management on Android TV
Bug fixes:
  • Apply “save”, “agree to all”, “disagree to all” to Vendors on Android TV preferences screen
  • Saving Consent without any action will keep the current state of Vendors and Purposes on Android TV
  • Fix Notice and Preferences layouts to prevent cropped text on Android TV
  • Update displayed user status when reopening preferences screen on Android TV

1.51.2 (December 2021)

Bug fixes:
  • Keep package name for obfuscated classes in order to prevent conflicts with other obfuscated libraries.

1.51.1 (December 2021)

This release may cause conflicts with other obfuscated libraries. Please update to 15.1.2.
Bug fixes:
  • Add missing @Keep annotation and avoid obfuscation of some parameters name that are exposed to host app.

1.51.0 (December 2021)

This release may cause conflicts with other obfuscated libraries. Please update to 15.1.2.
  • Update fallback data for IAB TCF global vendors list.
  • Use @Keep annotation for obfuscation (no need for proguard rules anymore).
  • Layouts optimization for performance.

1.50.0 (November 2021)

  • Implement showPreferences / hidePreferences events when the preferences screen is opened and closed.
Bug fixes:
  • Allow to modify the save button label in the vendors view through property.
  • Convert bitmap resources to vectorized resources.
  • The common screen header had a few wrong margins.

1.49.0 (November 2021)

  • Added Legitimate Interest in TCF Consent String by default once the notice has been shown.
Bug fixes:
  • User Info screen was not displaying in fullscreen mode.
  • Avoid random ConcurrentModificationException while synchronizing after several calls to Didomi#setUser
  • The Purposes screen had a few wrong margins.

1.48.0 (October 2021)

Bug fixes:

  • Simultaneous API event calls were sometimes skipped.

1.47.1 (October 2021)

Bug fixes:
  • Get content from the remote if the cache date is valid but the file is corrupted or missing.

1.47.0 (October 2021)

  • Handle deny option as a cross in notice
Bug fixes:
  • Disabled vendors with only legitimate interest purposes were not present in getUserStatus()
  • Vendors with no associated consent or legitimate interest purposes were not present in getUserStatus()
  • In vendors screen, in some situations, a switch was displayed next to vendors with no associated consent or legitimate interest purposes

1.46.2 (September 2021)

Bug fixes:
  • Consent String retrieved by the sdk was not correctly updated after consent changes

1.46.1 (September 2021)

Bug fixes:
  • Fix incorrect serialization of UserStatus object when using Gson library

1.46.0 (September 2021)

  • Add salesforce vendor to global configuration
  • Update dependencies: Kotlin from 1.5.21 to 1.5.30, Gson from 2.8.6 to 2.8.8, Coroutines from 1.4.X to 1.5.2.
Bug fixes:
  • Better focus management on vendors detail page for CTV

1.45.0 (September 2021)

  • Add a parameter to determine if user consent choice was set from Didomi UI or from a call to Didomi.setUserStatus.
  • Handle non-TCF purposes in device storage disclosures.
  • When publisher restrictions applies to all vendors, apply it to non-IAB vendors as well.
Bug fixes:
  • Vendor device storage disclosures were not displayed in some configurations.

1.44.0 (August 2021)

  • Change the default focus on CTV notice according to CNIL guidelines.

1.43.2 (July 2021)

Bug fixes:
  • Fix getUserStatus() method by correcting vendors.globalLegitimateInterest and vendors.globalConsent values.
  • Fix Vendors bulk action for some configurations. The All toggle behavior was not working properly.
  • Update french translation for required.

1.43.1 (July 2021)

This version fixes an issue which prevented generation of the IAB-TCF consent string in some cases
Bug fixes:

1.43.0 (July 2021)

  • Refactor dependency management that which will allow improving the performance of the SDK.

1.42.0 (July 2021)

Important changes for Android TV apps:
  • By default, the sdk is now disabled when running on Android TV. To enable it, you have to use the new initialize method with DidomiInitializeParameters , and set androidTvEnabled to true(see reference)
  • To use a specific notice configuration, you must set the parameter tvNoticeId instead of noticeId.
  • Add a getUserStatus method, replacing the previous methods to get user consent status. See the reference for more information.
  • Add a new initialization method with a DidomiInitializeParameters parameters object. This is the recommended way to initialize the sdk, the previous methods are now deprecated. See the reference for more information.
  • Disable Android TV SDK by default, and add androidTvEnabled parameter to enable it. If you need to use the Android TV SDK, please reach out to your dedicated customer success manager.
  • Add tvNoticeId parameter for Android TV SDK specific notice id.
  • Ensure configuration is only loaded from Didomi on Android TV SDK.
  • Add getDeviceType method to check the device determined by the SDK (see reference)
  • Update androidx.appcompat dependency: 1.3.0
Bug fixes:
  • Fix Android TV preferences screen closing unexpectedly when switching from partners tab
  • Fix material shadow under preferences screens buttons

1.41.3 (June 2021)

Bug fixes:
  • getRequiredVendorIds method was only returning vendors with consent-based data processing instead of all the required vendors
  • When reopening the preferences screen after setting user consent status programmatically (setUserAgreeToAll / setUserDisagreeToAll / setUserStatus methods), the displayed consent state was not correct

1.41.2 (June 2021)

  • Removed separate internal vendors implementations, and turned Vendor interface into a class instead
  • Prepare support for displaying device storage information for custom vendors
Bug fixes:
  • Fix hidePreferences command when main preferences screen is not displayed
  • Use density-independent pixels (dp) instead of raw pixels for theme buttons border and corner radius sizes. In order to preserve existing configurations, this fix is under a feature flag: set sizesInDp to true to use it (see Customize the theme & UI for more information)
  • Fix material shadow under notice "Agree" button

1.41.1 (May 2021)

Bug fixes:
  • Manage languages with specific script code from device
  • Handle vendor with no consent or LI in getUserStatusForVendor

1.41.0 (May 2021)


1.40.2 (May 2021)

Bug fixes:
  • Prevent incorrect buttons colors when using a non-Bridge Theme.MaterialComponents.* app theme

1.40.1 (May 2021)

  • Improved header's layout and made bulk action sticky on the Vendors view
Bug fixes:
  • Remove Lifecycle Observer after onResume was reached in setupUI

1.40.0 (April 2021)

  • Allow to use Didomi SDK with simple FragmentActivity instead of AppCompatActivity
  • Improve internal handling of Didomi fragments
  • Remove internal use of some deprecated Android Framework features
  • Added support for app.deploymentId.
Bug fixes:
  • Fix a glitch of the "Agree to all" button in preferences screen

1.39.0 (April 2021)

We now use AndroidX instead of the support library. This means that your project must enable AndroidX to use this version.
Please note that this release replaces the Advertising ID provided by Google Ads Services for a random custom identifier.
Features :
  • Allow users to see and copy their information (Consent Token and User Id)
  • Remove ADID usage
  • Use AndroidX (allowing you to disable jetifier in your project)

1.38.1 (April 2021)

  • Support for denied consent duration (app.deniedConsentDuration)
Bug fixes:
  • Fix possible crash when using some colors in configuration
  • Choice buttons incorrectly displayed in essential purposes details screen
  • Handle essentials purposes associated to vendor's legitimate interests

1.37.0 (March 2021)

  • Support for Categories
  • Change notice buttons order
Bug fixes:
  • Fix Vendors with essential purposes that are disabled even when the user accepts all

1.36.0 (March 2021)

  • Support for Android TV
Bug fixes:
  • Do not raise Exception when calling Didomi.updateSelectedLanguage with an unavailable language code
  • Fix custom purpose translations issues when language is not the default

1.35.1 (March 2021)

  • Updated behaviour of setUserDisagreeToAll to be consistent with other platforms.
  • Added support for the denyAppliesToLI feature in notice and preferences screen.
  • Check if SDK is ready before using features Didomi.updateSelectedLanguage, Didomi.getText, Didomi.getTranslatedText.
  • Sync user choices for cross-device. (This feature is currently in private beta. Please reach out to our Support team if you want to use it)
Bugs fixes:
  • Rename conflicting state and enabled attributes.
  • Fix custom essential purposes not displayed after language change.
  • Modify SDK initialization logs from info to verbose.
  • Prevent crash if the TCF Consent String is not present when syncing user choices with the Didomi API.

1.34.0 (March 2021)

The Android Didomi SDK is now distributed through mavenCentral instead of deprecated JCenter. Make sure to update your build scripts: Setup
  • Support for consent maximum duration (app.consentDuration , default is 12 months / 31,622,400 seconds)
  • Distribute SDK through mavenCentral
  • Fix an issue with some API events sample rate
  • Prevent SDK from removing Camera permission
  • Fix possible crash in vendor details screen

1.33.0 (February 2021)

  • Added support to include Publisher Country Code into Consent String
Bug fixes:
  • Fix vendor details screen behavior on scroll

1.32.0 (February 2021)

  • Added ability to display "Continue without agreeing" link on the notice (notice.denyAsLink = true).

1.31.0 (January 2021)

Features :
  • Show a Disagree button on consent notice by setting notice.type = "optin"
  • Use primary button style for the disagree button by setting notice.denyAsPrimary = true
  • Evolution of UI design
  • Add new method setUserStatus(purposesConsentStatus, purposesLIStatus, vendorsConsentStatus, vendorsLIStatus) to set status globally
  • Deprecate old method setUserConsentStatus(enabledPurposeIds, disabledPurposeIds, enabledLegitimatePurposeIds, disabledLegitimatePurposeIds, enabledVendorIds, disabledVendorIds, enabledLegIntVendorIds, disabledLegIntVendorIds) and replace it with a new method setUserStatus with the same signature
Bug fixes :
  • Fix consent notice pop-up width too small on some devices

1.30.0 (January 2021)

Features :
  • Indicate platform and SDK version when downloading notice configuration
  • Added support for TCF v2.1

1.29.1 (January 2021)

Bug fixes :
  • Fallback to English resources if requested locale was stripped by app bundles
  • Fix incorrect or missing Google vendor after language change
  • Prevent a crash when requesting notice display directly

1.29.0 (December 2020)

Features :
  • Device storage usage information in the detailed view for each vendor
  • Update texts provided by IAB

1.28.0 (December 2020)

Please note that this release includes the ability to download the GVL (Global Vendor List) file. If you don't want the SDK initialization to wait for this step, set the app.vendors.iab.requireUpdatedGVL flag to false as explained here :
Features :
  • Essential/Required purposes section in the detailed view for each vendor
  • Download the GVL (Global Vendor List)

1.27.0 (November 2020)

Features :
  • Send TCF and Additional Consent information in API events
  • Optimize publisher restrictions encoding in Consent String
  • Modify additional data processing links color in purposes screen
Bug fixes :
  • Fix daysBeforeShowingAgain parameter preventing consents recollection unexpectedly

1.26.2 (November 2020)

Bug fixes :
  • Fix pageview API event sent when app is still in background
  • Update embedded proguard rules

1.26.1 (October 2020)

Features :
  • GVL update
  • Detailed additional data processing information
  • Remove TCFv1 storage keys when TCFv2 is enabled
Bug fixes :
  • Ensure that the legitimate interest status is correctly passed to Webviews in getJavaScriptForWebView

1.25.0 (October 2020)

Features :
  • Support for publisher restrictions
  • Improve SDK initialization time
  • Update notice default texts
  • Allow disabling TCF from config
  • Export javadoc
Bug fixes :
  • Dynamic buttons size in Preferences screen
  • Potential crash in purpose details screen

1.24.2 (September 2020)

Bug fixes :
  • After modifying purposes consent manually, it was not possible to save if a purpose was only available under legitimate interest.

1.24.0 (September 2020)

Features :
  • Support for user.ignoreConsentBefore parameter in config file, to force recollecting consent after a certain date
  • Added status accessors in Didomi class : getUserLegitimateInterestStatusForVendor, getUserLegitimateInterestStatusForPurpose, getUserLegitimateInterestStatusForVendorAndRequiredPurposes, getUserStatusForVendor

1.23.0 (September 2020)

Features :
  • Support for organization user ID: Didomi#setUser()
  • TCF v2: Do not display toggle for vendors with no consent or legitimate interest purpose
  • Do not display vendors with no associated purpose
Bug fixes :
  • Fix callback events PreferencesClickPurposeAgreeEvent, PreferencesClickPurposeDisagreeEvent, PreferencesClickVendorAgreeEvent, PreferencesClickVendorDisagreeEvent triggered several times when modifying purpose or vendor choices
  • Increase notice pop-up width
  • Do not display notice pop-up "Learn more" and "Accept" buttons on the same line if there is not enough space
  • Fix notice bottom banner "Accept" button not displayed correctly

1.22.2 (September 2020)

Bug fixes :
  • Prevent ConcurrentModificationException occurring from time to time when adding an EventListener

1.22.1 (September 2020)

Bug fixes :
  • Impossible to modify consent choices in Preferences screen when essential purposes are defined

1.22.0 (August 2020)

  • Updated IAB vendors list to 52.

1.21.1 (August 2020)

Bug fixes :
  • Fix consent string and other properties not stored in Shared Preferences on devices running an Android version lower than 7.0

1.21.0 (August 2020)

Features :
  • Added support for Google as a TCF vendor
Bug fixes :
  • Fixed alignment of the banner notice buttons

1.20.3 (August 2020)

Bug fixes :
  • Incorrect display of the notice buttons when texts are too long
  • Preferences screen validation buttons enabled too soon
  • Preferences screen "close" button displayed despite config parameters

1.20.2 (August 2020)

Bug fixes :
  • Fix value for SharedPreference "IABTCF_PolicyVersion"

1.20.1 (July 2020)

Bug fixes :
  • getUserConsentStatusForVendorAndRequiredPurposes was not returning the right status for google and other custom vendors.
  • Add missing purposes for custom vendors

1.20.0 (July 2020)

  • Additional data processing in Preferences

1.19.2 (July 2020)

Features :
  • Link to open vendors page from notice
Bug fixes :
  • Fix crash when using latest versions of play-services-ads
  • Prevent memory leak in onReady / onError functions

1.19.1 (July 2020)

Features :
  • "IAB TCF" tag on vendors list
Bug fixes :
  • Export Proguard rules with library
  • Consents were not sent in TCF v1 for vendors with only legitimate interest purposes

1.19.0 (July 2020)

  • Notice configuration by ID

1.18.0 (July 2020)

  • IAB TCF v2 initial support

1.17.1 (July 2020)

Bug fixes:
  • Fix interface issue at build time with RMSwitch dependency

1.17.0 (June 2020)

  • Pass consent to Webviews or Chrome Custom Tabs via query-string

1.16.0 (June 2020)

  • Do not pre-check vendors in Preferences

1.15.0 (June 2020)

  • Allow setting the log level through setLogLevel

1.14.1 (June 2020)

  • showPreferences has been improved, requiring an AppCompactActivity and allowing to select which view should open (purposes or vendors)

1.13.0 (May 2020)

Bug fixes:
  • Ensure that the SDK is never initialized more than once even if Didomi.getInstance().initialize() is called multiple times.
  • Fixed a crash caused by a race condition that could happen when an activity is destroyed with finishActivity or finishAffinity and setupUI is called before the activity is fully destroyed by Android

1.12.1 (May 2020)

  • Improved compatibility with dark themes.

1.11.0 (March 2020)

  • Updated Global Vendor List to version 192.

1.10.11 (February 2020)

Bug fixes:
  • Better protect Didomi SDK against null Fragment Managers

1.10.10 (February 2020)

Bug fixes:
  • Background was displayed in a dark color on some views when device and app had dark mode enabled which made it difficult to read dark text.

1.10.9 (February 2020)

  • Added Didomi.notice.hide(); to the JavaScript code that gets returned by method getJavaScriptForWebView. This means that the notice view on the web app that's loaded on the native app will be hidden automatically when injecting the JavaScript code returned by this method.

1.10.7 (January 2020)

Bug fixes:
  • The privacy policy link for each vendor on the Vendors view was picking up the color from the app theme which in some cases could result in white text displayed on a white background.

1.10.5 (January 2020)

  • Updated Spanish and Lithuanian translations.
Bug fixes:
  • The Learn more button did not have the right padding.
  • The description texts for each purpose and vendor were picking up the color from the app theme which in some cases could result in white text displayed on a white background.

1.10.1 (Dec 2019)

  • Updated getTranslatedText method to get translated text from multiple sources
  • Created new method updateSelectedLanguage method that allows app developers to change the language of the Didomi SDK.
  • Added the ability to pass a language code when calling the initialize method. This language code will be used to set the selected language.
Bug fixes:
  • The save button in the purposes view was not being enabled property in some cases when the user had previously saved their preferences using an old list of purposes.

1.9.0 (Nov 2019)

Bug fixes:
  • LeakCanary was reporting a memory leak related to Fragment Managers which was potentially caused by a race condition between the Garbage Collector and LeakCanary (potentially a false positive).

1.8.12 (Nov 2019)

  • Updated the way API events are sampled to be based on user ID rather than on a random number.

1.8.11 (Oct 2019)

  • Introduced ui.action type for events sent to the API for tracking the interactions of the user with the consent UI. Actions added: preferences.shownpurposes, preferences.shownvendors, preferences.purposechanged and preferences.vendorchanged.

1.8.10 (Oct 2019)

Bug fixes:
  • When displayed as a banner, the consent notice was hiding in landscape orientation. The user would have to swipe up to bring back the notice.

1.8.9 (Oct 2019)

Bug fixes:
  • When the colorControlHighlight property was being set in the app theme, the purpose switches were taking that color as their background color.

1.8.8 (Oct 2019)

Bug fixes:
  • When the notice was displayed as a banner and the text was long, the bottom buttons wouldn't display on small screens.

1.8.7 (Jul 2019)