Skip to content

Commit 467e6f0

Browse files
feat: Add RoktConfig in MP layer (#581)
1 parent 5ad52b6 commit 467e6f0

8 files changed

Lines changed: 75 additions & 28 deletions

File tree

android-core/src/main/java/com/mparticle/MParticle.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import com.mparticle.media.MediaCallbacks;
5353
import com.mparticle.messaging.MPMessagingAPI;
5454
import com.mparticle.messaging.ProviderCloudMessage;
55+
import com.mparticle.rokt.RoktConfig;
5556
import com.mparticle.rokt.RoktEmbeddedView;
5657

5758
import org.jetbrains.annotations.NotNull;
@@ -1883,13 +1884,15 @@ public void selectPlacements(@NonNull String viewName,
18831884
@NonNull Map<String, String> attributes,
18841885
@Nullable MpRoktEventCallback callbacks,
18851886
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
1886-
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces) {
1887+
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces,
1888+
@Nullable RoktConfig config) {
18871889
if (mConfigManager.isEnabled()) {
18881890
mKitManager.execute(viewName,
18891891
attributes,
18901892
callbacks,
18911893
placeHolders,
1892-
fontTypefaces);
1894+
fontTypefaces,
1895+
config);
18931896
}
18941897
}
18951898
public void selectPlacements(@NonNull String viewName,
@@ -1899,6 +1902,7 @@ public void selectPlacements(@NonNull String viewName,
18991902
attributes,
19001903
null,
19011904
null,
1905+
null,
19021906
null
19031907
);
19041908
}

android-core/src/main/java/com/mparticle/internal/KitFrameworkWrapper.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.mparticle.identity.IdentityApiRequest;
2323
import com.mparticle.identity.MParticleUser;
2424
import com.mparticle.internal.listeners.InternalListenerManager;
25+
import com.mparticle.rokt.RoktConfig;
2526
import com.mparticle.rokt.RoktEmbeddedView;
2627

2728
import org.json.JSONArray;
@@ -652,16 +653,18 @@ public void reset() {
652653

653654
@Override
654655
public void execute(@NonNull String viewName,
655-
@NonNull Map<String, String> attributes,
656-
@Nullable MParticle.MpRoktEventCallback mpRoktEventCallback,
657-
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
658-
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces) {
656+
@NonNull Map<String, String> attributes,
657+
@Nullable MParticle.MpRoktEventCallback mpRoktEventCallback,
658+
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
659+
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces,
660+
@Nullable RoktConfig config) {
659661
if (mKitManager != null) {
660662
mKitManager.execute(viewName,
661663
attributes,
662664
mpRoktEventCallback,
663665
placeHolders,
664-
fontTypefaces);
666+
fontTypefaces,
667+
config);
665668
}
666669
}
667670

android-core/src/main/java/com/mparticle/internal/KitManager.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.mparticle.consent.ConsentState;
2121
import com.mparticle.identity.IdentityApiRequest;
2222
import com.mparticle.identity.MParticleUser;
23+
import com.mparticle.rokt.RoktConfig;
2324
import com.mparticle.rokt.RoktEmbeddedView;
2425

2526
import org.json.JSONArray;
@@ -124,12 +125,12 @@ public interface KitManager {
124125

125126
void reset();
126127

127-
void execute(
128-
@NonNull String viewName,
129-
@NonNull Map<String, String> attributes,
130-
@Nullable MParticle.MpRoktEventCallback mpRoktEventCallback,
131-
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
132-
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces);
128+
void execute(@NonNull String viewName,
129+
@NonNull Map<String, String> attributes,
130+
@Nullable MParticle.MpRoktEventCallback mpRoktEventCallback,
131+
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
132+
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces,
133+
@Nullable RoktConfig config);
133134

134135
void setWrapperSdkVersion(@NonNull WrapperSdkVersion wrapperSdkVersion);
135136

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.mparticle.rokt
2+
3+
class RoktConfig private constructor(
4+
val colorMode: ColorMode?,
5+
val cacheConfig: CacheConfig?,
6+
val edgeToEdgeDisplay: Boolean,
7+
) {
8+
data class Builder(
9+
private var colorMode: ColorMode? = null,
10+
private var cacheConfig: CacheConfig? = null,
11+
private var edgeToEdgeDisplay: Boolean = true,
12+
) {
13+
fun colorMode(mode: ColorMode) = apply { this.colorMode = mode }
14+
fun cacheConfig(cacheConfig: CacheConfig) = apply { this.cacheConfig = cacheConfig }
15+
fun edgeToEdgeDisplay(edgeToEdgeDisplay: Boolean) = apply { this.edgeToEdgeDisplay = edgeToEdgeDisplay }
16+
fun build(): RoktConfig = RoktConfig(colorMode, cacheConfig, edgeToEdgeDisplay)
17+
}
18+
19+
enum class ColorMode { LIGHT, DARK, SYSTEM }
20+
}
21+
22+
class CacheConfig(
23+
val cacheDurationInSeconds: Long = DEFAULT_CACHE_DURATION_SECS,
24+
val cacheAttributes: Map<String, String>? = null,
25+
) {
26+
companion object {
27+
const val DEFAULT_CACHE_DURATION_SECS: Long = 90 * 60
28+
}
29+
}

android-core/src/test/kotlin/com/mparticle/MParticleTest.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.mparticle.internal.MessageManager
1818
import com.mparticle.media.MPMediaAPI
1919
import com.mparticle.messaging.MPMessagingAPI
2020
import com.mparticle.mock.MockContext
21+
import com.mparticle.rokt.RoktConfig
2122
import com.mparticle.rokt.RoktEmbeddedView
2223
import com.mparticle.testutils.AndroidUtils
2324
import com.mparticle.testutils.RandomUtils
@@ -480,6 +481,8 @@ class MParticleTest {
480481
val placeholders: Map<String, WeakReference<RoktEmbeddedView>> = HashMap()
481482
val fonts: Map<String, WeakReference<Typeface>> = HashMap()
482483

484+
val config = RoktConfig.Builder().colorMode(RoktConfig.ColorMode.DARK).build()
485+
483486
val callbacks = object : MParticle.MpRoktEventCallback {
484487
override fun onLoad() {
485488
println("View loaded")
@@ -497,9 +500,9 @@ class MParticleTest {
497500
println("Hide loading indicator")
498501
}
499502
}
500-
instance.rokt!!.selectPlacements("testView", attributes, callbacks, placeholders, fonts)
503+
instance.rokt!!.selectPlacements("testView", attributes, callbacks, placeholders, fonts, config)
501504

502-
verify(instance.mKitManager)?.execute("testView", attributes, callbacks, placeholders, fonts)
505+
verify(instance.mKitManager)?.execute("testView", attributes, callbacks, placeholders, fonts, config)
503506
}
504507

505508
@Test
@@ -513,7 +516,7 @@ class MParticleTest {
513516

514517
instance.rokt.selectPlacements("basicView", attributes)
515518

516-
verify(instance.mKitManager).execute("basicView", attributes, null, null, null)
519+
verify(instance.mKitManager).execute("basicView", attributes, null, null, null, null)
517520
}
518521

519522
@Test
@@ -524,7 +527,7 @@ class MParticleTest {
524527

525528
instance.rokt.selectPlacements("basicView", HashMap())
526529

527-
verify(instance.mKitManager, never()).execute(any(), any(), any(), any(), any())
530+
verify(instance.mKitManager, never()).execute(any(), any(), any(), any(), any(), any())
528531
}
529532

530533
@Test

android-kit-base/src/main/java/com/mparticle/kits/KitIntegration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.mparticle.commerce.CommerceEvent;
2020
import com.mparticle.consent.ConsentState;
2121
import com.mparticle.identity.MParticleUser;
22+
import com.mparticle.rokt.RoktConfig;
2223
import com.mparticle.rokt.RoktEmbeddedView;
2324

2425
import org.json.JSONObject;
@@ -618,7 +619,8 @@ void execute(@NonNull String viewName,
618619
@Nullable MParticle.MpRoktEventCallback mpRoktEventCallback,
619620
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
620621
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces,
621-
@Nullable FilteredMParticleUser user);
622+
@Nullable FilteredMParticleUser user,
623+
@Nullable RoktConfig config);
622624

623625
/**
624626
* Set the SDK version of the mParticle SDK.

android-kit-base/src/main/java/com/mparticle/kits/KitManagerImpl.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import com.mparticle.internal.MPUtility;
4545
import com.mparticle.internal.ReportingManager;
4646
import com.mparticle.kits.mappings.CustomMapping;
47+
import com.mparticle.rokt.RoktConfig;
4748
import com.mparticle.rokt.RoktEmbeddedView;
4849

4950
import org.json.JSONArray;
@@ -1335,7 +1336,8 @@ public void execute(@NonNull String viewName,
13351336
@NonNull Map<String, String> attributes,
13361337
@Nullable MParticle.MpRoktEventCallback mpRoktEventCallback,
13371338
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
1338-
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces) {
1339+
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces,
1340+
@Nullable RoktConfig config) {
13391341
for (KitIntegration provider : providers.values()) {
13401342
try {
13411343
if (provider instanceof KitIntegration.RoktListener && !provider.isDisabled()) {
@@ -1386,7 +1388,8 @@ public void execute(@NonNull String viewName,
13861388
mpRoktEventCallback,
13871389
placeHolders,
13881390
fontTypefaces,
1389-
FilteredMParticleUser.getInstance(user.getId(), provider));
1391+
FilteredMParticleUser.getInstance(user.getId(), provider),
1392+
config);
13901393
});
13911394
}
13921395
} catch (Exception e) {

android-kit-base/src/test/kotlin/com/mparticle/kits/KitManagerImplTest.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import com.mparticle.mock.MockContext
2626
import com.mparticle.mock.MockKitConfiguration
2727
import com.mparticle.mock.MockKitManagerImpl
2828
import com.mparticle.mock.MockMParticle
29+
import com.mparticle.rokt.RoktConfig
2930
import com.mparticle.rokt.RoktEmbeddedView
3031
import com.mparticle.testutils.TestingUtils
3132
import junit.framework.TestCase
@@ -849,7 +850,7 @@ class KitManagerImplTest {
849850
Pair("country", "US")
850851
)
851852

852-
manager.execute("Test", attributes, null, null, null)
853+
manager.execute("Test", attributes, null, null, null, null)
853854
Assert.assertEquals(6, attributes.size)
854855
Assert.assertEquals("(123) 456-9898", attributes["no"])
855856
Assert.assertEquals("55555", attributes["minorcatid"])
@@ -914,7 +915,7 @@ class KitManagerImplTest {
914915
Pair("country", "US")
915916
)
916917

917-
manager.execute("Test", attributes, null, null, null)
918+
manager.execute("Test", attributes, null, null, null, null)
918919
Assert.assertEquals(6, attributes.size)
919920

920921
Assert.assertEquals("(123) 456-9898", attributes["call"])
@@ -980,7 +981,7 @@ class KitManagerImplTest {
980981
Pair("country", "US")
981982
)
982983

983-
manager.execute("Test", attributes, null, null, null)
984+
manager.execute("Test", attributes, null, null, null, null)
984985
Assert.assertEquals(6, attributes.size)
985986
Assert.assertEquals("(123) 456-9898", attributes["no"])
986987
Assert.assertEquals("5-45555", attributes["minorcatid"])
@@ -1044,7 +1045,7 @@ class KitManagerImplTest {
10441045
Pair("country", "US")
10451046
)
10461047

1047-
manager.execute("Test", attributes, null, null, null)
1048+
manager.execute("Test", attributes, null, null, null, null)
10481049
Assert.assertEquals(6, attributes.size)
10491050
Assert.assertEquals("(123) 456-9898", attributes["number"])
10501051
Assert.assertEquals("55555", attributes["customerId"])
@@ -1293,7 +1294,7 @@ class KitManagerImplTest {
12931294
Pair("customerId", "55555"),
12941295
Pair("country", "US")
12951296
)
1296-
manager.execute("Test", attributes, null, null, null)
1297+
manager.execute("Test", attributes, null, null, null, null)
12971298
Assert.assertEquals(6, attributes.size)
12981299
Assert.assertEquals("(123) 456-9898", attributes["number"])
12991300
Assert.assertEquals("55555", attributes["customerId"])
@@ -1355,7 +1356,7 @@ class KitManagerImplTest {
13551356
Pair("customerId", "55555"),
13561357
Pair("country", "US")
13571358
)
1358-
manager.execute("Test", attributes, null, null, null)
1359+
manager.execute("Test", attributes, null, null, null, null)
13591360
Assert.assertEquals(6, attributes.size)
13601361
Assert.assertEquals("(123) 456-9898", attributes["number"])
13611362
Assert.assertEquals("55555", attributes["customerId"])
@@ -1418,7 +1419,7 @@ class KitManagerImplTest {
14181419
Pair("country", "US"),
14191420
Pair("sandbox", "false")
14201421
)
1421-
manager.execute("Test", attributes, null, null, null)
1422+
manager.execute("Test", attributes, null, null, null, null)
14221423
Assert.assertEquals(6, attributes.size)
14231424
Assert.assertEquals("(123) 456-9898", attributes["number"])
14241425
Assert.assertEquals("55555", attributes["customerId"])
@@ -1483,7 +1484,8 @@ class KitManagerImplTest {
14831484
mpRoktEventCallback: MParticle.MpRoktEventCallback?,
14841485
placeHolders: MutableMap<String, WeakReference<RoktEmbeddedView>>?,
14851486
fontTypefaces: MutableMap<String, WeakReference<Typeface>>?,
1486-
user: FilteredMParticleUser?
1487+
user: FilteredMParticleUser?,
1488+
config: RoktConfig
14871489
) {
14881490
println("Executed with $attributes")
14891491
}

0 commit comments

Comments
 (0)