Skip to content

Releases: superwall/Superwall-Android

2.0.0

19 Feb 22:24
Compare
Choose a tag to compare

Our 2.0.0 release brings some major and minor changes to both our API's and core features. For more information, please look at our migration docs

Enhancements

  • Adds PaywallBuilder class as an alternative to existing getPaywallView method. This provides a cleaner API and an ability to change purchase loading bar and shimmer view.
  • Ensure safety of static webview calls that are known to fail randomly due to Webview's internal issues
  • Adds purchase method to Superwall you can use to purchase products without having to resort on paywalls. To purchase a product you can pass it in one of the following objects:
    • Google Play's ProductDetails
    • Superwall's StoreProduct object
    • Or a string containing the product identifier, i.e. Superwall.instance.purchase("product_id:base_plan:offer")
  • Adds restorePurchases method to Superwall you can use to handle restoring purchases
  • Adds getProducts method to Superwall you can use to retrieve a list of ProductDetails given the product ID, i.e. i.e. Superwall.instance.purchase("product_id:base_plan:offer")
  • Adds support for observing purchases done outside of Superwall paywalls. You can now observe purchases done outside of Superwall paywalls by setting the shouldObservePurchases option to true and either:
    • Manually by calling Superwall.instance.observe(PurchasingObserverState) or utility methods Superwall.instance.observePurchaseStart/observePurchaseError/observePurchaseResult
    • Automatically by replacing launchBillingFlow with launchBillingFlowWithSuperwall. This will automatically observe purchases done outside of Superwall paywalls.
  • Adds consumer proguard rules to enable consumer minification
  • Superwall.instance now provides blocking or callback based version of multiple calls, suffixed with *Sync
  • Improves preloading performance and reduces impact on the main thread
  • Reduces minSDK to 22

Breaking Changes

  • SuperwallPaywallActivity and PaywallView have been moved into com.superwall.sdk.paywall.view package from com.superwall.sdk.paywall.vc package.
  • Removes PaywallComposable and Jetpack Compose support from the main SDK artifact in favor of Superwall-Compose module for Jetpack Compose support:
    • You can find it at com.superwall.sdk:superwall-compose:2.0.0-alpha
    • Usage remains the same as before, but now you need to include the superwall-compose module in your project.
  • Removed methods previously marked as Deprecated
  • SubscriptionStatus.Active now takes in a set of Entitlements, while Inactive and Active have been turned into objects.
  • Superwall.instance.register now uses placement instead of event as the argument name
  • preloadPaywalls now uses placementNames instead of eventNames as the argument name
  • PaywallPresentationHandler.onDismiss now has two arguments, PaywallInfo and PaywallResult
  • PaywallComposable now uses placement argument instead of event
  • TriggerResult.NoRuleMatch and TriggerResult.EventNotFound have been renamed to TriggerResult.NoAudienceMatch and TriggerResult.PlacementNotFound
  • PresentationResult.NoRuleMatch and PresentationResult.EventNotFound have been renamed to PresentationResult.NoAudienceMatch and PresentationResult.PlacementNotFound
  • SuperwallEvent has been renamed to SuperwallPlacement, belonging properties with eventName have been renamed to placementName
  • SuperwallEventInfo has been renamed to SuperwallPlacementInfo
  • ComputedPropertyRequest.eventName has been renamed to ComputedPropertyRequest.placementName
  • Superwall.instance.events has been renamed to Superwall.instance.placements
  • LogScope.events has been renamed to LogScope.placements
  • PaywallPresentationRequestStatusReason.EventNotFound has been renamed to PaywallPresentationRequestStatusReason.PlacementNotFound
  • PaywallSkippedReason.EventNotFound has been renamed to PaywallSkippedReason.PlacementNotFound
  • SuperwallDelegate.handleSuperwallEvent method has been renamed to SuperwallDelegate.handleSuperwallPlacement
  • Removed PurchaseResult.Restored

2.0.0-beta.5

18 Feb 12:45
Compare
Choose a tag to compare

Breaking changes

  • Superwall.instance.register now uses placement instead of event as the argument name
  • preloadPaywalls now uses placementNames instead of eventNames as the argument name
  • Superwall's PaywallPresentationHandler.onDismiss now has two arguments, PaywallInfo and PaywallResult
  • PaywallComposable now uses placement argument instead of event

2.0.0-beta.4

06 Feb 15:35
Compare
Choose a tag to compare

2.0.0-beta.4

Breaking changes

  • SuperwallEvents.entitlementStatusDidChange has been renamed to SuperwallEvents.subscriptionStatusDidChange
  • SuperwallDelegate.entitlementStatusDidChange has been renamed to SuperwallEvents.entitlementStatusDidChange
  • TriggerResult.NoRuleMatch and TriggerResult.EventNotFound have been renamed to TriggerResult.NoAudienceMatch and TriggerResult.PlacementNotFound
  • PresentationResult.NoRuleMatch and PresentationResult.EventNotFound have been renamed to PresentationResult.NoAudienceMatch and PresentationResult.PlacementNotFound

1.5.5

06 Feb 10:41
Compare
Choose a tag to compare

1.5.5

Fixes

  • Fixes potential distribution issues for variant selection in edge cases
  • Fixes potential memory leaks of paywall calling activity

2.0.0-beta.3

30 Jan 11:35
Compare
Choose a tag to compare

2.0.0-beta.3

Breaking changes

  • SuperwallEvent has been renamed to SuperwallPlacement, belonging properties with eventName have been renamed to placementName
  • SuperwallEventInfo has been renamed to SuperwallPlacementInfo
  • ComputedPropertyRequest.eventName has been renamed to ComputedPropertyRequest.placementName
  • Superwall.instance.events has been renamed to Superwall.instance.placements
  • LogScope.events has been renamed to LogScope.placements
  • PaywallPresentationRequestStatusReason.EventNotFound has been renamed to PaywallPresentationRequestStatusReason.PlacementNotFound
  • PaywallSkippedReason.EventNotFound has been renamed to PaywallSkippedReason.PlacementNotFound
  • SuperwallDelegate.handleSuperwallEvent method has been renamed to SuperwallDelegate.handleSuperwallPlacement

2.0.0-beta.2

28 Jan 17:14
Compare
Choose a tag to compare

2.0.0-beta.2

  • API Changes:
    • Migration of setEntitlementStatus to setSubscriptionStatus
    • Exposing Superwall.instance.entitlementsStatus
    • Migration of SuperwallDelegate.entitlementStatusDidChange to SuperwallDelegate.subscriptionStatusDidChange

1.5.4

23 Jan 16:14
Compare
Choose a tag to compare

1.5.4

Fixes

  • Fixes issue when a paywall would dismiss with ForNextPaywall but next paywall could not be shown due to triggers or limits. Now it resolves into the proper dismiss status.

1.5.3

21 Jan 13:54
Compare
Choose a tag to compare

1.5.3

Enhancements

  • Add purchaseToken to TransactionComplete

2.0.0-beta.1

14 Jan 02:55
Compare
Choose a tag to compare

2.0.0-beta.1

  • Add PaywallBuilder class as an alternative to existing getPaywallView method. This provides a cleaner API and an ability to change purchase loading bar and shimmer view
  • Add callback versions of new 2.0 methods
  • Ensure safety of static webview calls that are known to fail randomly due to Webview's internal issues

1.5.2

14 Jan 02:39
d327664
Compare
Choose a tag to compare

1.5.2

Fixes

  • Fix chromium crashes caused by race conditions in webview's implementation