MOBILEWEBVIEW-60: add timeToDisplay for Inapp.Show action#684
Merged
sergeysozinov merged 2 commits intomission/webview-inappfrom Mar 2, 2026
Merged
MOBILEWEBVIEW-60: add timeToDisplay for Inapp.Show action#684sergeysozinov merged 2 commits intomission/webview-inappfrom
sergeysozinov merged 2 commits intomission/webview-inappfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds timeToDisplay tracking and tags support for InApp.Show actions to measure and report how long it takes to prepare and render in-app messages, with optional tag metadata.
Changes:
- Added
tagsfield to InApp data models and DTOs to support optional metadata - Implemented timeToDisplay calculation by tracking preparation and rendering timestamps
- Updated InApp.Show action serialization to include timeToDisplay and tags
Reviewed changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| ConfigWithSettingsABTestsMonitoringInapps.json | Added tags field to test configuration |
| InAppStub.kt | Updated stub objects to include tags parameter |
| InAppMessageManagerTest.kt | Updated tests to handle Pair<InApp, Long> and timeProvider mock |
| InAppMessageDelayedManagerTest.kt | Updated tests to pass preparedTimeMs and handle Pair return type |
| InAppInteractorImplTest.kt | Updated tests for Pair<InApp, Long> return type and fixed Form.copy calls |
| InAppRepositoryTest.kt | Updated tests for new sendInAppShown signature with timeToDisplay and tags |
| InAppMapperTest.kt | Added comprehensive tests for tags mapping scenarios |
| MobileConfigSerializationManagerTest.kt | Added tests for tags deserialization with various edge cases |
| InAppSerializationManagerTest.kt | Refactored tests and added serialization tests for InAppShowRequest |
| InAppTagsDeserializerTest.kt | New test file for custom tags deserializer |
| InAppConfigResponse.kt | Added tags field to DTOs with custom deserializer |
| InAppHandleRequest.kt | Added InAppShowRequest data class |
| WebViewInappViewHolder.kt | Added error cleanup calls (release/hide) |
| InAppMessageViewDisplayerImpl.kt | Added onRenderStart callback handling |
| InAppMessageViewDisplayer.kt | Added onRenderStart parameter to interface |
| InAppMessageManagerImpl.kt | Implemented timeToDisplay calculation and handleInAppShown |
| InAppMessageDelayedManager.kt | Modified to track and propagate preparedTimeMs |
| InAppTypeWrapper.kt | Added onRenderStart callback field |
| InAppConfig.kt | Added tags field to InApp data class |
| InAppRepository.kt | Updated sendInAppShown signature |
| InAppSerializationManager.kt | Split serialization into action-specific methods |
| InAppInteractor.kt | Updated interface for timeToDisplay support |
| InAppInteractorImpl.kt | Implemented preparation time tracking |
| InAppRepositoryImpl.kt | Updated to use new serialization methods |
| InAppMapper.kt | Added tags mapping logic with empty map filtering |
| InAppSerializationManagerImpl.kt | Implemented separate serialization for show and action events |
| InAppTagsDeserializer.kt | New deserializer filtering non-string tag values |
| PresentationModule.kt | Added timeProvider dependency injection |
| kmp-common-sdk | Updated submodule commit reference |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
enotniy
approved these changes
Mar 2, 2026
...src/main/java/cloud/mindbox/mobile_sdk/inapp/data/dto/deserializers/InAppTagsDeserializer.kt
Show resolved
Hide resolved
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppSerializationManagerImpl.kt
Outdated
Show resolved
Hide resolved
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/data/managers/InAppSerializationManagerImpl.kt
Outdated
Show resolved
Hide resolved
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/InAppInteractorImpl.kt
Outdated
Show resolved
Hide resolved
...test/java/cloud/mindbox/mobile_sdk/inapp/data/dto/deserializers/InAppTagsDeserializerTest.kt
Outdated
Show resolved
Hide resolved
sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/domain/InAppInteractorImpl.kt
Outdated
Show resolved
Hide resolved
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://tracker.yandex.ru/MOBILEWEBVIEW-60