From 28a11c2090909f90620a6e37c2df2b9bbcc8ecd0 Mon Sep 17 00:00:00 2001 From: UnnatiCP Date: Tue, 24 Feb 2026 19:01:53 +0530 Subject: [PATCH 1/3] feature/cp-10963-add-bridge-function-in-mobile-sdk-to-send-subscription Added getSubscriptionContextRequest() in the JS bridge; injected Promise-based getSubscriptionContext in both HTML-block and fullscreen banner scripts in AppBannerCarouselAdapter and InboxDetailBannerCarouselAdapter. --- .../banner/AppBannerCarouselAdapter.java | 72 ++++++++++++++++++- .../InboxDetailBannerCarouselAdapter.java | 71 +++++++++++++++++- 2 files changed, 139 insertions(+), 4 deletions(-) diff --git a/cleverpush/src/main/java/com/cleverpush/banner/AppBannerCarouselAdapter.java b/cleverpush/src/main/java/com/cleverpush/banner/AppBannerCarouselAdapter.java index 61298d1d..40e53c66 100644 --- a/cleverpush/src/main/java/com/cleverpush/banner/AppBannerCarouselAdapter.java +++ b/cleverpush/src/main/java/com/cleverpush/banner/AppBannerCarouselAdapter.java @@ -45,6 +45,7 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.cleverpush.CleverPush; +import com.cleverpush.CleverPushPreferences; import com.cleverpush.R; import com.cleverpush.banner.models.Banner; import com.cleverpush.banner.models.BannerAction; @@ -71,6 +72,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -667,14 +669,25 @@ public void onPageFinished(WebView view, String url) { "};\n" + "CleverPush.trackClick = function(buttonId, customData) {\n" + " CleverPush.trackClickStringified(buttonId, customData ? JSON.stringify(customData) : null);\n" + + "};\n" + + "CleverPush.getSubscriptionContext = function() {\n" + + " return new Promise(function(resolve) {\n" + + " window.CleverPush._resolveSubscriptionContext = resolve;\n" + + " CleverPush.getSubscriptionContextRequest();\n" + + " });\n" + "};\n", null ); + String contextJson = getSubscriptionContextJson(); + webView.evaluateJavascript( + "if (typeof CleverPush !== 'undefined') { CleverPush.subscriptionContext = " + contextJson + "; }", + null + ); } }); webView.loadUrl(block.getUrl()); - webView.addJavascriptInterface(new CleverpushInterface(), "CleverPush"); + webView.addJavascriptInterface(new CleverpushInterface(webView), "CleverPush"); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, @@ -725,6 +738,7 @@ private void composeHtmlBanner(LinearLayout body, String htmlContent) { activity.runOnUiThread(() -> { String html = VoucherCodeUtils.replaceVoucherCodeString(htmlContent, voucherCode); String lower = html.toLowerCase(Locale.ROOT); + String contextJson = getSubscriptionContextJson(); String jsToInject = "" + "