Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
17 changes: 8 additions & 9 deletions QonversionSandwich.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
Pod::Spec.new do |s|
excluded_files = ['ios/sandwich/AutomationsSandwich.swift', 'ios/sandwich/AutomationsEventListener.swift', 'ios/sandwich/AutomationsMappers.swift']
s.name = 'QonversionSandwich'
s.version = '5.2.0'
s.version = '5.3.0'
s.summary = 'qonversion.io'
s.swift_version = '5.0'
s.description = <<-DESC
Expand All @@ -12,12 +11,12 @@ Pod::Spec.new do |s|
s.author = { 'Qonversion Inc.' => 'hi@qonversion.io' }
s.source = { :git => 'https://github.com/qonversion/sandwich-sdk.git', :tag => s.version.to_s }
s.framework = 'StoreKit'
s.platforms = { :ios => "9.0", :osx => "10.12" }

s.osx.exclude_files = excluded_files

s.platforms = {
"ios" => "13.0",
"osx" => "10.13"
}
s.source_files = 'ios/sandwich/**/*.{h,m,swift}'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }

s.dependency "Qonversion", "5.13.0"
Comment thread
suriksarkisyan marked this conversation as resolved.
s.ios.dependency "NoCodes", "0.1.1"
s.dependency "Qonversion", "5.13.3"
s.module_name = 'QonversionSandwich'
end
4 changes: 3 additions & 1 deletion android/sandwich/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
buildscript {
ext.qonversion_version = '8.2.1'
ext.nocodes_version = '0.0.1'
}

plugins {
Expand All @@ -11,7 +12,7 @@ android {
compileSdk 33

defaultConfig {
minSdk 19
minSdk 21
targetSdk 33

group = 'io.qonversion.sandwich'
Expand Down Expand Up @@ -44,6 +45,7 @@ ext {

dependencies {
api "io.qonversion.android.sdk:sdk:$qonversion_version"
api "io.qonversion:no-codes:$nocodes_version"
implementation 'androidx.preference:preference:1.2.0'
}

Expand Down

This file was deleted.

This file was deleted.

57 changes: 46 additions & 11 deletions android/sandwich/src/main/kotlin/io/qonversion/sandwich/Mappers.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ package io.qonversion.sandwich

import com.android.billingclient.api.*
import com.qonversion.android.sdk.dto.QonversionError
import com.qonversion.android.sdk.automations.dto.QActionResult
import com.qonversion.android.sdk.automations.dto.QScreenPresentationConfig
import com.qonversion.android.sdk.automations.dto.QScreenPresentationStyle
import com.qonversion.android.sdk.dto.QRemoteConfig
import com.qonversion.android.sdk.dto.QRemoteConfigList
import com.qonversion.android.sdk.dto.QRemoteConfigurationAssignmentType
Expand All @@ -29,6 +26,10 @@ import com.qonversion.android.sdk.dto.products.QProductPricingPhase
import com.qonversion.android.sdk.dto.products.QProductStoreDetails
import com.qonversion.android.sdk.dto.properties.QUserProperties
import com.qonversion.android.sdk.dto.properties.QUserProperty
import io.qonversion.nocodes.dto.QAction
import io.qonversion.nocodes.error.NoCodesError
import io.qonversion.nocodes.dto.QScreenPresentationConfig
import io.qonversion.nocodes.dto.QScreenPresentationStyle

fun QonversionError.toSandwichError(): SandwichError {
return SandwichError(this)
Expand Down Expand Up @@ -315,14 +316,6 @@ fun QRemoteConfigurationAssignmentType.toFormattedString(): String {
}
}

fun QActionResult.toMap(): BridgeData {
return mapOf(
"type" to type.type,
"value" to value,
"error" to error?.toMap()
)
}

fun Map<String, Any?>.toStringMap(): Map<String, String> {
return filterValues { it != null }
.mapValues { it.value.toString() }
Expand All @@ -339,3 +332,45 @@ fun Map<String, Any?>.toScreenPresentationConfig(): QScreenPresentationConfig {

return presentationStyle?.let { QScreenPresentationConfig(it) } ?: QScreenPresentationConfig()
}

fun QAction.toMap(): BridgeData {
val parametersMap = parameters?.mapKeys { it.key.key }?.mapValues { it.value }
return mapOf(
"type" to type.type,
"parameters" to parametersMap,
"error" to error?.toMap()
)
}

fun Map<String, Any?>.toNoCodesScreenPresentationConfig(): QScreenPresentationConfig {
Comment thread
SpertsyanKM marked this conversation as resolved.
Outdated
val presentationStyle = try {
get("presentationStyle")?.takeIf { it is String }?.let {
QScreenPresentationStyle.valueOf(it as String)
}
} catch (e: IllegalArgumentException) {
null
}

return presentationStyle?.let { QScreenPresentationConfig(it) }
?: QScreenPresentationConfig()
}

fun NoCodesError.toMap(): BridgeData {
return mapOf(
"code" to code.toString(),
"description" to details,
"additionalMessage" to qonversionError?.additionalMessage
)
}

fun QScreenPresentationConfig.toMap(): BridgeData {
return mapOf(
"style" to presentationStyle.toMap()
)
}

fun QScreenPresentationStyle.toMap(): BridgeData {
return mapOf(
"name" to name
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package io.qonversion.sandwich

interface NoCodesEventListener {
fun onNoCodesEvent(event: Event, payload: BridgeData? = null)

enum class Event(val key: String) {
ScreenShown("nocodes_screen_shown"),
ScreenClosed("nocodes_screen_closed"),
ActionStarted("nocodes_action_started"),
ActionFinished("nocodes_action_finished"),
ActionFailed("nocodes_action_failed"),
ScreenFailedToLoad("nocodes_screen_failed_to_load")
Comment thread
suriksarkisyan marked this conversation as resolved.
}
}
Loading