Skip to content

Commit c041ddb

Browse files
feat: Add support purchaseFinalized API in android core (#583)
1 parent 7d9d54f commit c041ddb

7 files changed

Lines changed: 61 additions & 1 deletion

File tree

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1892,6 +1892,7 @@ public void selectPlacements(@NonNull String viewName,
18921892
config);
18931893
}
18941894
}
1895+
18951896
public void selectPlacements(@NonNull String viewName,
18961897
@NonNull Map<String, String> attributes) {
18971898
if (mConfigManager.isEnabled()) {
@@ -1904,6 +1905,12 @@ public void selectPlacements(@NonNull String viewName,
19041905
);
19051906
}
19061907
}
1908+
1909+
public void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status) {
1910+
if (mConfigManager.isEnabled()) {
1911+
mKitManager.purchaseFinalized(placementId, catalogItemId, status);
1912+
}
1913+
}
19071914
}
19081915
/**
19091916
* @hidden

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import android.net.Uri;
99
import android.os.Bundle;
1010

11+
import androidx.annotation.NonNull;
1112
import androidx.annotation.Nullable;
1213
import androidx.annotation.WorkerThread;
1314

@@ -666,6 +667,13 @@ public void execute(String viewName,
666667
}
667668
}
668669

670+
@Override
671+
public void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status) {
672+
if (mKitManager != null) {
673+
mKitManager.purchaseFinalized(placementId, catalogItemId, status);
674+
}
675+
}
676+
669677
static class CoreCallbacksImpl implements CoreCallbacks {
670678
KitFrameworkWrapper mKitFrameworkWrapper;
671679
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
@@ -130,6 +130,8 @@ void execute(String viewName,
130130
Map<String, WeakReference<Typeface>> fontTypefaces,
131131
RoktConfig config);
132132

133+
void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status);
134+
133135
enum KitStatus {
134136
NOT_CONFIGURED,
135137
STOPPED,

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

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import org.mockito.ArgumentCaptor
3030
import org.mockito.ArgumentMatchers
3131
import org.mockito.ArgumentMatchers.any
3232
import org.mockito.Mockito
33-
import org.mockito.Mockito.mock
3433
import org.mockito.Mockito.never
3534
import org.mockito.Mockito.verify
3635
import org.mockito.Mockito.`when`
@@ -531,6 +530,31 @@ class MParticleTest {
531530
verify(instance.mKitManager, never()).execute(any(), any(), any(), any(), any(), any())
532531
}
533532

533+
@Test
534+
fun testReportConversion_withBasicParams_whenEnabled() {
535+
var instance: MParticle = InnerMockMParticle()
536+
MParticle.setInstance(instance)
537+
`when`(instance.mConfigManager.isEnabled()).thenReturn(true)
538+
539+
val attributes = mutableMapOf<String, String>()
540+
attributes.put("a", "b")
541+
542+
instance.rokt.purchaseFinalized("132", "1111", true)
543+
544+
verify(instance.mKitManager).purchaseFinalized("132", "1111", true)
545+
}
546+
547+
@Test
548+
fun testReportConversion_withBasicParams_whenDisabled() {
549+
var instance: MParticle = InnerMockMParticle()
550+
MParticle.setInstance(instance)
551+
`when`(instance.mConfigManager.isEnabled()).thenReturn(false)
552+
553+
instance.rokt.purchaseFinalized("132", "1111", true)
554+
555+
verify(instance.mKitManager, never()).purchaseFinalized("132", "1111", true)
556+
}
557+
534558
inner class InnerMockMParticle : MParticle() {
535559
init {
536560
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
@@ -620,5 +620,7 @@ void execute(String viewName,
620620
Map<String, WeakReference<Typeface>> fontTypefaces,
621621
FilteredMParticleUser user,
622622
RoktConfig config);
623+
624+
void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status);
623625
}
624626
}

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1401,6 +1401,19 @@ public void execute(String viewName,
14011401
}
14021402
}
14031403

1404+
@Override
1405+
public void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status) {
1406+
for (KitIntegration provider : providers.values()) {
1407+
try {
1408+
if (provider instanceof KitIntegration.RoktListener && !provider.isDisabled()) {
1409+
((KitIntegration.RoktListener) provider).purchaseFinalized(placementId,catalogItemId,status);
1410+
}
1411+
} catch (Exception e) {
1412+
Logger.warning("Failed to call purchaseFinalized for kit: " + provider.getName() + ": " + e.getMessage());
1413+
}
1414+
}
1415+
}
1416+
14041417
private void confirmEmail(
14051418
@Nullable String email,
14061419
@Nullable MParticleUser user,

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1451,6 +1451,10 @@ class KitManagerImplTest {
14511451
) {
14521452
println("Executed with $attributes")
14531453
}
1454+
1455+
override fun purchaseFinalized(placementId: String, catalogItemId: String, status: Boolean) {
1456+
println("purchaseFinalized with placementId: $placementId catalogItemId : $catalogItemId status : $status ")
1457+
}
14541458
}
14551459
internal inner class KitManagerEventCounter : MockKitManagerImpl() {
14561460
var logBaseEventCalled = 0

0 commit comments

Comments
 (0)