diff --git a/cmplibrary/build.gradle.kts b/cmplibrary/build.gradle.kts index 7d1e04104..923bc16f3 100644 --- a/cmplibrary/build.gradle.kts +++ b/cmplibrary/build.gradle.kts @@ -55,7 +55,7 @@ android { } dependencies { - implementation("com.sourcepoint:core:0.1.9") + implementation("com.sourcepoint:core:0.1.10") implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1") implementation("com.squareup.okhttp3:okhttp:4.12.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") diff --git a/cmplibrary/src/main/java/com/sourcepoint/cmplibrary/data/network/util/CampaignType.kt b/cmplibrary/src/main/java/com/sourcepoint/cmplibrary/data/network/util/CampaignType.kt index 4d3117ef9..48b7999b5 100644 --- a/cmplibrary/src/main/java/com/sourcepoint/cmplibrary/data/network/util/CampaignType.kt +++ b/cmplibrary/src/main/java/com/sourcepoint/cmplibrary/data/network/util/CampaignType.kt @@ -24,7 +24,6 @@ enum class CampaignType { SPCampaignType.GlobalCmp -> GLOBALCMP SPCampaignType.Unknown, SPCampaignType.IOS14 -> UNKNOWN SPCampaignType.Preferences -> PREFERENCES - SPCampaignType.GlobalCmp -> TODO("add GlobalCMP support") } } diff --git a/cmplibrary/src/main/java/com/sourcepoint/cmplibrary/mobile_core/PMUrlBuilder.kt b/cmplibrary/src/main/java/com/sourcepoint/cmplibrary/mobile_core/PMUrlBuilder.kt index 84c90bd89..c196d0841 100644 --- a/cmplibrary/src/main/java/com/sourcepoint/cmplibrary/mobile_core/PMUrlBuilder.kt +++ b/cmplibrary/src/main/java/com/sourcepoint/cmplibrary/mobile_core/PMUrlBuilder.kt @@ -28,6 +28,9 @@ val basePmPaths = mapOf( CampaignType.GLOBALCMP to mapOf( MOBILE to "us_pm/index.html?is_global_cmp=true" ), + CampaignType.PREFERENCES to mapOf( + MOBILE to "preferences-app/index.html" + ), ) fun basePmUrlFor(campaignType: CampaignType, pmType: MessageType) = @@ -49,6 +52,7 @@ fun buildPMUrl( CampaignType.GDPR -> Triple("consentUUID", userData.gdpr?.consents?.uuid, userData.gdpr?.childPmId) CampaignType.USNAT -> Triple("uuid", userData.usnat?.consents?.uuid, userData.usnat?.childPmId) CampaignType.GLOBALCMP -> Triple("uuid", userData.globalcmp?.consents?.uuid, userData.globalcmp?.childPmId) + CampaignType.PREFERENCES -> Triple("preferencesUUID", userData.preferences?.consents?.uuid, null) else -> Triple("consentUUID", null, null) } val messageId = if (useChildPmIfAvailable && uuidAndChildPmId.third?.isNotEmpty() == true) { diff --git a/samples/app/src/androidTest/java/com/sourcepoint/app/v6/TestUseCase.kt b/samples/app/src/androidTest/java/com/sourcepoint/app/v6/TestUseCase.kt index b7f20dc16..6fed10f52 100644 --- a/samples/app/src/androidTest/java/com/sourcepoint/app/v6/TestUseCase.kt +++ b/samples/app/src/androidTest/java/com/sourcepoint/app/v6/TestUseCase.kt @@ -228,6 +228,7 @@ class TestUseCase { ccpaPmId: String = "", usnatPmId: String = "", globalCmpPmId: String = "", + preferencescenterId: String = "", pAuthId: String? = null, url: String = "", useGdprGroupPmIfAvailable: Boolean = false, @@ -252,6 +253,7 @@ class TestUseCase { override val ccpaPmId: String = ccpaPmId override val usnatPmId: String = usnatPmId override val globalcmpPmId: String = globalCmpPmId + override val preferencesCenterId: String = preferencescenterId override val messageType: MessageType = messageType override val customVendorList: List = customVendorDataListProd.map { it.first } override val customCategories: List = customCategoriesDataProd.map { it.first } diff --git a/samples/app/src/main/java/com/sourcepoint/app/v6/MainActivityKotlin.kt b/samples/app/src/main/java/com/sourcepoint/app/v6/MainActivityKotlin.kt index 4325d8e15..8ff64e4f0 100644 --- a/samples/app/src/main/java/com/sourcepoint/app/v6/MainActivityKotlin.kt +++ b/samples/app/src/main/java/com/sourcepoint/app/v6/MainActivityKotlin.kt @@ -89,6 +89,7 @@ class MainActivityKotlin : AppCompatActivity() { binding.reviewConsentsCcpa.setOnClickListener { selectCCPAPM(dataProvider) } binding.reviewConsentsUsnat.setOnClickListener { selectUSNATPM(dataProvider) } binding.reviewConsentsGlobalcmp.setOnClickListener { selectGLOBALCMPPM(dataProvider) } + binding.reviewConsentsPreferences.setOnClickListener { selectPREFERENCES(dataProvider) } binding.clearAll.setOnClickListener { spConsentLib.clearLocalData() } binding.authIdActivity.setOnClickListener { _: View? -> startActivity(Intent(this, MainActivityAuthId::class.java)) @@ -414,6 +415,23 @@ class MainActivityKotlin : AppCompatActivity() { ) } } + + private fun selectPREFERENCES(dataProvider: DataProvider){ + dataProvider.messageType + ?.let { + spConsentLib.loadPrivacyManager( + pmId = dataProvider.preferencesCenterId, + campaignType = CampaignType.PREFERENCES, + messageType = it + ) + } + ?: run { + spConsentLib.loadPrivacyManager( + pmId = dataProvider.preferencesCenterId, + campaignType = CampaignType.PREFERENCES + ) + } + } } val consent = """ diff --git a/samples/app/src/main/java/com/sourcepoint/app/v6/core/DataProvider.kt b/samples/app/src/main/java/com/sourcepoint/app/v6/core/DataProvider.kt index cd37740b4..71b76b6a5 100644 --- a/samples/app/src/main/java/com/sourcepoint/app/v6/core/DataProvider.kt +++ b/samples/app/src/main/java/com/sourcepoint/app/v6/core/DataProvider.kt @@ -14,6 +14,7 @@ interface DataProvider { val ccpaPmId: String val usnatPmId: String val globalcmpPmId: String + val preferencesCenterId: String val spConfig: SpConfig val messageType: MessageType? val customVendorList: List @@ -30,6 +31,7 @@ fun DataProvider.Companion.create( ccpaPmId: String, usnatPmId: String, globalcmpPmId: String, + preferencesPmId: String, customVendorList: List, customCategories: List, authId: String?, @@ -42,6 +44,7 @@ fun DataProvider.Companion.create( ccpaPmId = ccpaPmId, usnatPmId= usnatPmId, globalcmpPmId = globalcmpPmId, + preferencesCenterId = preferencesPmId, authId = authId, customCategories = customCategories, customVendorList = customVendorList, @@ -57,6 +60,7 @@ private class DataProviderImpl( override val ccpaPmId: String, override val usnatPmId: String, override val globalcmpPmId: String, + override val preferencesCenterId: String, override val messageType: MessageType? = MessageType.MOBILE, override val useGdprGroupPmIfAvailable: Boolean = false, override val resetAll: Boolean = false, diff --git a/samples/app/src/main/java/com/sourcepoint/app/v6/di/AppModule.kt b/samples/app/src/main/java/com/sourcepoint/app/v6/di/AppModule.kt index a12ecd2b7..61168b37d 100644 --- a/samples/app/src/main/java/com/sourcepoint/app/v6/di/AppModule.kt +++ b/samples/app/src/main/java/com/sourcepoint/app/v6/di/AppModule.kt @@ -32,6 +32,7 @@ val appModule = module { val ccpaPmId = "509688" // "14967" val usnatPmId = "988851" val globalcmpPmId = "1323762" + val preferencesCenterId = "1306779" val customVendorDataList = customVendorDataListProd.map { it.first } val customCategoriesData = customCategoriesDataProd.map { it.first } DataProvider.create( @@ -41,6 +42,7 @@ val appModule = module { ccpaPmId = ccpaPmId, usnatPmId = usnatPmId, globalcmpPmId = globalcmpPmId, + preferencesPmId = preferencesCenterId, customVendorList = customVendorDataList, customCategories = customCategoriesData, useGdprGroupPmIfAvailable = false, diff --git a/samples/app/src/main/res/layout/activity_main_v7.xml b/samples/app/src/main/res/layout/activity_main_v7.xml index 363d34530..cb1a517ff 100644 --- a/samples/app/src/main/res/layout/activity_main_v7.xml +++ b/samples/app/src/main/res/layout/activity_main_v7.xml @@ -46,6 +46,12 @@ android:layout_height="wrap_content" android:text="@string/review_consents_globalcmp" /> +