Skip to content

Commit 63b6bbe

Browse files
feat: Add support purchaseFinalized API in android core (#583)
1 parent 7b83bb6 commit 63b6bbe

7 files changed

Lines changed: 61 additions & 8 deletions

File tree

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -388,9 +388,9 @@ public void setWrapperSdk(@NotNull WrapperSdk wrapperSdk, @NotNull String versio
388388
if (this.wrapperSdkVersion.getSdk() == WrapperSdk.WrapperNone && (wrapperSdk != WrapperSdk.WrapperNone && !version.isEmpty())) {
389389
this.wrapperSdkVersion = new WrapperSdkVersion(wrapperSdk, version);
390390
}
391-
392-
// Regardless of whether the wrapperSdk is set or not, we will set it in the rokt instance
393-
rokt.setWrapperSdk(wrapperSdk, version);
391+
if (mConfigManager.isEnabled()) {
392+
mKitManager.setWrapperSdkVersion(wrapperSdkVersion);
393+
}
394394
}
395395

396396
/**
@@ -1895,6 +1895,7 @@ public void selectPlacements(@NonNull String viewName,
18951895
config);
18961896
}
18971897
}
1898+
18981899
public void selectPlacements(@NonNull String viewName,
18991900
@NonNull Map<String, String> attributes) {
19001901
if (mConfigManager.isEnabled()) {
@@ -1908,10 +1909,9 @@ public void selectPlacements(@NonNull String viewName,
19081909
}
19091910
}
19101911

1911-
public void setWrapperSdk(@NotNull WrapperSdk wrapperSdk, @NotNull String version) {
1912+
public void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status) {
19121913
if (mConfigManager.isEnabled()) {
1913-
WrapperSdkVersion wrapperSdkVersion = new WrapperSdkVersion(wrapperSdk, version);
1914-
mKitManager.setWrapperSdkVersion(wrapperSdkVersion);
1914+
mKitManager.purchaseFinalized(placementId, catalogItemId, status);
19151915
}
19161916
}
19171917
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,13 @@ public void setWrapperSdkVersion(@NonNull WrapperSdkVersion wrapperSdkVersion) {
675675
}
676676
}
677677

678+
@Override
679+
public void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status) {
680+
if (mKitManager != null) {
681+
mKitManager.purchaseFinalized(placementId, catalogItemId, status);
682+
}
683+
}
684+
678685
static class CoreCallbacksImpl implements CoreCallbacks {
679686
KitFrameworkWrapper mKitFrameworkWrapper;
680687
ConfigManager mConfigManager;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ void execute(@NonNull String viewName,
134134

135135
void setWrapperSdkVersion(@NonNull WrapperSdkVersion wrapperSdkVersion);
136136

137+
void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status);
138+
137139
enum KitStatus {
138140
NOT_CONFIGURED,
139141
STOPPED,

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,31 @@ class MParticleTest {
555555
verify(instance.mKitManager, never()).setWrapperSdkVersion(any())
556556
}
557557

558+
@Test
559+
fun testReportConversion_withBasicParams_whenEnabled() {
560+
var instance: MParticle = InnerMockMParticle()
561+
MParticle.setInstance(instance)
562+
`when`(instance.mConfigManager.isEnabled()).thenReturn(true)
563+
564+
val attributes = mutableMapOf<String, String>()
565+
attributes.put("a", "b")
566+
567+
instance.rokt.purchaseFinalized("132", "1111", true)
568+
569+
verify(instance.mKitManager).purchaseFinalized("132", "1111", true)
570+
}
571+
572+
@Test
573+
fun testReportConversion_withBasicParams_whenDisabled() {
574+
var instance: MParticle = InnerMockMParticle()
575+
MParticle.setInstance(instance)
576+
`when`(instance.mConfigManager.isEnabled()).thenReturn(false)
577+
578+
instance.rokt.purchaseFinalized("132", "1111", true)
579+
580+
verify(instance.mKitManager, never()).purchaseFinalized("132", "1111", true)
581+
}
582+
558583
inner class InnerMockMParticle : MParticle() {
559584
init {
560585
mConfigManager = ConfigManager(MockContext())

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,5 +629,7 @@ void execute(@NonNull String viewName,
629629
* @param wrapperSdkVersion the version of the mParticle SDK
630630
*/
631631
void setWrapperSdkVersion(@NonNull WrapperSdkVersion wrapperSdkVersion);
632+
633+
void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status);
632634
}
633635
}

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1406,7 +1406,20 @@ public void setWrapperSdkVersion(@NonNull WrapperSdkVersion wrapperSdkVersion) {
14061406
((KitIntegration.RoktListener) provider).setWrapperSdkVersion(wrapperSdkVersion);
14071407
}
14081408
} catch (Exception e) {
1409-
Logger.warning("Failed to call execute for kit: " + provider.getName() + ": " + e.getMessage());
1409+
Logger.warning("Failed to call setWrapperSdkVersion for kit: " + provider.getName() + ": " + e.getMessage());
1410+
}
1411+
}
1412+
}
1413+
1414+
@Override
1415+
public void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status) {
1416+
for (KitIntegration provider : providers.values()) {
1417+
try {
1418+
if (provider instanceof KitIntegration.RoktListener && !provider.isDisabled()) {
1419+
((KitIntegration.RoktListener) provider).purchaseFinalized(placementId,catalogItemId,status);
1420+
}
1421+
} catch (Exception e) {
1422+
Logger.warning("Failed to call purchaseFinalized for kit: " + provider.getName() + ": " + e.getMessage());
14101423
}
14111424
}
14121425
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1485,11 +1485,15 @@ class KitManagerImplTest {
14851485
placeHolders: MutableMap<String, WeakReference<RoktEmbeddedView>>?,
14861486
fontTypefaces: MutableMap<String, WeakReference<Typeface>>?,
14871487
user: FilteredMParticleUser?,
1488-
config: RoktConfig
1488+
config: RoktConfig?
14891489
) {
14901490
println("Executed with $attributes")
14911491
}
14921492

1493+
override fun purchaseFinalized(placementId: String, catalogItemId: String, status: Boolean) {
1494+
println("purchaseFinalized with placementId: $placementId catalogItemId : $catalogItemId status : $status ")
1495+
}
1496+
14931497
override fun setWrapperSdkVersion(wrapperSdkVersion: WrapperSdkVersion) {
14941498
println("setWrapperSdkVersion with $wrapperSdkVersion")
14951499
}

0 commit comments

Comments
 (0)