Skip to content

Commit

Permalink
Adds templating of params and attributes on paywall open
Browse files Browse the repository at this point in the history
Also fixes tests and upgrades to alpha 10
  • Loading branch information
yusuftor committed Oct 24, 2023
1 parent 3356eef commit 810b93e
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 19 deletions.
2 changes: 1 addition & 1 deletion superwall/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ plugins {
}


version = "1.0.0-alpha09"
version = "1.0.0-alpha10"

android {
compileSdk = 33
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import com.superwall.sdk.models.triggers.TriggerRule
import com.superwall.sdk.models.triggers.VariantOption
import com.superwall.sdk.network.Network
import com.superwall.sdk.network.NetworkMock
import com.superwall.sdk.paywall.manager.PaywallManager
import com.superwall.sdk.storage.Storage
import com.superwall.sdk.storage.StorageMock
import kotlinx.coroutines.delay
Expand All @@ -26,9 +27,13 @@ import org.junit.Test
class ConfigManagerUnderTest(
private val storage: Storage,
private val network: Network,
private val paywallManager: PaywallManager,
private val factory: Factory,
) : ConfigManager(
storage = storage,
network = network,
paywallManager = paywallManager,
factory = factory
) {

suspend fun setConfig(config: Config) {
Expand All @@ -51,16 +56,16 @@ class ConfigManagerTests {
paywallId = "jkl"
)
val assignment = ConfirmableAssignment(experimentId = experimentId, variant = variant)
val dependencyContainer = DependencyContainer(context)
val dependencyContainer = DependencyContainer(context, null, null)
val network = NetworkMock(factory = dependencyContainer)
val storage = StorageMock(context = context)
val configManager = ConfigManager(
options = null,
// storeKitManager = dependencyContainer.storeKitManager,
storage = storage,
network = network,
// paywallManagerger = dependencyContainer.paywallManager,
// factory = dependencyContainer
paywallManager = dependencyContainer.paywallManager,
factory = dependencyContainer
)
configManager.confirmAssignment(assignment)

Expand All @@ -76,16 +81,16 @@ class ConfigManagerTests {
// get context
val context = InstrumentationRegistry.getInstrumentation().targetContext

val dependencyContainer = DependencyContainer(context)
val dependencyContainer = DependencyContainer(context, null, null)
val network = NetworkMock(factory = dependencyContainer)
val storage = StorageMock(context = context)
val configManager = ConfigManager(
options = null,
// storeKitManager = dependencyContainer.storeKitManager,
storage = storage,
network = network,
// paywallManager = dependencyContainer.paywallManager,
// factory = dependencyContainer
paywallManager = dependencyContainer.paywallManager,
factory = dependencyContainer
)

val job = launch {
Expand All @@ -109,15 +114,15 @@ class ConfigManagerTests {
// get context
val context = InstrumentationRegistry.getInstrumentation().targetContext

val dependencyContainer = DependencyContainer(context)
val dependencyContainer = DependencyContainer(context, null, null)
val network = NetworkMock(factory = dependencyContainer)
val storage = StorageMock(context = context)
val configManager = ConfigManagerUnderTest(
// storeKitManager = dependencyContainer.storeKitManager,
storage = storage,
network = network,
// paywallManager = dependencyContainer.paywallManager,
// factory = dependencyContainer
paywallManager = dependencyContainer.paywallManager,
factory = dependencyContainer
)
configManager.setConfig(
Config.stub().apply { this.triggers = emptySet() }
Expand All @@ -135,15 +140,15 @@ class ConfigManagerTests {
// get context
val context = InstrumentationRegistry.getInstrumentation().targetContext

val dependencyContainer = DependencyContainer(context)
val dependencyContainer = DependencyContainer(context, null, null)
val network = NetworkMock(factory = dependencyContainer)
val storage = StorageMock(context = context)
val configManager = ConfigManagerUnderTest(
// storeKitManager = dependencyContainer.storeKitManager,
storage = storage,
network = network,
// paywallManager = dependencyContainer.paywallManager,
// factory = dependencyContainer
paywallManager = dependencyContainer.paywallManager,
factory = dependencyContainer
)

val variantId = "variantId"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,11 @@ import com.superwall.sdk.BuildConfig
import com.superwall.sdk.Superwall
import com.superwall.sdk.dependencies.IdentityInfoFactory
import com.superwall.sdk.dependencies.LocaleIdentifierFactory
import com.superwall.sdk.misc.VersionHelper
import com.superwall.sdk.models.events.EventData
import com.superwall.sdk.paywall.vc.web_view.templating.models.DeviceTemplate
import com.superwall.sdk.storage.Storage
import java.text.SimpleDateFormat
import java.util.*
import com.superwall.sdk.misc.sdkVersion
import com.superwall.sdk.storage.LastPaywallView
import com.superwall.sdk.storage.TotalPaywallViews
import java.time.Duration
Expand Down Expand Up @@ -356,7 +354,7 @@ class DeviceHelper(
return output
}

suspend fun getTemplateDevice(): Map<String, Any> {
private suspend fun getTemplateDevice(): Map<String, Any> {
val identityInfo = factory.makeIdentityInfo()
val aliases = listOf(identityInfo.aliasId)

Expand Down Expand Up @@ -400,7 +398,6 @@ class DeviceHelper(
appBuildStringNumber = appBuildString.toInt()
)

val map = deviceTemplate.toDictionary()
return map
return deviceTemplate.toDictionary()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ import com.superwall.sdk.paywall.vc.Survey.SurveyPresentationResult
import com.superwall.sdk.paywall.vc.delegate.PaywallLoadingState
import com.superwall.sdk.paywall.vc.delegate.PaywallViewControllerDelegateAdapter
import com.superwall.sdk.paywall.vc.delegate.PaywallViewControllerEventDelegate
import com.superwall.sdk.paywall.vc.web_view.PaywallMessage
import com.superwall.sdk.paywall.vc.web_view.SWWebView
import com.superwall.sdk.paywall.vc.web_view.SWWebViewDelegate
import com.superwall.sdk.paywall.vc.web_view.messaging.PaywallMessageHandlerDelegate
Expand Down Expand Up @@ -264,6 +265,10 @@ class PaywallViewController(

Superwall.instance.dependencyContainer.delegateAdapter.willPresentPaywall(info)

if (loadingState is PaywallLoadingState.Ready) {
webView.messageHandler.handle(PaywallMessage.TemplateParamsAndUserAttributes)
}

presentationWillPrepare = false
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ interface SWWebViewDelegate : _SWWebViewDelegate, PaywallMessageHandlerDelegate
class SWWebView(
context: Context,
private val sessionEventsManager: SessionEventsManager,
private val messageHandler: PaywallMessageHandler
val messageHandler: PaywallMessageHandler
) : WebView(context) {
var delegate: SWWebViewDelegate? = null

Expand Down

0 comments on commit 810b93e

Please sign in to comment.