All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed an issue where internal weak references were removed by aggressive R8 optimizations.
- Fixed Android Custom Tabs redirect flows issues when different task affinities are used in the host application.
- Fixed an issue where browser and Android Custom Tabs redirect flows were not working when the application lifecycle is changed during the flow.
- Fixed memory leaks in Android Custom Tabs redirect flows.
- Added explicit ViewModelProvider.Factory implementations to prevent crashes when provider factory is overridden by the host application.
- Removed unused internal methods.
- Added Klarna Identity integration as part of Klarna Network with new
klarna-network-identitymodule. - Added ondemand services and subscription options to
KlarnaPaymentRequestData. - Added
klarnaNetworkSessionTokenproperty toKlarnaConfigurationwhen initializing Klarna. - Added
klarnaNetworkSessionTokenproperty toKlarnaPaymentRequestStateContextobject. - Added
paymentOptionIdtoKlarnaPaymentRequestDataobject. - Added support for app-to-app handover flow to Klarna Payment integration.
- Added support to fetch Klarna Network Session Token.
- Added support to clear Klarna Network Session login state.
- Added
iconandpaymentButtonproperties toKlarnaPaymentPresentationPaymentOptionobject. - Internal changes and optimizations to Klarna component messaging within WebView integration types.
- Optimized message queues for receivers in WebViews.
- Fixed broken Android Custom Tabs integration when the default browser does not support it.
- Added Klarna Messaging integration as part of Klarna Network with new
klarna-network-messagingmodule. - Added Klarna Payment Presentation content fetching to KlarnaPayment integration.
- Added improved support for links inside KlarnaOSMView with System WebViews.
- Fixed configuration change handling for features using System WebViews.
- Fixed an issue where a false positive log for callback call was being reported.
- Added file name sanization to file sharing feature to address app file manipulation vulnerabilities.
- Separated payments integrations
KlarnaPaymentViewandKlarnaExpressCheckoutButtonto a newklarna-paymentslibrary module. - Improved error handling and reporting for Sign in with Klarna flows.
- Removed
KlarnaInitProviderin favor of App Startup library. - Made
KlarnaReturnReceiverActivitythe default Activity that handles return URLs. - Fixed incorrect/excessive logging of
signInLoginFailedevent. - Discontinued publication of
sdk-fullandsdk-basicpackages.
- Added support for Klarna Payment integration as part of Klarna Network.
- Added Shopping Session integration as part of Klarna Network.
- Added two new modules
klarna-network-coreandklarna-network-paymentto support Klarna Network with least size impact to the integrating applications. - Added more secure persistence support, including supporting expiry time for stored data.
- Added theme property to WebViews to support dark mode in Klarna components.
- Internal optimizations and improvements.
- Added transparency to KlarnaPaymentView.
- Added distribution relocation for sdk-basic and sdk-full variants prior to discontinuation.
- Added internal modularization for future product modules and improved maintenance.
- Replaced Gson with Kotlin Serialization.
- Internal fixes and improvements.
- Added Klarna Express Checkout integration with a native button.
- Removed full variant build with card scan support and made default basic the single artifact.
- Fixed an issue when reading the API endpoint URLs from the config JSON file.
- Internal fixes and improvements.
- Fixed a rendering issue in Sign in with Klarna button.
- Fixed an input verification issue in Sign in with Klarna.
- Internal fixes and improvements.
- Updated consumer proguard rules to prevent issues with R8 full mode.
- Removed IO operations from app startup initializer.
- Fixed issue with cached configuration not being used prior to updates.
- Fixed Sign in with Klarna button layout issues.
- Added more internal lint checks for security improvements.
- Fixed an issue related to handling runtime permission requests.
- Added new client ID and endpoint support in On-Site Messaging (OSM).
- Internal fixes and improvements.
- Added support for Single sign-on using Custom Tabs.
- Added handling of minimized Custom Tabs.
- Updated UI for Sign in with Klarna button.
- Fixed Klarna badge padding in KlarnaOSMView.
- Removed Google Play redirects for missing external applications.
- Fixed live camera preview for ID scanning in SDK WebViews.
- Updated development and build JDK to Java 17 and AGP to version 8.
- Fixed an issue when a merchant's app name contains non-ASCII characters.
- Added Sign in with Klarna tokenization.
- Improved OSM text rendering process.
- Bug fixes and security improvements.
- Added countermeasures for intent redirection vulnerability.
- Added additional logs for Sign in with Klarna integrations.
- Removed enforced consent prompt in Sign in with Klarna integrations.
- Removed unused HTTP url from source.
- Removed remote webview debugging configuration.
- Fixed internal events.
- Enabled Kotlin Explicit API mode.
- Implemented minor internal improvements.
- Fixed the
ClassNotFoundExceptionissue regarding theKlarnaShareFileProviderclass.
- Added support for customizing the appearance of the On-Site Messaging (OSM) view.
- Fixed the "Learn more" text to not start from a new line in OSM view.
- Fixed encoding issue with non-UTF8 characters in a merchant's app name.
- Fixed class conflict issues due to obfuscation.
- Fixed conflicting FileProvider class manifest merger issue.
- Added NA and OC region support for Sign in with Klarna.
- Added native support for sharing/opening file contents.
- Card scanning results are wiped from memory after usage in the scanning module.
- Minor bug fixes and improvements.
- Bug fixes and stability improvements.
- Updated development and build JDK to JDK 11 and AGP to AGP 7.
- Resolved an issue preventing Sign in with Klarna integration when using a non-AppCompat theme.
- Deleted several internal APIs that were mistakenly exposed in earlier versions.
- Implemented several internal improvements and optimizations to enhance performance and reliability.
- Set the default variant of the SDK to basic.
- Implemented minor internal security fixes and improvements.
- Fixed javascript code execution vulnerability.
- Added URL validations for SDK WebViews.
- Improved Sign in with Klarna Redirects with a separate Activity.
- Updated SDK User-Agents.
- Improved Activity referencing for view operations.
- Improved SDK monitoring.
- Added system browser fallback support for Sign in with Klarna.
- Fixed On-site Messaging link click area.
- Changed default autoFinalize value to null for KlarnaPaymentView.
- Changed the
launchModeattribute forKlarnaCustomTabActivityfromsingleToptosingleTask - Minor internal improvements.
- Changed Sign in with Klarna button logo layout.
- Added support for loading indicator for Sign in with Klarna button.
- Improved performance by caching for Sign in with Klarna logins.
- Fixed text scaling issues for native buttons.
- Added support for skipping load calls in legacy tokenize flows.
- Added permission support for hybrid integrations.
- Card scanning results are wiped from memory after usage.
- KlarnaPaymentView is made visible also on authorize call.
- Fixed a proguard issue for fullscreen dialogs.
- Fixed proguard issues for public Sign in with Klarna classes.
- Fixed an issue with cancelling dialogs with the back button.
- Internal Browser now uses dialog fragments instead of an Activity.
- Fixed user cancel false-positives for Sign in with Klarna.
- Fixed proguard issues for internal Sign in with Klarna data classes.
- Fixed blank pages reporting error from background.
- Updated assets.
- Improved monitoring for application lifecycle.
- Added support for permission handling in Separate Fullscreen.
- Fixed redirect URI validation for Sign in With Klarna.
- Removed max width and height limits for KlarnaSignInButton.
- Fixed initial validation errors for KlarnaSignInButton.
- Internal optimization and improvements for Sign In With Klarna.
- Added Sign in with Klarna integration.
- Renamed internal assets of the SDK to fix conflicts with host applications.
- Fixed OkHttp header encoding issues.
- Optimized internal OkHttpClient usage.
- Added Klarna Express Button integration.
- Bug fixes and stability improvements.
- Use English locale in the SDK's internal string functions instead of device's/app's locale configuration.
- Updated SDK assets for Klarna Payments.
- Added support for Klarna Checkout in Standalone, Hybrid and WebView integrations.
- Added
KlarnaCheckoutViewextendsKlarnaSingleComponentandKlarnaStandaloneComponent.
- Improved handling of files and links.
- Removed network security config file.
- Improved debugging capabilities during development.
- Minor internal improvements.
- Fixed fullscreen height issue with quick authorize calls for One Klarna payment flows.
- Added
KlarnaComponent. General class that envelops any Klarna Component, regardless of integration. - Added
KlarnaMultiComponent. Components conforming to this interface protocol may render multiple products at once. - Added
KlarnaStandaloneComponent. For components that host and own their content. - Added
KlarnaSingleComponent. Components conforming to this protocol render a single Klarna product at a time. - Added
KlarnaEventHandlerinterface. Provides methods that will notify events happening to a product in a Klarna component. - Added
KlarnaStandaloneWebViewclass. - Added
KlarnaEnvironmentenum class. - Added
KlarnaProductenum class. - Added
KlarnaProductEventdata class. - Added
KlarnaOSMRegionenum class. - Added
KlarnaOSMThemeenum class. - Added public constructor to
KlarnaProductOptionsdata class.
KlarnaPaymentViewextendsKlarnaSingleComponentandKlarnaStandaloneComponent.
KlarnaHybridSDKextendsKlarnaMultiComponent.
KlarnaOSMViewextendsKlarnaStandaloneComponentandKlarnaSingleComponent.
KlarnaOSMEnvironmentis deprecated. UseKlarnaEnvironmentinstead.KlarnaOSMRegionis deprecated. UseKlarnaRegioninstead.KlarnaOSMThemeis deprecated. UseKlarnaThemeinstead.
KlarnaPostPurchaseSDKextendsKlarnaSingleComponentandKlarnaComponent.
KlarnaPostPurchaseEnvironmentis deprecated. UseKlarnaEnvironmentinstead.KlarnaPostPurchaseRegionis deprecated. UseKlarnaRegioninstead.
- KlarnaOSMView has been made an open class.
- Added Post Purchase standalone integration.
- Added checks for WebView availability on the device.
- Allow verbose logs in debug mode.
- Added support for opening Custom Tabs.
- Added support for "One Klarna" payment flow.
- Minor bug fixes and improvements.
- Updated application lifecycle implementation.
- Disabled some proguard optimizations.
- Changed proguard rules to apply obfuscation in consumer builds for some core parts.
- Updated consumer proguard rules to prevent detected obfuscation issues.
- Fixed an issue with opening external apps from internal browser.
- Fixed an issue caused by render process crash in WebViews.
- Fixed an issue while creating an instance of the SDK in background thread.
- Improved support for 3DSecure flows in new markets.
- Added "returnURL" to the
KlarnaPaymentViewconstructor parameters. Read more. - Deprecated
KlarnaHybridSDKCallbackand added separate callbacks for events and fullscreen transitions. Read more. - Internal optimization and improvements.
- Change hardware requirements to be optional.
- Improve transition animation to/from full screen content.
- Added support to open Klarna App in Android API level 30.
- Improve internal parts using random integers and UUIDs.
- Fix string resources with special characters.
- Replaced the default SDK variant to include all features just like the full variant. SDK variant supporting limited features with a smaller size will be the basic variant starting with this version.
- Permissions & WebRTC support.
- Improved fullscreen implementation.
- Reduce singletons for less memory usage.
- Improve internal error handling.
- Support JS Bridge caching.
- Internal optimization and improvements.
- Support for alternative resource endpoints
- Fullscreen keyboard improvements.
- Updated analytic events.
- Revert WebRTC support and fullscreen improvements.
⚠️ This version has some functionality issues: Please use a newer version of the SDK. Future releases with new features will be cautiously checked to prevent these warnings.- WebRTC support.
- Improved fullscreen implementation.
- Internal optimizations.
- Fix obfuscation errors.
- Internal optimizations.
- Updated SDK resources to prevent conflicts.
- Migrated dependencies to AndroidX.
- Internal optimizations and stability improvements.
- Overall stability improvements.
- Fixed an issue with Post Purchase in Hybrid integration.
- Overall stability improvements.
- Fix compile-time errors for some dependencies.
- Minor stability improvements and bug fixes.
- Overall stability improvements and bug fixes.
- Upgraded the target Android SDK version to 30
- Enabled the file access for web views on Android SDK version 30 and above
- Basic support for static On site marketing - beta version
- Added callback API for merchant events from Klarna components inside a WebView.
- Improved API for Java applications.
- Fixed an issue with base64 encoding.
- Improved thread safety for WebView implementations.
- Fixed an issue with internal browser URL parameter and navigation.
- Fixed an issue when the payment view was having blank white space.
- Full artifact with card scan.
- Default/basic artifact without card scan.
- Removed
READ_PHONE_STATEpermission usage and requirement.
- Fixed an issue with the
Contextinstance being used to move or create separate web views.
- Fixed an issue with showing an error message inside the web view without hiding it.
- Fix issue with showing fullscreen, primarily affecting post purchase widgets.
- Overall performance and error handling improvements.
- Fixed a crash with
JSONExceptioninWrapperManagerwhen initializing the SDK.
- Fixed a Proguard issue that would cause the payment view to not load.
- Internal optimizations.
- Enabled cookies for internal web views.
- Renamed internal assets to avoid merchant app conflicts.
- Improvements of internal web view identification towards Klarna components.
- Fix rare crash with
NullPointerExceptionwhen invalid message is sent to the SDK.
- Fix rare crash on certain Android devices with
JSONExceptioninConfigManagerwhen initializing the SDK. - Improved link handling in fullscreen web views.