Skip to content

MOBILE-213: send tags for inapps operations#733

Merged
sergeysozinov merged 2 commits into
developfrom
feature/MOBILE-213
Jul 2, 2026
Merged

MOBILE-213: send tags for inapps operations#733
sergeysozinov merged 2 commits into
developfrom
feature/MOBILE-213

Conversation

@sergeysozinov

Copy link
Copy Markdown
Collaborator

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for propagating in-app “tags” through the SDK’s in-app operational flows (webview operations, targeting/click/show events, and failure tracking), gated by a new feature toggle (MobileSdkShouldSendInAppTags).

Changes:

  • Introduces request models and serialization for in-app targeting/click operations with optional tags, and threads tags through repository/interactor/manager layers.
  • Extends WebView operation execution to merge in-app tags into the JS-provided operation body (body.tags) while preserving client-provided values on key collisions.
  • Adds a feature toggle and a shared gatedTags(...) helper to conditionally include tags, plus broad test updates for the new behavior.

Reviewed changes

Copilot reviewed 34 out of 34 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
sdk/src/test/java/cloud/mindbox/mobile_sdk/models/operation/request/InAppTargetingRequestStub.kt Adds a targeting request test stub.
sdk/src/test/java/cloud/mindbox/mobile_sdk/models/operation/request/InAppHandleRequestStub.kt Removes obsolete handle-request stub.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/presentation/view/WebViewOperationExecutorTest.kt Updates executor construction and adds coverage for tag merging rules.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/presentation/InAppMessageViewDisplayerImplTest.kt Adds coverage for tags propagation when reattach fails.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/presentation/InAppMessageManagerTest.kt Adds feature-toggle-driven tag passing assertions for show/click.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/domain/InAppProcessingManagerTest.kt Updates repository contract and adds tests for tag gating in targeting/failures.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/domain/InAppInteractorImplTest.kt Updates constructor wiring for new dependency.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/repositories/InAppRepositoryTest.kt Updates repository tests to pass tags into click/targeted operations.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppSerializationManagerTest.kt Adds targeting/click serialization coverage (and updates expectations).
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppFailureTrackerImplTest.kt Adds tests ensuring tags are stored and forwarded with failures.
sdk/src/test/java/cloud/mindbox/mobile_sdk/ExtensionsKtTest.kt Adds unit tests for the new gatedTags helper.
sdk/src/main/java/cloud/mindbox/mobile_sdk/models/operation/request/InAppOperationRequests.kt Introduces request DTOs for click/targeting and adds tags to failures.
sdk/src/main/java/cloud/mindbox/mobile_sdk/models/operation/request/InAppHandleRequest.kt Removes obsolete handle request DTOs.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/presentation/view/WebViewOperationExecutor.kt Adds tag merging into operation body and injects Gson.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/presentation/view/WebViewInappViewHolder.kt Passes wrapper tags into webview async/sync operations and failure tracking.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/presentation/view/AbstractInAppViewHolder.kt Includes tags in presentation failure tracking calls.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/presentation/InAppMessageViewDisplayerImpl.kt Stores/propagates tags via InAppTypeWrapper, including restore/reattach paths.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/presentation/InAppMessageViewDisplayer.kt Extends displayer API with optional tags parameter.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/presentation/InAppMessageManagerImpl.kt Gates tags via feature toggle and forwards to show/click/shown flows.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/models/InAppTypeWrapper.kt Adds tags to the wrapper so holders can access them.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/repositories/InAppRepository.kt Updates repository API to accept tags for click/targeted events.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/managers/InAppSerializationManager.kt Splits serialization into targeting vs click methods with tags.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/managers/InAppFailureTracker.kt Extends failure APIs with optional tags.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/interactors/InAppInteractor.kt Updates click API to accept tags.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/InAppProcessingManagerImpl.kt Gates tags by feature toggle and forwards tags to targeting and failure tracking.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/InAppInteractorImpl.kt Passes tags through to repository on click.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/extensions/TrackingFailureExtension.kt Threads tags through failure-tracking helper extensions.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/repositories/InAppRepositoryImpl.kt Serializes and sends click/targeted events including tags.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppSerializationManagerImpl.kt Implements new click/targeting serialization methods with tags.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppFailureTrackerImpl.kt Persists tags in collected/sent failures.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/managers/FeatureToggleManagerImpl.kt Adds SEND_INAPP_TAGS_FEATURE constant.
sdk/src/main/java/cloud/mindbox/mobile_sdk/Extensions.kt Adds InApp.gatedTags(isTagsFeatureEnabled) helper.
sdk/src/main/java/cloud/mindbox/mobile_sdk/di/modules/PresentationModule.kt Wires feature toggle manager into InAppMessageManagerImpl.
sdk/src/main/java/cloud/mindbox/mobile_sdk/di/modules/DomainModule.kt Wires feature toggle manager into InAppProcessingManagerImpl.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@sergeysozinov sergeysozinov requested a review from enotniy July 1, 2026 09:52
@sergeysozinov sergeysozinov merged commit 282a05c into develop Jul 2, 2026
7 checks passed
@sergeysozinov sergeysozinov deleted the feature/MOBILE-213 branch July 2, 2026 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants