Skip to content

Nami SDK Stable Releases

Dan Burcaw edited this page Jan 31, 2025 · 105 revisions

Changelog

3.2.9 (Jan 30, 2025)

Bug Fixes

  • Fix potential ANR during paywall closure

Enhancements

  • Allow selected sku conditions outside the product container

3.2.8 (Nov 7, 2024)

Enhancements

  • Disabling promos on paywall disables auto-detection and application of available offers

3.2.7 (Oct 27, 2024)

Bug Fixes

  • Make sure text does not get detected as a linkable phone number
  • Fix video stretching issue on Android 13 and below
  • Remove extract padding from certain components
  • Fix paywall scrolling on tablets in landscape mode

3.2.6 (Oct 10, 2024)

Bug Fixes

  • Fix issue where paywall can't be re-launched after return from background when launchMode is singleTask

3.2.5 (Oct 9, 2024)

Enhancements

  • Adjust handling of validate product group to utilize paywall capabilities

Bug Fixes

  • Fix issue with trial and promo offer eligibility detection for multi-page offers
  • Fix issue with unavailable sku detection on paywall
  • Fix issue with invalid sku detection on paywall
  • Fix issue with free offer display
  • Fix issue with invalid text wrapping on strikethrough text

3.2.4 (Sep 26, 2024)

Enhancements

  • Support vertical align bottom in product container
  • Support displaying phase 2 promotional pricing

Bug Fixes

  • Fix video background issue on Android 14 March release
  • Fix product info not appearing for 1 product group
  • Fix paywall closed on back press on firetv/androidtv
  • Suppress certain api calls when device isn't registered
  • Don't fetch amazon product if amazon disabled build
  • Don't skip product fetch if permitted by cached app config
  • Fix carousel indicator positioning
  • Fix video component not hiding

3.2.3.1 (Aug 30, 2024)

Bug Fixes

  • Bump targetSdkVersion to 34
  • Don't interrupt first run lifecycle when Google Play is unavailable
  • Make initial config data available even sooner in the lifecycle

3.2.3 (Aug 29, 2024)

Bug Fixes

  • Fix issue with default product not being set on first launch
  • Fix swipe back crash from web view
  • Fix invalid url crash
  • Fix crash when trying to report a purchase before a device id is set
  • Fix issue causing superfluous API requests for certain plans
  • Fix hiding condition components
  • Resolve issue with Amazon support when Nami is not responsible for IAP flow

Enhancements

  • use disableSingleGroup flag for more precise eligibility check

3.2.2 (Aug 8, 2024)

Bug Fixes

  • Fix crash with entitlements related to dependency update
  • Fix text list item not updating on Lionfish
  • Fix icons not rendering as expected
  • Fix full screen background image problem
  • Fix content fill color not filling entire screen
  • Fix collapse component overlap issue
  • Fix inconsistent behavior when setting product badge
  • Fix text alignment issue when supportsRtl is false

Enhancements

  • Support multiple responsive grids
  • Support dynamic container fill color
  • Support side loading products post paywall raise
  • Support conditionals for device orientation

3.2.1 (Jul 24, 2024)

Breaking Changes

  • Adopt Google Play Billing 7.0.0
  • Bump Android compile sdk to 34
  • Bump Kotlin dependency to 1.8.20

New Features

  • Support responsive grid component
  • Support HLS video
  • Support advanced video features

Bug Fixes

  • Fix free trial duration not showing up on Amazon
  • Fix issue with product text floating left
  • Fix issue with or conditional check
  • Fix issue with launch context item not always being applied between launches
  • Fix issue with marketplace country reporting
  • Fix certain images and list in collapse component not redenering
  • Fix wrapper color issue
  • Fix background video resizing
  • Fix issue with video playing in background
  • Fix amazon conversion reporting in paywalls only
  • Fix issue with images rendering too small

Enhancements

  • Support operating in paywalls-only mode on Amazon
  • Support conditional based on product entitlement
  • Improve collapse component behavior
  • Support for horizontal items in responsive grid
  • Support for hidden components

3.2.0 (Jun 5, 2024)

New Features

  • Support for the all-new Paywall Creator

3.1.32 (Feb 29, 2024)

Bug Fixes

  • Fix product height handing on certain templates
  • Improve robustness of over-the-air font installation to account

3.1.31 (Feb 19, 2024)

Bug Fixes

  • Fix issue with background font downloading which could cause an unhandled exception

Enhancements

  • Support for dynamic purchase buttons

3.1.30 (Feb 5, 2024)

Version bump to align with other platforms.

Bug Fixes

  • Fix background crash when paywall was on screen and system operating in destroy activity or constrained memory environment.

v3.1.24 (Jan 9, 2024)

Bug Fixes

  • Fix issue with invalid sku detection on paywalls with subscriptions and one-time purchases

Enhancements

  • Add sku.pricePerMonthRounded and pricePerWeekRounded smart text variables

v3.1.23 (Dec 28, 2023)

Enhancements

  • Add a version of NamiPaywallManager.buySkuCancel that accepts the paywall activity

v3.1.22 (Dec 26, 2023)

Enhancements

  • Add NamiPaywallManager.dismiss(paywallActivity: Activity, completionHandler: NamiDismissHandler?)
  • Enhance how initial config files are used to improve fallback scenarios
  • Enhance how paywall data is processed

Bugfixes

  • Fix alignment for carousel slide
  • Fix text alignment issue on certain templates
  • Fix stacked card image issue
  • Fix error message state when Google Play disconnected
  • Fix IllegalStateException related to exoplayer cache

v3.1.21 (Dec 5, 2023)

Enhancements

  • Improve Nami.configure to support runtime reconfiguration
  • Support for runtime language switching for select plans
  • Support for product error states on select paywall templates
  • Support for sku.pricePerWeek smart text
  • Improved support for Ventura paywall template
  • Support portrait mode for tablets

Bugfixes

  • Resolve an issue with carousel load
  • Fix issue with back button interaction when paywall is running on top of React Native

v3.1.20 (Nov 16, 2023)

Bugfixes

  • Resolve a bug related to invalid product groups and paywall eligibility states

v3.1.19 (Nov 13, 2023)

Version bump.

v3.1.18 (Nov 10, 2023)

Bug Fixes

  • Resolve an issue with eligibility detection when multi-product groups are in use

Enhancements

  • Support for Ventura template
  • Simplify NamiPurchaseSuccess for paywalls-only plans
  • Improve eligibility detection for supported paywalls, including when product groups are passed into PaywallLaunchContext

v3.1.17 (Nov 1, 2023)

Bug Fixes

  • Fix indexOutOfBounds crash related to downloadable fonts
  • Resolves an issue where subscription and IAP products couldn't both be on the same paywall

Enhancements

  • Support for ${sku.pricePerDay} smart text for Google Play and Amazon Appstore

v3.1.16 (Oct 11, 2023)

Enhancements

  • If an invalid promo ID is passed from a paywall, pass null through the various paywall callbacks for promoId

Bug Fixes

  • Fix issue where promo id wasn't coming through the paywall action handler events

v3.1.15 (Oct 3, 2023)

Bug Fixes

  • Fix issue with entitlement activation on Amazon Appstore in production builds
  • Fix purchase environment reporting for Google Play builds

v3.1.14 (Sep 28, 2023)

Bug Fixes

  • Don't try to handle purchases on Amazon IAP for paywalls-only plans
  • Include Amazon IAP proguard rules
  • Keep a flavor of Nami.configure that doesn't accept a callback handler

v3.1.13 (Sep 26, 2023)

Bug Fixes

  • Guard NamiPaywallManager.isPaywallOpen if SDK has not been initialized

Enhancements

  • Provide an optional callback when Nami.configure is complete
  • Only enable ML capabilities for accounts that are capable

v3.1.12 (Sep 24, 2023)

Bug Fixes

  • Don't crash if there are both One Time Purchase and Subscriptions products setup in the Control Center.

Enhancements

  • Added NamiPaywallManager.isPaywallOpen to find out if a paywall is currently on screen

v3.1.11 (Sep 22, 2023)

Changelog

Enhancements

  • If and external identifier has been passed to Nami via NamiCustomerManager.login, Google Play Billing so it will be included on the purchase record in obfuscatedExternalProfileId and obfuscatedExternalAccountId

Bug Fixes

  • Fix SDK crash if calling NamiCampaignManager functions isCampaignAvailable, allCampaigns before SDK is initialized.
  • Fix SDK crash if calling NamiCustomerManager functions journeyState, loggedInId, getCustomerAttribute, clearCustomerAttribute, clearAllCustomerAttributes, setAnonymousMode, anonymousModeCapability before SDK is initialized.

v3.1.10 (Sep 20, 2023)

Changelog

Bug Fixes

  • Adjust proguard rules to resolve a crash
  • Refresh active entitlement upon login or logout for plans with purchase management
  • Update purchase history from Google Play more often to ensure cross-grade flow isn't engaged after a subscription recently expires

Maintenance

  • Bump targetSdk and compileSdk to 33
  • Improve back button handling to used recommended approach for modern Android

v3.1.9 (Sep 13, 2023)

Changelog

Bug Fixes

  • Resolve issue where in-app re-subscribe resulted in Google Play error about "Something went wrong..."
  • Suppress end-user text on paywalls if it contains unsubstituted replacement tokens
  • Fix an issue where certain conditional paywall traits where not applied in minified apps.
  • Fix an issue where NamiCustomerManager.getCustomerAttribute would not return a value even if the app platform was correctly entitled.

v3.1.8 (Sep 12, 2023)

Changelog

Enhancements

  • Expose a method for creating NamiSKU objects to be used by cross-plaform SDKs (React Native, Flutter, etc.)

v3.1.7 (Sep 6, 2023)

Changelog

Bug Fixes

  • Generate provisional entitlement for Amazon Appstore purchases

Enhancements

  • Make sure provisional entitlement is created by the time the PURCHASE_SUCCESS action fires

v3.1.6 (Sep 5, 2023)

Changelog

Bugfix

  • Fix issue with provisional entitlements expiring immediately unless TTL value was provided in through Nami.configure
  • Fix issue preventing item in a horizontal container from rendering if it didn't include a height
  • Fix issue preventing drop shadows from appearing on container and button component

Enhancements

  • Improve the downloadable font caching workflow.

v3.1.5 (Aug 29, 2023)

Changelog

Bugfix

  • Rename to NamiPaywallManager.buySkuCancelled to NamiPaywallManager.buySkuCancel to align other other platforms.

Maintenance

  • Use Amazon version of Exoplayer for Amazon SDK build.

v3.1.4 (Aug 28, 2023)

Changelog

Enhancements

  • Modify drop shadow behavior to match Nami Apple SDK
  • Set a shorter provisional entitlement TTL (3 minutes) when purchase environment is sandbox
  • Make provisional entitlement TTL configurable through optional Nami.configure value provisionalGrantTTL
  • Allow the provisional grants to be cleared manually via a NamiEntitlementManager.clearProvisionalEntitlementGrants
  • Add loading spinner on purchase buttons. When handling your own purchase management, the spinner are disabled when the SDK received NamiPaywallManager.buySkuComplete or NamiPaywallManager.buySkuCancelled calls.

Bugfix

  • Fix a crash in release builds related to provisional entitlement caching

Chore

  • Bump Exoplayer version to 2.18.1

v3.1.3 (Aug 23, 2023)

Changelog

New Features

  • Support for downloadable fonts
  • Support for focus-enabled table component

Bug Fixes

  • Fix race condition when transmitting Amazon Appstore marketplace data needed to conduct purchase validation

Enhancements

  • Aesthetic improvements to paywall launch loading indicator
  • Issue temporary entitlement grants for new purchases so NamiEntitlementManager.active and NamiEntitlementManager.isEntitlementActive return the expected answer before the server-side validation step has completed
  • Cache fetched campaign and paywall data only when both are retrieved successfully
  • Return true from NamiCampaignManager.isCampaignAvailable when both the campaign and its paywall data is available to avoid a situation where the campaign is available so we return true, but the needed paywall data is not so NamiCampaignManager.launch fails.
  • Add skus on NamiPaywallEvent representing the products being shown on the paywall when such an event fires

Note on changes to NamiEntitlementManager

This release changes how NamiEntitlementManager.active gets its data. It now returns a provisional entitlement grant immediately after purchase, while waiting for server validation. The provisional grant has a TTL of 24 hours. We're going to refine this behavior in future SDK updates to:

  • Use a shorter TTL for provisional grants issued through sandbox purchases
  • Allow the provisional grant TTL to be configurable through optional Nami.configure parameter
  • Allow the provisional grants to be cleared manually via a NamiEntitlementManager.clearProvisionalEntitlementGrants

In the mean time, if you are testing purchases and calling NamiEntitlementManager.active on this release, perform a clean re-install between purchase tests since a provision grant may still be valid (for 24 hours) even when an accelerated sandbox purchase has expired.

v3.1.2 (Aug 15, 2023)

Changelog

Bug Fixes

  • Improve product loading on Amazon Appstore
  • Resolve duplicate NAMI_PURCHASE_SUCCESS after purchase success
  • Resolve missing NAMI_CLOSE_PAYWALL after purchase success
  • Resolve issue with badges on top of product buttons
  • Resolve issue with fill image border radius with drop shadow
  • Resolve issue with customer personalization tokens

v3.1.1 (Aug 3, 2023)

Changelog

Enhancements

  • Add template parameters for a paywall loading screen

Bug Fixes

  • Resolved crash on Amazon Appstore eligibility check
  • Resolved Kotlin reflection issue which could crash when using R8 to minify
  • Resolved a crash if NamiCustomerManager.deviceId was called too early in the SDK lifecycle
  • Resolved product segment picker not honoring default segment
  • Resolved issue with product text or buttons not showing on certain templates
  • Resolved issue with list alignment on certain tablet templates
  • Resolved Amazon Appstore purchase issue where certain artifacts weren't sent back to Nami servers
  • Resolved Amazon Appstore issue where paywall may launch again following a successful purchase

v3.1.0 (Jul 27, 2023)

Changelog

Breaking Changes

  • NamiCampaignManager.launch paywallActionHandler not returns a NamiPaywallEvent object instead of long list of parameters

New Features

  • Support for multi-page paywall templates
  • Support for animated product toggle component
  • Select paywall templates now support automatic eligibility detection for free trials, intro offers, and promotional offers

Enhancements

  • Support image alignment

Bug Fixes

  • Open legal links via external browser

Maintenance

  • Update Google Play Billing dependency to 5.1.0
  • Internal improvements and enhancements

v3.0.24 (Jul 19, 2023)

Changelog

Features

  • Support for new and improve product toggle component for support paywall templates

Enhancements

  • Play Billing: Remove Amazon Appstore dependency from Google Play build flavor
  • Amazon Appstore: Support new offer eligibility options

Bugfixes

  • Fix layout issue with list component

v3.0.23 (Jul 17, 2023)

Changelog

Enhancements

  • Improve API interactions on first run
  • Improve focus state handling on Android TV/ Fire TV
  • Modify behavior of paywall restore action to do be better aligned for platforms and plans

v3.0.22 (Jul 11, 2023)

Changelog

Bugfix

  • Fix a crash when NamiCustoerManager.isLoggedIn was called too early in the lifecycle.
  • Fix an issue with image display on certain TV paywall templates

v3.0.21 (Jul 10, 2023)

Changelog

Bugfix

  • Fix an issue with impression reporting
  • Fix an issue with focus text color not applying to buttons

Enhancement

  • Support version of NamiCampaignManager.isAvailableCampaign that accepts a Uri for deep link campaigns
  • Launch performance improvement on TV devices

v3.0.20 (Jun 29, 2023)

Changelog

Enhancement

  • Support version of NamiCampaignManager.isAvailableCampaign that accepts a Uri for deep link campaigns

v3.0.19 (Jun 29, 2023)

Changelog

Bugfixes

  • Resolve issue where products weren't always loading from a launch quickly after app load

v3.0.18 (Jun 27, 2023)

Changelog

New Features

  • Support for anonymous mode - advanced use case

Enhancements

  • Support setting legal link font color
  • Support link processing when using custom fonts
  • Filter campaigns by device form factor

Bugfixes

  • Fix issue with transaction reporting
  • Fix issue with tablet paywall not presenting in landscape
  • Fix issue where product data didn't always update on the paywall

v3.0.17 (Jun 19, 2023)

Changelog

New Features

  • Support for upcoming deep linking campaigns

Enhancements

  • Additional metadata included in paywallActionHandler callbacks
  • Support for dynamic sign-in control on supported templates
  • Support for custom accessibility hint for paywall product buttons

Bugfix

  • Fix issue with loading app config from initial configuration files
  • Fix issue with trailing slash when specifying a custom api hostname

3.0.16 (Jun 13, 2023)

Bugfixes

  • Resolve corner radius and text position for seagull template

3.0.15 (Jun 12, 2023)

Bugfixes

  • Modify proguard rules to avoid conflict with other obfuscated libraries

3.0.14 (Jun 12, 2023)

New Features

  • Support for whitelisting product groups at launch for supported multi-product group paywall templates
  • Support for passing custom K/V attributes at launch for supported advanced paywall templates

Bugfixes

  • Fix vertical container height issue impacting brighton v6.1

3.0.13 (Jun 7, 2023)

Enhancements

  • Support paywall templates with multiple product containers
  • Apply dynamic spacing between bullet character and text in list
  • Honor style traits at a product sku level
  • Support Android compileSdk version 32

Bugfixes

  • Resolve inconsistent spacing issues vs. Apple
  • Improve width handling in certain paywall template product containers

3.0.12 (May 31, 2023)

Enhancements

  • Add support for drop shadows in supporting paywall templates

Bugfixes

  • Expose public interfaces for NamiCustomerManager methods setCustomerAttribute, getCustomerAttribute, clearCustomerAttribute `clearCustomerAttributes,

3.0.11 (May 29, 2023)

Enhancements

  • Add NamiPaywallManager.dismiss facilitate closing the paywall

Bugfixes

  • Always allow NamiPaywallManager.registerBuySkuManager to be registered

3.0.10 (May 25, 2023)

Enhancements

  • Support strikethrough on paywall text elements
  • Support RGBA color formats
  • Other internal improvements

3.0.9 (May 10, 2023)

New Features

  • Link/unlink a device to a Customer Data Platform using NamiCustomerManager.setCustomerDataPlatformId and NamiCustomerManager.clearCustomerDataPlatformId. Add routing of success/error through NamiAccountStateHandler callback.

Enhancements

  • Include campaign id, campaign label (if available), and paywall id in PaywallActionHandler events Internal improvements to paywall template color handling
  • Add form factors to be used by campaign targeting

v3.0.8 (April 11, 2023)

Changelog

Enhancements

  • Support strikethrough text decoration
  • Support additional icons
  • Add generic flavor of NamiPaywallManager.buySkuComplete method to support cross-platform bridge SDKs

Bug Fixes

  • Use purchase timestamp from Google Play in NamiPurchase objects passed back in purchase changed handlers
  • Fix product text alignment on Beluga template

v3.0.7 (March 3, 2023)

Changelog

New Features

  • Support for paywall personalization

Enhancements

  • Support for upcoming paywall templates

Bug Fixes

  • Fix to ensure LaunchCampaignResult callback fires
  • Fix for close button font size not being honored
  • Fix for icon sitting too close to edge of product button
  • For for star icon not being available to paywall templates
  • Fix for exception in Amazon IAP Billing when no skus are on the paywall
  • Update paywall data when NamiCampaignManager.refresh is called
  • Resolve issues with rendering for Honest Trial paywall template

v3.0.6 (February 15, 2023)

Changelog

New Features

  • Added NamiCampaignManager.allCampaigns to get the list of available NamiCampaign
  • Added NamiCampaignManager.registerAvailableCampaignsHandler which returns a list of available Nami campaigns when updates are available.
  • Added NamiCampaignManager.isCampaignAvailable to check if a campaign is available
  • Added NamiCampaignManager.refresh to request a fetch of the latest live campaigns for the device from the Nami backend

Enhancements

  • Pass a full NamiSKU through the NamiCampaignManager.launch paywall action callbacks and NamiPurchase objects coming from NamiPurchaseManager. registerPurchasesChangedHandler
  • Support more Smart Text options on Amazon Appstore
  • Discovery of historical purchases on Amazon Appstore

Bug Fixes

  • Ensure NAMI_PURCHASE_SELECTED_SKU passes through a NamiSKU
  • Resolve rare issue where product-button Smart Text was not being substituted on paywall open

v3.0.5 (February 3, 2023)

New Features

Bug Fixes

  • Ensure images fit better on some paywall designs

Enhancements

  • Support minimum API version 22
  • Improve support for paywall templates with custom fonts
  • Improved support for long legal text

v3.0.4 (January 17, 2023)

New Features

  • Support for Dark Mode in compatible paywall templates

Bug Fixes

  • Fix slide text font size not being honored on paywalls with carousel component
  • Fix to improve PNG image loading for paywalls with a carousel component

Enhancements

  • Internal improvements for future paywall templates

v3.0.3 (January 3, 2023)

Bug Fixes

  • Fix issue selecting default sku no-code paywalls with multiple product groups

v3.0.2 (December 7, 2022)

Bug Fixes

  • Resolve localization issue for sku durationInMonths and periodInMonths variables

v3.0.1 (December 7, 2022)

New Features

  • Introduce Carousel component for supported paywall templates

Enhancements

  • Improve focus state on living room paywalls
  • Provide localizations for Smart Text sku duration and period variables in 48 languages

Bug Fixes

  • Resolve first run crash for Linked Paywalls launched before products have finished fetch

v3.0.0 (Nov 22, 2022)

Changelog

New Features

  • Support for certain branded customer templates
  • Advanced use case: support for overriding device language with a NamiLanguageCode
  • Added LaunchCampaignResult.PurchaseChanged to NamiCampaignManager.launch result callback to surface changes purchase events occurring the launch lifecycle.
  • Added additional paywallActionCallback to NamiCampaignManager.launch to allow the monitoring of the user's paywall interactions (see: NamiPaywallAction) as they occur
  • Added NamiPaywallManager.registerCloseHandler to allow override of paywall close behavior when implemented
  • Support for paywall templates with product selection that is separated from the buy action
  • Added a new paywall Smart Text variable: priceDifferenceFromSku
  • Improved support for customers bringing their own Play Billing implementation
  • Lower Android minimum SDK version to 25. See compatibility guide for details.
  • New paywall templates: Mantis, Venice
  • Added a new Smart Text variable: percentagePriceDifferenceFromSku
  • Added NamiCustomerManager.registerAccountStateHandler to make it easier to respond to login and logout calls. See SDK Reference for details.
  • Initial support for paywalls with more than one group of products
  • Initial support for Android TV
  • Initial support for 3-product paywall template (codename: starfish)
  • Add new Smart Text variables: pricePerMonth, durationInMonths, periodInMonths, periodNumberInMonths (see more: https://docs.namiml.com/docs/paywall-smart-text)
  • Support for paywall templates (codenames: penguin, pacific, trident)
  • Support for next-generation campaigns supporting paywall a/b testing
  • Simple, yet more powerful mechanism to present paywalls
  • SDK usability improvements including easier to understand interfaces
  • Updated internal API calls to latest spec for improved performance and robustness
  • Improved NamiCampaignManager and NamiPaywallManager for new style campaigns and paywalls
  • Add NamiEntitlementManager.refresh to get latest entitlement state from Nami servers

Breaking Changes

  • Renamed NamiEntitlementsManager.registerChangeListener to NamiEntitlementsManager.registerActiveEntitlementsHandler
  • Renamed NamiAnalyticsSupport.registerAnalyticsListener to NamiAnalyticsSupport.registerAnalyticsHandler
  • Renamed NamiCustomerManager.registerCustomerJourneyChangeListener to NamiCustomerManager.registerJourneyStateHandler
  • Renamed NamiPurchaseManager.registerPurchasesChangedListener to NamiPurchaseManager.registerPurchasesChangedHandler
  • Remove NamiPaywallManager.registerApplicationAutoRaisePaywallBlocker
  • Paywalls are now raised using NamiCampaignManager
    • NamiPaywall.raisePaywall replaced by NamiCampaignManager.launch
  • Simplified linking device to an external account via external ID
    • Nami.setExternalIdentifier replaced by NamiCustomerManager.login
    • Nami.clearExternalIdentifier replaced by NamiCustomerManager.logout
    • Nami.getExternalIdentifier replaced by NamiCustomerManager.loggedInId
    • Added NamiCustomerManager.isLoggedIn
    • Removed NamiExternalIdentifierType
  • Updated several interfaces for clarity
    • Renamed NamiEntitlementManager.registerEntitlementChangeListener to NamiEntitlementManager.registerChangeHandler
    • Renamed NamiPaywallManager.registerSignInListener to NamiPaywallManager.registerSignInHandler
    • Renamed NamiPaywallManager.registerPaywallRaiseListener to NamiPaywallManager.renderCustomUiHandler`
  • Ability to set untrusted entitlements moving to backend API
    • Removed NamiEntitlmentManager.setEntitlements
    • Removed NamiEntitlmentManager.getEntitlements
    • Removed NamiEntitlmentManager.clearEntitlements
    • Removed NamiPlatformType

Enhancements

  • Track Android TV back button actions through campaign launch action
  • Support for focus states on living room paywalls
  • Add additional symbols for use within paywall templates
  • Support changing symbol color on templates that support them
  • UI improvements for paywall templates with horizontal products
  • Further improvements to support for Nami cross-platform SDKs
  • Additional enhancements to support for upcoming paywall templates
  • Improved support for Nami cross-platform SDKs (e.g. Flutter, React Native, Xamarin)
  • Add initial support for upcoming paywall templates
  • Provide better error message in logs when campaign launch fails
  • Adjust template padding behavior
  • Add gradient color support
  • Improve upgrade/downgrade handling for apps with tiers of service
  • Add additional debug level logging during upgrade/downgrade scenarios
  • Improved support for apps with a large number of SKUs
  • Improved support for paywall templates (codenames: penguin, pacific, trident)
  • Additional logging if the NamiPurchaseCompleteHandler callback can't be invoked
  • Add NamiPurchase object to NamiPurchaseCompleteResult
  • Add Play Billing purchase token to NamiPurchase
  • Surface paywall sku entitlement reference for linked paywall
  • Paywall impressions, session, and transaction events upgraded to V3 spec; will now show up in Control Center > Developer
  • Updated Basic sample app to include Refresh Entitlements button
  • Improved log message when a campaign with linked paywall is launched, but NamiPaywallManager.renderCustomUiHandler is not implemented

Bugfixes

  • Improved robustness of gathering required Google Play product details before paywall display
  • Removed a background service responsible for some crashes
  • Improved paywall display behavior on Android TV
  • Fixed calculation for Smart Text variable priceDifferenceFromSku
  • Fix bug that prevented past purchase validation for products no longer present on paywalls
  • Fix another crash related to a SDK service that attempts to start when app is in background
  • Fix crash due to unhandled exception for API paginated requests
  • Fix crash related to a SDK service that attempts to start when app is in background
  • For templates supporting gradients, correct gradient direction
  • Improve feature badge rendering on trident template
  • Improve product button rendering on starfish template
  • Add missing product subtext on starfish template
  • Resolve missing impression and transaction events
  • Fixed crash in background service when SDK not initialized
  • Fixed NamiEntitlementsManager.registerActiveEntitlementsHandler callback not firing
  • Fixed NamiCustomerManager.registerJourneyStateHandler callback not firing
  • Better error handling for incorrect App Platform ID
  • Gracefully handle unknown (to the SDK) paywall types

Maintenance

  • Change Basic sample app to minimum SDK version 25
  • Fix UI thread issue in Java sample code
  • Rename NamiPaywallRaiseListener to NamiPaywallDataProvider to align with V3 spec
  • Update Nami configure function parameter names to align with V3 spec
  • Removed dead code related to V2 api spec
  • Update sample apps to use new interfaces
  • Migrate core API requests to Nami V3 API spec
  • Update maven publish location to https://packages.namiml.com/NamiSDK/Android/
  • Dependency update for building on M1 Macs
  • Parse backend data for next-gen paywalls
  • Bring Jetpack Compose related dependencies into the project
  • Bump Kotlin version to 1.6.10
  • Bump R8 version to 3.3.28 to resolve minify issues

v2.0.2 (December 14, 2022)

Changelog

  • Add optional completion handler to setExternalIdentifier and clearExternalIdentifier

v2.0.1 (July 24, 2022)

Changelog

Our 2.0.1 release contains a bug fix for a crash observed on some devices.

Bugfixes

  • Guard against crash in session end detection when SDK is not initialized

v2.0.0 (March 4, 2022)

Changelog

Our 2.0.0 release contains several big updates including:

  • Localization of paywalls for multi-language support
  • Support for upgrades and downgrades of subscription purchases
  • One time purchase support for both consumables and non-consumables
  • Various other updates noted below

Breaking Changes

  • Minimum Android SDK changed from 21 to 26 (Android 8.0)
  • Breaking changes if you use linked paywall:
    • NamiPaywall.formattedSkus has been replaced with NamiPaywall.namiSkus
    • NamiPaywall.privacyPolicy and NamiPaywall.tosLink has been removed, and move to one deeper object NamiPaywall.legalCitations. privacyPolicy is now privacyText
    • NamiPaywall.getFooterText() method has been renamed and moved to extension method of LegalCitations. It's now called getLinkifiedLegalCitations
    • Display options such as signInControl, restoreControl and allowClosing,useBottomOverlay has been moved from NamiPaywall to one deeper object NamiPaywall.displayOptions
  • NamiAnalyticsKeys.CAMPAIGN_TYPE has been removed

New Features

  • Added support for one-time purchases
  • Execute a SKU change for an upgrade or downgrade any time a new purchase is made where the granted entitlements are an exact match to an already active purchase
  • Added customer journey state change callback, registerCustomerJourneyChangedListener
  • New enum for supported language codes NamiLanguageCode
  • NamiConfiguration now has a new member namiLanguageCode which is nullable and of type enum NamiLanguageCode. If set, fetches paywalls in the specified language
  • NamiPaywall now has a new member localeConfig of type LocaleConfig, which contains data for localizing buttons on the paywall UI
  • Added support for paywall styles for SKU sub display text. Includes new style variables for linked paywalls sku_sub_display_text_color, sku_sub_display_text_shadow_radius, sku_sub_display_text_shadow_color

Enhancements

  • Acknowledge pending purchases on every app resume
  • Accessibility: Improved TalkBack capabilities for text to speech on Nami paywalls

Bugfixes

  • Fixed issue where there could be multiple connections to Play Billing, resulting in duplicated API calls to Nami servers. There was no impact to customer apps from the extra calls.

Maintenance

  • Upgraded to Google Play Billing 4.0.0
  • Upgraded various dependency versions

v1.2.1 (June 2, 2021)

Changelog

Bugfixes

  • In some situations, paywall smart text processing could cause a crash from a DateParseException
  • success and failure objects in preparePaywallForDisplay were obfuscated

v1.2.0 (May 20, 2021)

Note this version has been removed from Maven, please use v1.2.1

Changelog

Added

  • Support for Paywall Smart Text in paywalls
  • NamiSKU now has three new fields => name, displayText and displaySubText
  • New methods with signature NamiPaywallManager.processSmartText(). This methods injects proper values from NamiSKU or NamiSKUs in provided smart text and returns a final processed text. For example, ${sku.price} would be converted to $1.99 while taking the price value from given sku.
  • Proper error handling and logging for purchase flow related errors
  • new version of preparePaywallForDisplay with single argument resultcallback
  • added PLAY_BILLING_NOT_AVAILABLE error type to PreparePaywallError returned by preparePaywallForDisplay if the SDK is not connected to Google Play Billing (and would not be able to fetch SKU data or process a purchase)

Deprecated

  • preparePaywallForDisplay method that has a callback with arguments success and error

Improvements

  • Redesigned parts of API interface to be easier to use from Java

v1.1.1 (March 11, 2021)

Changelog

Added

  • New method NamiPaywallManager.preparePaywallForDisplay() has been added to prepare paywall before raising it. NamiPaywallManager.raisePaywall() should ideally be called only after confirming a success from callback via this new method. This method helps you ensure that all data is available for the paywall before displaying it
  • New enum PreparePaywallError which gets return via callback with NamiPaywallManager.preparePaywallForDisplay()

Changed

Non-breaking Changes

  • NamiPaywallManager.canRaisePaywall() has been deprecated. Please replace its usage with NamiPaywallManager.preparePaywallForDisplay()
  • Kotlin version updated to 1.4.31

v1.0.1 (February 23, 2021)

Changelog

Added

  • FormattedSku now provided skuId which is reference id of the SKU

Changed

Non-breaking Changes

  • Dependencies updated. Important ones are listed below,
    • Okhttp version updated to 4.9.0
    • Kotlin version updated to 1.4.30

v1.0.0 (February 9, 2021)

Changelog

Added

  • NamiPaywall has a two new attributes (members),
    • formattedSkus - List of FormattedSku objects which provides Skus and associated properties like featured. Note that order of the skus in list matches the order set in the Nami Control Center
    • useBottomOverlay - A boolean flag to denote whether paywall has enabled or disabled use of bottom overlay on paywall UI via Nami Control Center
  • NamiPaywallManager.raisePaywall(String, Activity) - New method to raise paywall via a particular Developer Paywall ID

Changed

Breaking Changes

  • NamiMLManager.coreAction(List<String>) method has been removed. Same method that takes single action String is still available

Improvements / Behavioural Changes

  • Nami's Paywall design has been revamped for better usability, performance and better usage of screen space
  • Nami's Paywall has been restricted to portrait mode only
  • Update Google Play Billing library to version 3.0.2

Demo apps

  • BasicLinked demo app has been updated with new paywall design just to showcase another idea of paywall UI building

v0.5.0 (November 19, 2020)

Changelog

Added

  • NamiPaywall has a new paramater styleData which provides PaywallStyleData object that contains styling data for particular paywall as configured on Nami Control Center
  • Version of NamiMLManager.enterCoreContent, NamiMLManager.exitCoreContent and NamiMLManager.coreAction methods which takes a single String instead of List
  • New helper method generateButtonLabelForPaywall added in NamiSKU to generate paywall button label. You may use this to display text on SKU buttons on a linked paywall
  • Support for custom paywall styling based on how it's defined on Nami Control Center. Note that this only applies to Nami type paywall.

Changed

Breaking Changes

  • Renamed callback registration methods and lambda inputs to follow a standard across the SDK
    • registerAnalyticsHandler --> registerAnalyticsListener
    • registerApplicationSignInProvider --> registerSignInListener
    • registerApplicationPaywallProvider --> registerPaywallRaiseListener
    • registerPurchasesChangedHandler --> registerPurchasesChangedListener
    • Related typealias renamed,
      • NamiSignInProvider --> NamiSignInListener
      • NamiAnalyticsCallback --> NamiAnalyticsListener
      • NamiPurchaseResponseCallback --> NamiPurchaseResponseListener
  • NamiSKU object has been overhauled, and it now contains reference of SkuDetails from Play Billing associated with given NamiSKU
  • NamiSKU is no longer a Parcelable object
  • NamiPurchaseManager.getSkuDetails() static method has been removed as now each NamiSKU contains related SkuDetails object
  • NamiPurchaseSource enum has been moved to com.namiml.paywall package and refactored to simply it.
  • NamiEntitlement has been refactored to make its properties immutable
  • SKUType enum renamed to NamiSKUType
  • SubscriptionPeriod enum has been made private

Improvements / Behavioural Changes

  • Entitlement state is now maintained properly so app can request and get active entitlements even in offline mode
  • registerPaywallRaiseListener now provides sorted list of NamiSKU according to their priority defined on Nami Control Center so if you've a linked paywall then you no longer need to sort the SKU before displaying them
  • NamiPurchaseResponseListener only gets invoked while user is in purchase flow

v0.4.0 (August 25, 2020)

Changelog

  • Improvement: NamiEntitlementChangeListener now only gets triggered when there is in fact a change of entitlement takes place.
  • Improvement: NamiPurchaseResponseCallback now only gets triggered while user is in the Google billing purchase flow.
  • Improvement: Documentation to clearly mention that NamiEntitlementChangeListener would return only active entitlements

v0.3.1 (August 20, 2020)

Changelog

  • Fix obfuscation issues related to NamiCustomerManager and CustomerJourneyState

v0.3.0 (August 19, 2020)

Changelog

  • Allow ability to know when user closes a blocking paywall.
    • NamiPaywallManager.didUserCloseBlockingNamiPaywall()
    • NamiPaywallManager.REQUEST_CODE_NAMI_PAYWALL
    • NamiPaywallManager.RESULT_CODE_NAMI_PAYWALL
  • Provide currentCustomerJourneyState via new NamiCustomerManager class
    • NamiCustomerManager.currentCustomerJourneyState()
  • Provide restore purchase functionality via Nami Paywall where user would be deep linked to Google Play app's subscription page

v0.2.0 (August 11, 2020)

Changelog

  • Updated AppCompat dependency to version 1.2.0
  • Updated Material Design dependency to version 1.2.0
  • Updated Google Play Billing dependency to version 3.0.0
  • SDK now supports Android 11 (API level 30)
  • Renamed some properties of NamiConfiguration and methods of NamiConfiguration.Builder (Breaking)
  • Changed groupId and artifactId of maven artifactory artifact
  • Renamed NamiSKU.product to NamiSKU.skuId (Breaking)
  • Made all resources from SDK private so calling app don't accidentally use them
Clone this wiki locally