Better protect Didomi SDK against null Fragment Managers
Background was displayed in a dark color on some views when device and app had dark mode enabled which difficults reading the text which is also displayed in a dark color.
Updated Spanish and Lithuanian translations.
Learn more button did not have the right padding.
The description text 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.
getTranslatedText method to get translated text from multiple sources https://developers.didomi.io/cmp/mobile-sdk/reference-android#gettranslatedtext
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.
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.
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).
Updated the way API events are sampled to be based on user ID rather than on a random number.
ui.action type for events sent to the API for tracking the interactions of the user with the consent UI. Actions added:
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.
colorControlHighlight property was being set in the app theme, the purpose switches were taking that color as their background color.
When the notice was displayed as a banner and the text was long, the bottom buttons wouldn't display on small screens.
Some mapping keys related to the getText and getTranslatedText methods were not matching the JSON properties of the preferences and notice properties.
Updated IAB vendors list to 155.
Added the ability to provide translatable texts through the
texts property in the
didomi_config.json file that can be used when creating a custom notice.
Added the ability to block/disable the
Agree to all and
Disable to all buttons by providing the
preferences.disableButtonsUntilScroll flag and setting it to
The consent notice was not behaving properly when the device was rotated.
HideNoticeEvent was not triggered as required in some cases.
The Console generates custom purpose IDs within
[A-Za-z0-9-_] and SDKs only allowed
showPreferences(AppCompatActivity activity) method to allow the display of the Preferences view from an activity other than the one used with the
DidomiNotReadyException to those methods that should only be called once the Didomi SDK is ready.
Update IAB vendors list (version 146)
Popup notice was being dismissed when the device back button was pressed.
SDK was crashing the app when 1) an SDK fragment (notice, preferences, etc.) was left open and the app was sent to the background for long enough to be killed by the OS and 2) the app was resumed on that fragment.
Add the possibility to get the configuration remotely from the Didomi console
Add Russian and Ukrainian languages
java.util.ConcurrentModificationException was thrown when adding event listeners inside the
Not availability of
Advertising ID was causing issues. Now we use a fallback identifier when
Advertising ID is not available.
There was a race condition when registering SDK events that in some edge cases could potentially crash the app.
The SDK was using the current activity on fragments instead of the fragments themselves to retain the view models which in some edge cases could potentially crash the app.
shouldConsentBeCollected method used to allow developers to check if consent should be collected or not.
App was crashing in some edge cases when user minimised the app right before the consent notice was displayed.
Customize buttons and links color https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-theme.
Details about purposes and vendors by expanding the list items.
Purposes are listed under each vendor item on the vendors screen when they are expanded.
Customize logo on the Purposes view https://developers.didomi.io/cmp/mobile-sdk/getting-started#configure-your-app-name-and-logo.
Bypass notice and open Preferences pop-in directly https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-preferences-popup#display-when-consent-is-missing.
Customize purposes order and icons by providing purpose categories https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-preferences-popup#purposes.
Prevent the Preferences pop-in from being closed when consent is missing https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-preferences-popup#prevent-the-popup-from-being-closed-when-consent-is-missing.
Remove "Number of Partners" on the Preferences view.
Update content translations.
Text scrolled in the middle on the Preferences pop-in.
Preferences pop-in opens twice.
Preferences pop-in closed when clicking on back button and the "X" button was disabled.
Vendor switch color was not different from the switches on the Purposes view.
Supports the 24 European languages
Number of days before recollecting consent option in the configuration tag
Fixed some UI issues
Fixed potential issue around macros and the way they get replaced in the content
Default texts format used different font size/weight across languages
ApiEventsRepository from the public API
Correctly load purposes and vendors statuses in the Preferences popup after consent has been given
Save button when the Preferences popup is open after consent has been given
Map custom vendor to IAB ID
getUserConsentStatusForVendorAndRequiredPurposes in the public API
Ability to customize texts in the preferences popup
Translation issues on purposes and vendors
Do not load cached config if remote config URL is null/empty
Load app config (
didomi_config.json) from a remote URL
IABConsent_SubjectToGDPR shared preferences key for the IAB spec to indicate whether the user is subject to GDPR or not
Expandable info on vendors would not expand
Remove the app name from the User-Agent and replace it with "Didomi SDK/[SDK version]"