Skip to content

Mobile-420: support metrics for Embedded block - #758

Merged
sergeysozinov merged 14 commits into
mission/storiesfrom
feature/MOBILE-420
Sep 1, 2026
Merged

Mobile-420: support metrics for Embedded block#758
sergeysozinov merged 14 commits into
mission/storiesfrom
feature/MOBILE-420

Conversation

@sergeysozinov

Copy link
Copy Markdown
Collaborator

sozinov added 6 commits August 27, 2026 10:12
…stry keep-timer, the block's wait budgets with phases and a final timeout
… reaches paused blocks, no repository created by the phase probe, contained expiry callback, show recording survives a scope death
@sergeysozinov
sergeysozinov requested review from enotniy and justSmK and a balanced review from Copilot August 28, 2026 07:30

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 targeting, show, timing, delay, and failure metrics for embedded in-app blocks.

Changes:

  • Adds embedded targeting/show accounting and failure serialization.
  • Introduces delay handling, monotonic timing, and wait budgets.
  • Expands automated coverage and replaces story/feed terminology.

Reviewed changes

Copilot reviewed 51 out of 51 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
sdk/src/test/java/cloud/mindbox/mobile_sdk/models/InAppStub.kt Updates embedded fixtures.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/presentation/view/WebViewCommonBridgeActionsTest.kt Updates terminology.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/presentation/view/MotionServiceBehaviorTest.kt Extends fake monotonic time.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/presentation/view/DataCollectorParamsTest.kt Updates embedded parameter tests.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/presentation/view/BridgeMessagePayloadTest.kt Updates payload fixtures.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/presentation/InAppMessageViewDisplayerShowNowTest.kt Updates terminology.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/presentation/InAppMessageManagerTest.kt Mocks monotonic timing.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/domain/InAppInteractorImplTest.kt Supplies failure tracker dependency.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/domain/EmbeddedResolveInteractorTest.kt Covers embedded targeting, delays, shows, and failures.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/validators/EmbeddedVariantValidatorTest.kt Generalizes parameter terminology.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/repositories/MobileConfigRepositoryImplTest.kt Tests config availability and subscription restart.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/repositories/InAppRepositoryTest.kt Tests error operation dispatch.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/managers/SessionStorageManagerTest.kt Tests clearing embedded session state.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/managers/serialization/EmbeddedContractSerializationTest.kt Updates embedded serialization fixtures.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppSerializationManagerTest.kt Tests polymorphic error serialization.
sdk/src/test/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppFailureTrackerImplTest.kt Covers unified and wait-budget failures.
sdk/src/test/java/cloud/mindbox/mobile_sdk/embedded/webview/EmbeddedBlockWebViewHolderTest.kt Covers show accounting and updated protocol.
sdk/src/test/java/cloud/mindbox/mobile_sdk/embedded/EmbeddedBlockWaitBudgetTest.kt Tests callback failure containment.
sdk/src/test/java/cloud/mindbox/mobile_sdk/embedded/EmbeddedBlocksRegistryTest.kt Covers delayed resolution behavior.
sdk/src/test/java/cloud/mindbox/mobile_sdk/embedded/EmbeddedBlockContentFactoryTest.kt Updates factory timing tests.
sdk/src/test/java/cloud/mindbox/mobile_sdk/embedded/EmbeddedBlockContentControllerTest.kt Covers budgets, telemetry, and delayed content.
sdk/src/main/java/cloud/mindbox/mobile_sdk/utils/TimeProvider.kt Adds monotonic timing APIs.
sdk/src/main/java/cloud/mindbox/mobile_sdk/models/operation/request/InAppOperationRequests.kt Adds polymorphic embedded failures.
sdk/src/main/java/cloud/mindbox/mobile_sdk/Mindbox.kt Restarts config listening after reinitialization.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/presentation/InAppMessageManagerImpl.kt Measures direct-call preparation time.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/models/InAppErrorsWrapper.kt Defines unified error payload.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/models/InAppConfig.kt Adds embedded frequency and tags.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/repositories/MobileConfigRepository.kt Exposes config state and listener startup.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/repositories/InAppRepository.kt Generalizes show-error dispatch.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/managers/InAppSerializationManager.kt Generalizes error serialization.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/managers/InAppProcessingManager.kt Exposes targeting matching.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/managers/InAppFailureTracker.kt Adds wait-budget telemetry.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/interfaces/interactors/InAppInteractor.kt Expands embedded resolution and show APIs.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/InAppProcessingManagerImpl.kt Implements standalone targeting matching.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/InAppInteractorImpl.kt Implements embedded targeting and show accounting.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/repositories/MobileConfigRepositoryImpl.kt Makes config subscriptions restartable.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/repositories/InAppRepositoryImpl.kt Sends unified error payloads.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/mapper/InAppMapper.kt Maps embedded frequency and tags.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/managers/SessionStorageManager.kt Stores embedded metric and delay state.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppSerializationManagerImpl.kt Serializes unified errors.
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppFailureTrackerImpl.kt Sends embedded wait-budget failures.
sdk/src/main/java/cloud/mindbox/mobile_sdk/Extensions.kt Adds reusable frequency and tag helpers.
sdk/src/main/java/cloud/mindbox/mobile_sdk/embedded/webview/EmbeddedBlockWebViewHolder.kt Reports embedded shows and tagged failures.
sdk/src/main/java/cloud/mindbox/mobile_sdk/embedded/MindboxEmbeddedBlockView.kt Connects failure tracking to the view.
sdk/src/main/java/cloud/mindbox/mobile_sdk/embedded/EmbeddedBlockWaitBudget.kt Contains expiry callback failures.
sdk/src/main/java/cloud/mindbox/mobile_sdk/embedded/EmbeddedBlocksRegistry.kt Schedules delayed embedded delivery.
sdk/src/main/java/cloud/mindbox/mobile_sdk/embedded/EmbeddedBlockContentFactory.kt Passes metric metadata to holders.
sdk/src/main/java/cloud/mindbox/mobile_sdk/embedded/EmbeddedBlockContentController.kt Manages budgets, timing, and failures.
sdk/src/main/java/cloud/mindbox/mobile_sdk/di/modules/MindboxModule.kt Exposes optional config repository access.
sdk/src/main/java/cloud/mindbox/mobile_sdk/di/modules/DomainModule.kt Injects the failure tracker.
sdk/src/main/java/cloud/mindbox/mobile_sdk/di/modules/DataModule.kt Updates lazy repositories and tracker wiring.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread sdk/src/main/java/cloud/mindbox/mobile_sdk/utils/TimeProvider.kt
@sergeysozinov
sergeysozinov merged commit 65107de into mission/stories Sep 1, 2026
6 checks passed
@sergeysozinov
sergeysozinov deleted the feature/MOBILE-420 branch September 1, 2026 05:49
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