Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,15 @@ class SpConsentLibMobileCore(
private val userData: SPUserData get() = coordinator.userData
private val spConsents: SPConsents get() = SPConsents(userData)

private val messageUI: SPMessageUI by lazy {
SPConsentWebView.create(
private var messageUI: SPMessageUI? = null
fun getOrCreateMessageUI(): SPMessageUI {
messageUI = messageUI ?: SPConsentWebView.create(
context = context,
messageUIClient = this@SpConsentLibMobileCore,
propertyId = propertyId,
onBackPressed = dismissMessageOnBackPress
)
return messageUI!!
}

override fun loadMessage() = loadMessage(authId = null, pubData = null, cmpViewId = null)
Expand Down Expand Up @@ -125,10 +127,11 @@ class SpConsentLibMobileCore(

private fun renderNextMessageIfAny() =
if (pendingActions == 0 && messagesToDisplay.isEmpty()) {
messageUI = null
spClient.onSpFinished(spConsents)
} else if (messagesToDisplay.isNotEmpty()) {
val messageToRender = messagesToDisplay.removeFirst()
messageUI.load(
getOrCreateMessageUI().load(
message = messageToRender.message,
messageType = MessageType.fromMessageSubCategory(messageToRender.metaData.subCategoryId),
url = messageToRender.url,
Expand Down Expand Up @@ -263,7 +266,7 @@ class SpConsentLibMobileCore(
}

pendingActions++
messageUI.load(
getOrCreateMessageUI().load(
messageType = messageType,
url = buildPMUrl(
campaignType = campaignType,
Expand Down Expand Up @@ -293,7 +296,7 @@ class SpConsentLibMobileCore(
}

override fun dismissMessage() {
messageUI.dismiss()
getOrCreateMessageUI().dismiss()
}

@Deprecated(message = "This method is deprecated and has no effect.")
Expand Down Expand Up @@ -335,6 +338,7 @@ class SpConsentLibMobileCore(
spClient.onConsentReady(SPConsents(userData))
pendingActions--
if (pendingActions == 0) {
messageUI = null
spClient.onSpFinished(spConsents)
}
}.onFailure {
Expand All @@ -348,7 +352,7 @@ class SpConsentLibMobileCore(
finished(view)
}
ActionType.PM_DISMISS -> {
if (messageUI.isFirstLayer) {
if (getOrCreateMessageUI().isFirstLayer) {
pendingActions--
finished(view)
}
Expand Down Expand Up @@ -386,7 +390,7 @@ class SpConsentLibMobileCore(
}

override fun finished(view: View) {
messageUI.isPresenting = false
getOrCreateMessageUI().isPresenting = false
runOnMain { spClient.onUIFinished(view) }
renderNextMessageIfAny()
}
Expand Down