diff --git a/CHANGELOG.md b/CHANGELOG.md index 36d38114..3eaecc4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ The changelog for `Superwall`. Also see the [releases](https://github.com/superwall/Superwall-Android/releases) on GitHub. +## 1.2.6 + +### Fixes +- Fixes issue where the paywall would not show in some cases when using `minutes_since` +- Fixes issue with wrong URL being logged when a paywall fails to load + ## 1.2.5 ### Enhancements diff --git a/superwall/build.gradle.kts b/superwall/build.gradle.kts index b455a622..1114e28f 100644 --- a/superwall/build.gradle.kts +++ b/superwall/build.gradle.kts @@ -23,7 +23,7 @@ plugins { id("signing") } -version = "1.2.5" +version = "1.2.6" android { compileSdk = 34 diff --git a/superwall/src/androidTest/java/com/superwall/sdk/config/AssignmentsTest.kt b/superwall/src/androidTest/java/com/superwall/sdk/config/AssignmentsTest.kt index dfb3ae7f..eaf7c43b 100644 --- a/superwall/src/androidTest/java/com/superwall/sdk/config/AssignmentsTest.kt +++ b/superwall/src/androidTest/java/com/superwall/sdk/config/AssignmentsTest.kt @@ -1,6 +1,5 @@ package com.superwall.sdk.config -import Assignments import Given import Then import When diff --git a/superwall/src/androidTest/java/com/superwall/sdk/config/ConfigManagerInstrumentedTest.kt b/superwall/src/androidTest/java/com/superwall/sdk/config/ConfigManagerInstrumentedTest.kt index 022f9afc..2713a7e9 100644 --- a/superwall/src/androidTest/java/com/superwall/sdk/config/ConfigManagerInstrumentedTest.kt +++ b/superwall/src/androidTest/java/com/superwall/sdk/config/ConfigManagerInstrumentedTest.kt @@ -1,7 +1,6 @@ package com.superwall.sdk.config import And -import Assignments import Given import Then import When @@ -536,18 +535,18 @@ class ConfigManagerTests { coEvery { storage.write(any(), any()) } just Runs coEvery { storage.read(LatestGeoInfo) } returns GeoInfo.stub() coEvery { mockNetwork.getConfig(any()) } coAnswers { - delay(400) + delay(1200) Either.Success(newConfig) } coEvery { mockNetwork.getGeoInfo() } coAnswers { - delay(200) + delay(1200) Either.Success(GeoInfo.stub()) } coEvery { mockDeviceHelper.getGeoInfo() } coAnswers { - delay(200) + delay(1200) Either.Success(GeoInfo.stub()) } @@ -610,7 +609,7 @@ class ConfigManagerTests { mockNetwork.getGeoInfo() } returns Either.Failure(NetworkError.Unknown()) coEvery { mockNetwork.getConfig(any()) } coAnswers { - delay(500) + delay(1200) Either.Success(Config.stub().copy(buildId = "not")) } coEvery { mockDeviceHelper.getTemplateDevice() } returns emptyMap() @@ -796,13 +795,13 @@ class ConfigManagerTests { coEvery { mockNetwork.getConfig(any()) } coAnswers { async(Dispatchers.IO) { - delay(400) + delay(1200) }.await() Either.Success(newConfig) } coEvery { mockDeviceHelper.getGeoInfo() } coAnswers { async(Dispatchers.IO) { - delay(400) + delay(1200) }.await() Either.Success(newGeo) } diff --git a/superwall/src/androidTest/java/com/superwall/sdk/network/BaseHostServiceTest.kt b/superwall/src/androidTest/java/com/superwall/sdk/network/BaseHostServiceTest.kt index c97293d6..f2f30d26 100644 --- a/superwall/src/androidTest/java/com/superwall/sdk/network/BaseHostServiceTest.kt +++ b/superwall/src/androidTest/java/com/superwall/sdk/network/BaseHostServiceTest.kt @@ -1,6 +1,5 @@ package com.superwall.sdk.network -import BaseHostService import Given import Then import When diff --git a/superwall/src/androidTest/java/com/superwall/sdk/network/GeoServiceTest.kt b/superwall/src/androidTest/java/com/superwall/sdk/network/GeoServiceTest.kt index 04fc6304..8ee78ec7 100644 --- a/superwall/src/androidTest/java/com/superwall/sdk/network/GeoServiceTest.kt +++ b/superwall/src/androidTest/java/com/superwall/sdk/network/GeoServiceTest.kt @@ -1,6 +1,5 @@ package com.superwall.sdk.network -import GeoService import Given import Then import When diff --git a/superwall/src/androidTest/java/com/superwall/sdk/paywall/presentation/rule_logic/expression_evaluator/ExpressionEvaluatorInstrumentedTest.kt b/superwall/src/androidTest/java/com/superwall/sdk/paywall/presentation/rule_logic/expression_evaluator/ExpressionEvaluatorInstrumentedTest.kt index dd138c4b..bf6cc15f 100644 --- a/superwall/src/androidTest/java/com/superwall/sdk/paywall/presentation/rule_logic/expression_evaluator/ExpressionEvaluatorInstrumentedTest.kt +++ b/superwall/src/androidTest/java/com/superwall/sdk/paywall/presentation/rule_logic/expression_evaluator/ExpressionEvaluatorInstrumentedTest.kt @@ -1,9 +1,9 @@ package com.superwall.sdk.paywall.presentation.rule_logic.expression_evaluator -import ComputedPropertyRequest import androidx.javascriptengine.JavaScriptSandbox import androidx.test.platform.app.InstrumentationRegistry import com.superwall.sdk.dependencies.RuleAttributesFactory +import com.superwall.sdk.models.config.ComputedPropertyRequest import com.superwall.sdk.models.events.EventData import com.superwall.sdk.models.triggers.Experiment import com.superwall.sdk.models.triggers.MatchedItem diff --git a/superwall/src/main/java/com/superwall/sdk/config/Assignments.kt b/superwall/src/main/java/com/superwall/sdk/config/Assignments.kt index d742c3e5..da9924e8 100644 --- a/superwall/src/main/java/com/superwall/sdk/config/Assignments.kt +++ b/superwall/src/main/java/com/superwall/sdk/config/Assignments.kt @@ -1,4 +1,5 @@ -import com.superwall.sdk.config.ConfigLogic +package com.superwall.sdk.config + import com.superwall.sdk.misc.Either import com.superwall.sdk.misc.then import com.superwall.sdk.models.assignment.Assignment diff --git a/superwall/src/main/java/com/superwall/sdk/config/ConfigManager.kt b/superwall/src/main/java/com/superwall/sdk/config/ConfigManager.kt index 1be53f7d..12f9df7d 100644 --- a/superwall/src/main/java/com/superwall/sdk/config/ConfigManager.kt +++ b/superwall/src/main/java/com/superwall/sdk/config/ConfigManager.kt @@ -1,8 +1,6 @@ package com.superwall.sdk.config -import Assignments import android.content.Context -import awaitUntilNetworkExists import com.superwall.sdk.analytics.internal.trackable.InternalSuperwallEvent import com.superwall.sdk.config.models.ConfigState import com.superwall.sdk.config.models.getConfig @@ -26,6 +24,7 @@ import com.superwall.sdk.models.triggers.ExperimentID import com.superwall.sdk.models.triggers.Trigger import com.superwall.sdk.network.NetworkError import com.superwall.sdk.network.SuperwallAPI +import com.superwall.sdk.network.awaitUntilNetworkExists import com.superwall.sdk.network.device.DeviceHelper import com.superwall.sdk.paywall.manager.PaywallManager import com.superwall.sdk.paywall.presentation.rule_logic.javascript.JavascriptEvaluator diff --git a/superwall/src/main/java/com/superwall/sdk/config/PaywallPreload.kt b/superwall/src/main/java/com/superwall/sdk/config/PaywallPreload.kt index 0df58526..92583b01 100644 --- a/superwall/src/main/java/com/superwall/sdk/config/PaywallPreload.kt +++ b/superwall/src/main/java/com/superwall/sdk/config/PaywallPreload.kt @@ -1,6 +1,5 @@ package com.superwall.sdk.config -import Assignments import android.content.Context import android.webkit.WebView import com.superwall.sdk.dependencies.RequestFactory diff --git a/superwall/src/main/java/com/superwall/sdk/dependencies/DependencyContainer.kt b/superwall/src/main/java/com/superwall/sdk/dependencies/DependencyContainer.kt index 5144a327..cf3976b8 100644 --- a/superwall/src/main/java/com/superwall/sdk/dependencies/DependencyContainer.kt +++ b/superwall/src/main/java/com/superwall/sdk/dependencies/DependencyContainer.kt @@ -1,9 +1,5 @@ package com.superwall.sdk.dependencies -import Assignments -import BaseHostService -import ComputedPropertyRequest -import GeoService import android.app.Activity import android.app.Application import android.content.Context @@ -19,6 +15,7 @@ import com.superwall.sdk.analytics.session.AppManagerDelegate import com.superwall.sdk.analytics.session.AppSession import com.superwall.sdk.analytics.session.AppSessionManager import com.superwall.sdk.billing.GoogleBillingWrapper +import com.superwall.sdk.config.Assignments import com.superwall.sdk.config.ConfigLogic import com.superwall.sdk.config.ConfigManager import com.superwall.sdk.config.PaywallPreload @@ -33,12 +30,15 @@ import com.superwall.sdk.identity.IdentityManager import com.superwall.sdk.misc.ActivityProvider import com.superwall.sdk.misc.AppLifecycleObserver import com.superwall.sdk.misc.CurrentActivityTracker +import com.superwall.sdk.models.config.ComputedPropertyRequest import com.superwall.sdk.models.config.FeatureFlags import com.superwall.sdk.models.events.EventData import com.superwall.sdk.models.paywall.Paywall import com.superwall.sdk.models.product.ProductVariable import com.superwall.sdk.network.Api +import com.superwall.sdk.network.BaseHostService import com.superwall.sdk.network.CollectorService +import com.superwall.sdk.network.GeoService import com.superwall.sdk.network.JsonFactory import com.superwall.sdk.network.Network import com.superwall.sdk.network.RequestExecutor diff --git a/superwall/src/main/java/com/superwall/sdk/dependencies/FactoryProtocols.kt b/superwall/src/main/java/com/superwall/sdk/dependencies/FactoryProtocols.kt index 80ade6a8..5d2b066a 100644 --- a/superwall/src/main/java/com/superwall/sdk/dependencies/FactoryProtocols.kt +++ b/superwall/src/main/java/com/superwall/sdk/dependencies/FactoryProtocols.kt @@ -1,6 +1,5 @@ package com.superwall.sdk.dependencies -import ComputedPropertyRequest import android.app.Activity import com.android.billingclient.api.Purchase import com.superwall.sdk.analytics.internal.trackable.InternalSuperwallEvent @@ -12,6 +11,7 @@ import com.superwall.sdk.delegate.SubscriptionStatus import com.superwall.sdk.identity.IdentityInfo import com.superwall.sdk.identity.IdentityManager import com.superwall.sdk.misc.AppLifecycleObserver +import com.superwall.sdk.models.config.ComputedPropertyRequest import com.superwall.sdk.models.config.FeatureFlags import com.superwall.sdk.models.events.EventData import com.superwall.sdk.models.paywall.Paywall diff --git a/superwall/src/main/java/com/superwall/sdk/models/config/ComputedPropertyRequest.kt b/superwall/src/main/java/com/superwall/sdk/models/config/ComputedPropertyRequest.kt index 02884cde..c21c3fea 100644 --- a/superwall/src/main/java/com/superwall/sdk/models/config/ComputedPropertyRequest.kt +++ b/superwall/src/main/java/com/superwall/sdk/models/config/ComputedPropertyRequest.kt @@ -1,3 +1,5 @@ +package com.superwall.sdk.models.config + import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/superwall/src/main/java/com/superwall/sdk/models/config/Config.kt b/superwall/src/main/java/com/superwall/sdk/models/config/Config.kt index fff1d094..e590747a 100644 --- a/superwall/src/main/java/com/superwall/sdk/models/config/Config.kt +++ b/superwall/src/main/java/com/superwall/sdk/models/config/Config.kt @@ -1,6 +1,5 @@ package com.superwall.sdk.models.config -import ComputedPropertyRequest import com.superwall.sdk.models.SerializableEntity import com.superwall.sdk.models.paywall.Paywall import com.superwall.sdk.models.postback.PostbackRequest diff --git a/superwall/src/main/java/com/superwall/sdk/models/paywall/Paywall.kt b/superwall/src/main/java/com/superwall/sdk/models/paywall/Paywall.kt index be22af8b..cde536d9 100644 --- a/superwall/src/main/java/com/superwall/sdk/models/paywall/Paywall.kt +++ b/superwall/src/main/java/com/superwall/sdk/models/paywall/Paywall.kt @@ -1,6 +1,5 @@ package com.superwall.sdk.models.paywall -import ComputedPropertyRequest import android.graphics.Color import com.superwall.sdk.config.models.OnDeviceCaching import com.superwall.sdk.config.models.Survey @@ -8,6 +7,7 @@ import com.superwall.sdk.logger.LogLevel import com.superwall.sdk.logger.LogScope import com.superwall.sdk.logger.Logger import com.superwall.sdk.models.SerializableEntity +import com.superwall.sdk.models.config.ComputedPropertyRequest import com.superwall.sdk.models.config.FeatureGatingBehavior import com.superwall.sdk.models.events.EventData import com.superwall.sdk.models.product.Product diff --git a/superwall/src/main/java/com/superwall/sdk/models/triggers/TriggerRule.kt b/superwall/src/main/java/com/superwall/sdk/models/triggers/TriggerRule.kt index e4df0f34..b21ad650 100644 --- a/superwall/src/main/java/com/superwall/sdk/models/triggers/TriggerRule.kt +++ b/superwall/src/main/java/com/superwall/sdk/models/triggers/TriggerRule.kt @@ -1,6 +1,6 @@ package com.superwall.sdk.models.triggers -import ComputedPropertyRequest +import com.superwall.sdk.models.config.ComputedPropertyRequest import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/superwall/src/main/java/com/superwall/sdk/network/AwaitUntilNetworkExists.kt b/superwall/src/main/java/com/superwall/sdk/network/AwaitUntilNetworkExists.kt index bdeea271..fa0c2bf9 100644 --- a/superwall/src/main/java/com/superwall/sdk/network/AwaitUntilNetworkExists.kt +++ b/superwall/src/main/java/com/superwall/sdk/network/AwaitUntilNetworkExists.kt @@ -1,3 +1,5 @@ +package com.superwall.sdk.network + import android.Manifest import android.content.Context import android.content.pm.PackageManager diff --git a/superwall/src/main/java/com/superwall/sdk/network/BaseHostService.kt b/superwall/src/main/java/com/superwall/sdk/network/BaseHostService.kt index 5a4ba4dc..0782df6e 100644 --- a/superwall/src/main/java/com/superwall/sdk/network/BaseHostService.kt +++ b/superwall/src/main/java/com/superwall/sdk/network/BaseHostService.kt @@ -1,3 +1,5 @@ +package com.superwall.sdk.network + import com.superwall.sdk.dependencies.ApiFactory import com.superwall.sdk.misc.Either import com.superwall.sdk.models.assignment.AssignmentPostback @@ -5,9 +7,6 @@ import com.superwall.sdk.models.assignment.ConfirmedAssignmentResponse import com.superwall.sdk.models.config.Config import com.superwall.sdk.models.paywall.Paywall import com.superwall.sdk.models.paywall.Paywalls -import com.superwall.sdk.network.NetworkError -import com.superwall.sdk.network.NetworkService -import com.superwall.sdk.network.URLQueryItem import com.superwall.sdk.network.session.CustomHttpUrlConnection import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json diff --git a/superwall/src/main/java/com/superwall/sdk/network/GeoService.kt b/superwall/src/main/java/com/superwall/sdk/network/GeoService.kt index d05a4255..888a073b 100644 --- a/superwall/src/main/java/com/superwall/sdk/network/GeoService.kt +++ b/superwall/src/main/java/com/superwall/sdk/network/GeoService.kt @@ -1,6 +1,7 @@ +package com.superwall.sdk.network + import com.superwall.sdk.dependencies.ApiFactory import com.superwall.sdk.models.geo.GeoWrapper -import com.superwall.sdk.network.NetworkService import com.superwall.sdk.network.session.CustomHttpUrlConnection class GeoService( diff --git a/superwall/src/main/java/com/superwall/sdk/network/Network.kt b/superwall/src/main/java/com/superwall/sdk/network/Network.kt index 6e8b2e21..781c3f20 100644 --- a/superwall/src/main/java/com/superwall/sdk/network/Network.kt +++ b/superwall/src/main/java/com/superwall/sdk/network/Network.kt @@ -1,7 +1,5 @@ package com.superwall.sdk.network -import BaseHostService -import GeoService import com.superwall.sdk.dependencies.ApiFactory import com.superwall.sdk.logger.LogLevel import com.superwall.sdk.logger.LogScope diff --git a/superwall/src/main/java/com/superwall/sdk/network/device/Capability.kt b/superwall/src/main/java/com/superwall/sdk/network/device/Capability.kt index 6e032973..e9ef6fcc 100644 --- a/superwall/src/main/java/com/superwall/sdk/network/device/Capability.kt +++ b/superwall/src/main/java/com/superwall/sdk/network/device/Capability.kt @@ -35,6 +35,10 @@ internal sealed class Capability( @Serializable @SerialName("multiple_paywall_urls") object MultiplePaywallUrls : Capability("multiple_paywall_urls") + + @Serializable + @SerialName("config_caching") + object ConfigCaching : Capability("config_caching") } internal fun List.toJson(json: Json): JsonElement = json.encodeToJsonElement(this) diff --git a/superwall/src/main/java/com/superwall/sdk/network/device/DeviceHelper.kt b/superwall/src/main/java/com/superwall/sdk/network/device/DeviceHelper.kt index 99aa5b28..6a0e2334 100644 --- a/superwall/src/main/java/com/superwall/sdk/network/device/DeviceHelper.kt +++ b/superwall/src/main/java/com/superwall/sdk/network/device/DeviceHelper.kt @@ -1,6 +1,5 @@ package com.superwall.sdk.network.device -import ComputedPropertyRequest import android.annotation.SuppressLint import android.content.Context import android.content.pm.ApplicationInfo @@ -20,6 +19,7 @@ import com.superwall.sdk.logger.LogLevel import com.superwall.sdk.logger.LogScope import com.superwall.sdk.logger.Logger import com.superwall.sdk.misc.then +import com.superwall.sdk.models.config.ComputedPropertyRequest import com.superwall.sdk.models.events.EventData import com.superwall.sdk.models.geo.GeoInfo import com.superwall.sdk.network.JsonFactory @@ -424,7 +424,7 @@ class DeviceHelper( null } val capabilities: List = - listOf(Capability.PaywallEventReceiver(), Capability.MultiplePaywallUrls) + listOf(Capability.PaywallEventReceiver(), Capability.MultiplePaywallUrls, Capability.ConfigCaching) val deviceTemplate = DeviceTemplate( diff --git a/superwall/src/main/java/com/superwall/sdk/paywall/presentation/PaywallInfo.kt b/superwall/src/main/java/com/superwall/sdk/paywall/presentation/PaywallInfo.kt index 62e3dad2..916c0db8 100644 --- a/superwall/src/main/java/com/superwall/sdk/paywall/presentation/PaywallInfo.kt +++ b/superwall/src/main/java/com/superwall/sdk/paywall/presentation/PaywallInfo.kt @@ -1,11 +1,11 @@ package com.superwall.sdk.paywall.presentation -import ComputedPropertyRequest import com.superwall.sdk.config.models.Survey import com.superwall.sdk.logger.LogLevel import com.superwall.sdk.logger.LogScope import com.superwall.sdk.logger.Logger import com.superwall.sdk.misc.camelCaseToSnakeCase +import com.superwall.sdk.models.config.ComputedPropertyRequest import com.superwall.sdk.models.config.FeatureGatingBehavior import com.superwall.sdk.models.events.EventData import com.superwall.sdk.models.paywall.LocalNotification diff --git a/superwall/src/main/java/com/superwall/sdk/paywall/presentation/rule_logic/RuleLogic.kt b/superwall/src/main/java/com/superwall/sdk/paywall/presentation/rule_logic/RuleLogic.kt index 7896ee14..2058ee38 100644 --- a/superwall/src/main/java/com/superwall/sdk/paywall/presentation/rule_logic/RuleLogic.kt +++ b/superwall/src/main/java/com/superwall/sdk/paywall/presentation/rule_logic/RuleLogic.kt @@ -1,6 +1,6 @@ package com.superwall.sdk.paywall.presentation.rule_logic -import Assignments +import com.superwall.sdk.config.Assignments import com.superwall.sdk.dependencies.RuleAttributesFactory import com.superwall.sdk.models.assignment.ConfirmableAssignment import com.superwall.sdk.models.events.EventData diff --git a/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/DefaultWebviewClient.kt b/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/DefaultWebviewClient.kt index 523bd226..f69a4649 100644 --- a/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/DefaultWebviewClient.kt +++ b/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/DefaultWebviewClient.kt @@ -11,6 +11,7 @@ import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.launch internal open class DefaultWebviewClient( + private val forUrl: String = "", private val ioScope: CoroutineScope, ) : WebViewClient() { val webviewClientEvents: MutableSharedFlow = @@ -52,7 +53,7 @@ internal open class DefaultWebviewClient( val body = it.data?.bufferedReader()?.use { it.readText() } ?: "Unknown" "Error: ${errorResponse.reasonPhrase} -\n $body" } ?: "Unknown error", - request?.url?.toString() ?: "", + forUrl, ), ), ) @@ -70,7 +71,7 @@ internal open class DefaultWebviewClient( WebviewError.NetworkError( error.errorCode, error.description.toString(), - request?.url?.toString() ?: "", + forUrl, ), ), ) diff --git a/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/SWWebView.kt b/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/SWWebView.kt index 9f248496..8ebfd479 100644 --- a/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/SWWebView.kt +++ b/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/SWWebView.kt @@ -129,6 +129,12 @@ class SWWebView( } override fun loadUrl(url: String) { + this.webViewClient = + DefaultWebviewClient( + forUrl = url, + ioScope = CoroutineScope(Dispatchers.IO), + ) + listenToWebviewClientEvents(this.webViewClient as DefaultWebviewClient) // Parse the url and add the query parameter val uri = Uri.parse(url) diff --git a/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/WebviewFallbackClient.kt b/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/WebviewFallbackClient.kt index 4b93a62a..6b2a9b98 100644 --- a/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/WebviewFallbackClient.kt +++ b/superwall/src/main/java/com/superwall/sdk/paywall/vc/web_view/WebviewFallbackClient.kt @@ -24,7 +24,7 @@ internal class WebviewFallbackClient( private val mainScope: CoroutineScope, private val loadUrl: (PaywallWebviewUrl) -> Unit, private val stopLoading: () -> Unit, -) : DefaultWebviewClient(ioScope) { +) : DefaultWebviewClient("", ioScope) { private class MaxAttemptsReachedException : Exception("Max attempts reached") private var failureCount = 0 diff --git a/superwall/src/main/java/com/superwall/sdk/storage/core_data/Converters.kt b/superwall/src/main/java/com/superwall/sdk/storage/core_data/Converters.kt index ec811ea6..0b8b5dd8 100644 --- a/superwall/src/main/java/com/superwall/sdk/storage/core_data/Converters.kt +++ b/superwall/src/main/java/com/superwall/sdk/storage/core_data/Converters.kt @@ -21,7 +21,7 @@ class Converters { fun toDate(timestamp: Long): Date = Date(timestamp) @TypeConverter - fun toTimestamp(date: Date): Long = date.time + fun toTimestamp(date: Date?): Long? = date?.time /** * Filters out any values that can't be saved to the database. diff --git a/superwall/src/main/java/com/superwall/sdk/storage/core_data/CoreDataManager.kt b/superwall/src/main/java/com/superwall/sdk/storage/core_data/CoreDataManager.kt index ca1745df..c9742171 100644 --- a/superwall/src/main/java/com/superwall/sdk/storage/core_data/CoreDataManager.kt +++ b/superwall/src/main/java/com/superwall/sdk/storage/core_data/CoreDataManager.kt @@ -1,11 +1,11 @@ package com.superwall.sdk.storage.core_data -import ComputedPropertyRequest import android.content.Context import android.icu.util.Calendar import com.superwall.sdk.logger.LogLevel import com.superwall.sdk.logger.LogScope import com.superwall.sdk.logger.Logger +import com.superwall.sdk.models.config.ComputedPropertyRequest import com.superwall.sdk.models.events.EventData import com.superwall.sdk.models.triggers.TriggerRuleOccurrence import com.superwall.sdk.storage.core_data.entities.ManagedEventData