From e5ce07ebc3ac4e967f98424071b8c5fcce313727 Mon Sep 17 00:00:00 2001 From: James Newman Date: Fri, 11 Jul 2025 23:39:57 +1000 Subject: [PATCH 1/2] Add Rokt close implementation --- .../mparticle/internal/KitFrameworkWrapper.java | 7 +++++++ .../java/com/mparticle/internal/KitManager.java | 2 ++ .../src/main/kotlin/com/mparticle/Rokt.kt | 6 ++++++ .../java/com/mparticle/kits/KitIntegration.java | 2 ++ .../java/com/mparticle/kits/KitManagerImpl.java | 15 +++++++++++++++ .../com/mparticle/kits/KitManagerImplTest.kt | 4 ++++ 6 files changed, 36 insertions(+) diff --git a/android-core/src/main/java/com/mparticle/internal/KitFrameworkWrapper.java b/android-core/src/main/java/com/mparticle/internal/KitFrameworkWrapper.java index 6d8b9b8da..d400f30f7 100644 --- a/android-core/src/main/java/com/mparticle/internal/KitFrameworkWrapper.java +++ b/android-core/src/main/java/com/mparticle/internal/KitFrameworkWrapper.java @@ -708,6 +708,13 @@ public void purchaseFinalized(@NonNull String placementId, @NonNull String catal } } + @Override + public void close() { + if (mKitManager != null) { + mKitManager.close(); + } + } + static class CoreCallbacksImpl implements CoreCallbacks { KitFrameworkWrapper mKitFrameworkWrapper; ConfigManager mConfigManager; diff --git a/android-core/src/main/java/com/mparticle/internal/KitManager.java b/android-core/src/main/java/com/mparticle/internal/KitManager.java index 83f9384ff..eac6f4e92 100644 --- a/android-core/src/main/java/com/mparticle/internal/KitManager.java +++ b/android-core/src/main/java/com/mparticle/internal/KitManager.java @@ -146,6 +146,8 @@ void execute(@NonNull String identifier, void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status); + void close(); + enum KitStatus { NOT_CONFIGURED, STOPPED, diff --git a/android-core/src/main/kotlin/com/mparticle/Rokt.kt b/android-core/src/main/kotlin/com/mparticle/Rokt.kt index 524856b95..d5ab151f3 100644 --- a/android-core/src/main/kotlin/com/mparticle/Rokt.kt +++ b/android-core/src/main/kotlin/com/mparticle/Rokt.kt @@ -43,4 +43,10 @@ class Rokt internal constructor( mKitManager.purchaseFinalized(placementId, catalogItemId, status) } } + + fun close() { + if (mConfigManager.isEnabled) { + mKitManager.close() + } + } } \ No newline at end of file diff --git a/android-kit-base/src/main/java/com/mparticle/kits/KitIntegration.java b/android-kit-base/src/main/java/com/mparticle/kits/KitIntegration.java index e480e5d20..11fac2c05 100644 --- a/android-kit-base/src/main/java/com/mparticle/kits/KitIntegration.java +++ b/android-kit-base/src/main/java/com/mparticle/kits/KitIntegration.java @@ -637,5 +637,7 @@ void execute(@NonNull String viewName, void setWrapperSdkVersion(@NonNull WrapperSdkVersion wrapperSdkVersion); void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status); + + void close(); } } diff --git a/android-kit-base/src/main/java/com/mparticle/kits/KitManagerImpl.java b/android-kit-base/src/main/java/com/mparticle/kits/KitManagerImpl.java index f552dd893..de698a25e 100644 --- a/android-kit-base/src/main/java/com/mparticle/kits/KitManagerImpl.java +++ b/android-kit-base/src/main/java/com/mparticle/kits/KitManagerImpl.java @@ -1421,12 +1421,14 @@ public Flow events(@NonNull String identifier) { for (KitIntegration provider : providers.values()) { try { if (provider instanceof KitIntegration.RoktListener && !provider.isDisabled()) { + Logger.verbose("Calling events for kit: " + provider.getName() + " with identifier: " + identifier); return ((KitIntegration.RoktListener) provider).events(identifier); } } catch (Exception e) { Logger.warning("Failed to call setWrapperSdkVersion for kit: " + provider.getName() + ": " + e.getMessage()); } } + Logger.warning("No RoktListener found"); return flowOf(); } @@ -1456,6 +1458,19 @@ public void purchaseFinalized(@NonNull String placementId, @NonNull String catal } } + @Override + public void close() { + for (final KitIntegration provider : providers.values()) { + try { + if (provider instanceof KitIntegration.RoktListener && !provider.isDisabled()) { + ((KitIntegration.RoktListener) provider).close(); + } + } catch (final Exception e) { + Logger.warning("Failed to call purchaseFinalized for kit: " + provider.getName() + ": " + e.getMessage()); + } + } + } + private void confirmEmail( @Nullable String email, @Nullable MParticleUser user, diff --git a/android-kit-base/src/test/kotlin/com/mparticle/kits/KitManagerImplTest.kt b/android-kit-base/src/test/kotlin/com/mparticle/kits/KitManagerImplTest.kt index 312bdbb92..86351eb10 100644 --- a/android-kit-base/src/test/kotlin/com/mparticle/kits/KitManagerImplTest.kt +++ b/android-kit-base/src/test/kotlin/com/mparticle/kits/KitManagerImplTest.kt @@ -1702,6 +1702,10 @@ class KitManagerImplTest { override fun purchaseFinalized(placementId: String, catalogItemId: String, status: Boolean) { println("purchaseFinalized with placementId: $placementId catalogItemId : $catalogItemId status : $status ") } + + override fun close() { + println("close called") + } } internal inner class KitManagerEventCounter : MockKitManagerImpl() { From 10491e6e854e5c634f470918247d7b384d6dc78f Mon Sep 17 00:00:00 2001 From: James Newman Date: Mon, 14 Jul 2025 20:09:40 +1000 Subject: [PATCH 2/2] Correct log Co-authored-by: Thomson Thomas <125323226+thomson-t@users.noreply.github.com> Signed-off-by: James Newman --- .../src/main/java/com/mparticle/kits/KitManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android-kit-base/src/main/java/com/mparticle/kits/KitManagerImpl.java b/android-kit-base/src/main/java/com/mparticle/kits/KitManagerImpl.java index de698a25e..bbdc16c74 100644 --- a/android-kit-base/src/main/java/com/mparticle/kits/KitManagerImpl.java +++ b/android-kit-base/src/main/java/com/mparticle/kits/KitManagerImpl.java @@ -1466,7 +1466,7 @@ public void close() { ((KitIntegration.RoktListener) provider).close(); } } catch (final Exception e) { - Logger.warning("Failed to call purchaseFinalized for kit: " + provider.getName() + ": " + e.getMessage()); + Logger.warning("Failed to call close for kit: " + provider.getName() + ": " + e.getMessage()); } } }